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


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.