강화 학습에서 잘못된 움직임을 처리하는 방법은 무엇입니까?


20

5in-a-row / gomoku를 재생할 수있는 AI를 만들고 싶습니다. 제목에서 언급했듯이 강화 학습을 사용하고 싶습니다.

내가 사용 정책 그라데이션 기준으로, 즉 강화, 방법. 가치와 정책 함수 근사를 위해 신경망을 사용 합니다 . 그것은 컨볼 루션되고 완전히 연결된 레이어를 가지고 있습니다. 출력을 제외한 모든 레이어가 공유됩니다. 정책의 출력 계층에는 (보드 크기) 출력 단위와 softmax 가 있습니다. 따라서 확률 론적입니다. 그러나 네트워크가 유효하지 않은 이동에 대해 매우 높은 확률을 생성한다면 어떻게 될까요? 에이전트가 "X"또는 "O"가있는 사각형을 확인하려고 할 때 잘못된 이동입니다. 게임 상태에 빠질 수 있다고 생각합니다.8×8=64

이 문제에 대한 해결책을 추천 해 주시겠습니까?

내 생각 엔 액터 비평 방법 을 사용하는 것입니다. 무효 한 움직임을 위해서는 부정적인 보상을주고 상대에게 차례를 넘겨 주어야합니다.

답변:


10

유효하지 않은 동작은 무시하십시오.

탐색의 경우 확률이 가장 높은 이동을 실행하는 것이 아니라 출력 된 확률에 따라 무작위로 이동을 선택하는 것이 좋습니다. 불법적 인 움직임 만 처벌해도 여전히 약간의 확률을 유지하므로 때때로 실행됩니다 (그러나 거의 없음). 따라서 항상 불법적 인 행동을하는 에이전트를 유지해야합니다.

나에게 모든 불법 이동의 확률을 0으로 설정하고 이동을 선택하기 전에 출력 벡터를 다시 정규화하는 것이 더 합리적입니다.


고맙습니다. 아마 나는 명확하지 않았지만 출력 된 영아에 의해 무작위로 움직임을 선택했습니다. 나는 불법적 인 움직임의 가능성을 0으로 설정하고 어떤 일이 일어날 지 알기 위해 당신의 조언을 시도 할 것입니다. 좋은 하루 보내세요
— Molnár István

8

선형 함수 근사를 사용하는 정책 그래디언트 방법에서 일반적으로 softmax 방법은 다음 공식을 사용하여 조치 에이 를 선택할 확률을 계산합니다 . 여기서 가중치는 θ 이고 특징 ϕ 는 현재 상태 에스 함수 와 조치 세트 에이 의 조치 입니다.

π(θ,에이)=이자형θϕ(에스,에이)∑비∈에이이자형θϕ(에스,비)

불법적 인 움직임을 제거하기 위해 일련의 행동은 합법적 인 행동으로 제한되므로 엘이자형지에이엘(에이) 입니다.

π(θ,에이)=이자형θϕ(에스,에이)∑비∈엘이자형지에이엘(에이)이자형θϕ(에스,비),에이∈엘이자형지에이엘(에이)

의사 코드에서 수식은 다음과 같습니다.

action_probs = Agent.getActionProbs(state)
legal_actions = filterLegalActions(state, action_probs)
best_legal_action = softmax(legal_actions)

선형 또는 비선형 함수 근사 (신경망)를 사용하든, 소프트 맥스를 계산할 때 합법적 인 움직임 만 사용하는 것이 좋습니다. 이 방법은 에이전트가 유효한 이동 만 제공하므로 나중에 게임을 변경하고 싶을 때 유용하며, 행동의 제한된 선택 사이의 값 차이는 에이전트가 쉽게 식별 할 수 있음을 의미합니다. 가능한 조치 수가 줄어들면 더 빠릅니다.


매우 유용한. 방정식과 의사 코드를 게시 해 주셔서 감사합니다!
— DukeZhou

1
수학과 의사 코드가 여기에 일치하지 않습니다. 법적 이동 확률에 대한 Softmax는 상대 확률을 조정합니다. 예를 들어 첫 번째 및 세 번째 항목을 제거하여 필터링 한 (0.3, 0.4, 0.2, 0.1)은 수식을 사용하여 (0.0, 0.8, 0.0, 0.2)이지만 의사 코드를 사용하여 (0.0, 0.57, 0.0, 0.42)입니다. 의사 코드는 동작 확률 계산 전에 로짓을 가져와야합니다.
— Neil Slater

4
필터링 된 Softmax 버전의 기울기를 어떻게 계산합니까? 역 전파가 성공적으로 작동하려면 이것이 필요한 것 같습니다.
— brianberns

@brianberns 답변을 찾으셨습니까? 그 날의 사건이 될 것입니다하지만 unfilitered이 softmax의 로그 확률을 사용할 때 어떻게 든 내 장난감 예에 난 단지 정답을 받고 있어요 것처럼 ... 보인다
— tryingtolearn

5

IMHO 무효 이동에 대한 아이디어 자체는 유효하지 않습니다. 좌표에 "X"를 배치한다고 상상해보십시오 (9, 9). 당신은 그것을 잘못된 움직임으로 간주하고 부정적인 보상을 줄 수 있습니다. 불합리한? 확실한!

그러나 실제로 당신의 잘못된 움직임은 표현의 유물 일뿐 입니다 (그 자체가 간단하고 훌륭합니다). 가장 좋은 방법은 계산에서 완전히 제외시키는 것입니다.

이것은 체스에서 더 분명해집니다.

  • 위치 표현에서 이동 a1-a8또는 루킹 또는 여왕이있는 경우에만 게임에 속하는 이동을 고려할 수 있습니다 a1(그리고 일부 다른 조건이 유지됨).

  • 다른 표현에서는 이동을 고려할 수 있습니다 Qb2. 다시, 이것은 게임에 속하거나 속하지 않을 수 있습니다. 현재 플레이어가 여왕이 없으면 반드시 그렇지 않습니다.

무효 한 움직임은 게임보다는 표현과 관련이 있기 때문에 전혀 고려해서는 안됩니다.


1
좋은 지적입니다. 스도쿠에서 진행되는 [M] 게임에서 구속 조건은 첫 번째 배치 이후 많은 위치 (좌표 + 값)를 불법으로 만듭니다. 배치의 관점에서 이러한 불법적 인 입장을 고려하는 데는 가치가 없지만 , 중요한 전략적 계층은 플레이스되지 않은 나머지 포지션의 가치를 최소화하는 배치를 인식하는 것입니다. (여기에서 8을 배치하면 상대방이 해당 행, 열 또는 지역에 8을 배치하는 것을 차단합니다. 기본적으로 "이 배치는 게임 보드에서 얼마나 많은 전략적 위치를 제거합니까?")
— DukeZhou

5

최근 지뢰 찾기와 비슷한 문제에 직면했습니다.

내가 해결 한 방법은 불법 / 무효 한 행동을 완전히 무시하는 것입니다.

  1. Q- 네트워크를 사용하여 모든 작업에 대한 Q- 값을 예측하십시오 (유효하고 유효하지 않음)
  2. 유효하지 않은 모든 이동을 0 / 음수의 Q- 값으로 설정하여 Q- 값을 사전 처리하십시오 (시나리오에 따라 다름)
  3. 선택한 정책을 사용하여 정제 된 Q- 값 (예 : 욕심 또는 볼츠만)에서 동작을 선택하십시오.
  4. 선택한 작업을 실행하고 DQN 논리를 다시 시작하십시오.

이것이 도움이되기를 바랍니다.


1
내가 추가 할 유일한 것은 불법 (s, a) 쌍에 대한 Q 값을 큰 음수 값으로 설정하여 해당 상태를 선택하지 않도록 훈련 할 때 DQN에서 백프로 프를 수행해야한다는 것입니다. 다음에 쌍.
— SN

그러나 큰 -ve 대상 Q 값을 설정하여 손실 / 오류 기능의 연속성 또는 모양에 어떤 영향을 미치는지 궁금합니다 (그래서 그라디언트 검색에 영향을 미침). 당신의 경험은 무엇입니까?
— SN

1
@SN 당신의 요점을 참조하십시오. 아이디어는 유효하지 않은 조치 가 아닌 Q 값 이 가장 높은 조치를 선택하는 것입니다 . 다음으로 해당 작업을 실행하고 업데이트 규칙에서 해당 작업을 사용합니다 (즉, DQN이 장기적으로이 작업을 선호하도록 훈련시킵니다). 이것이하는 것은 선택된 행동의 미래 Q- 값을 높이고 따라서 유리하게 만드는 것입니다. 그것은 것입니다 하지 그들은 항상 필터링되기 때문에 문제가되지 않는 불법 행위의 Q 값은 비록 낮출 수 있도록 (고려되지 않음). 예를 들어 더 자세히 설명하고 싶은 경우 알려주십시오. :)
— 사나 베사

1
@Sanavesa는 확실히 의미가 있습니다. 본질적으로 DQN은 하드 노크 학교를 통해 올바른 선택이 무엇인지 배우는 것을 기본적으로 믿고 있습니다. 그러나 법적 선택이 하나 또는 몇 개만있는 상황에서는 학습 속도가 매우 느려집니다. 내가 제안하는 접근법은 도메인 K를 문제에 통합하여 학습 속도를 높이는 방법입니다. 그것은 또한 당신이 "제로 / 음수의 Q- 값으로 유효하지 않은 움직임을 설정하는 것"에 대해 당신이 쓴 글에서 당신이 생각한 것
— SN

1
트윗 담아 가기 두 방법 모두 장점이 있습니다. 법적인 움직임을 배우기가 더 쉬운 지 또는 완전히 무시하는지는 응용 프로그램에 따라 다릅니다. 복잡한 복잡한 응용 프로그램의 경우 에이전트가 배우기에는 잘못된 동작을 무시하는 것이 훨씬 빠르다고 생각하지만 인용하지는 마십시오.
— Sanavesa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.