RL : 이전 작업을 조건으로하는 인코딩 작업

Dec 27 2020

나는 플레이어의 차례에 플레이어가 두 장의 카드를 순차적으로 뽑는 카드 게임을 가지고 있습니다. 각 카드는 다른 플레이어의 폐기 스택 (앞면이 위로) 또는 덱에서 (앞면이 아래로)에서 가져올 수 있습니다.

이것을 액션 공간으로 인코딩하는 방법을 생각하면 두 개의 드로우가 독립적이라고 순진하게 가정 할 수 있습니다. 행동 공간은 단순히 2 * (1 + (number_of_players-1))의 이진 벡터 일 것입니다. 빈 무승부 더미를 제한하기 위해 사후 필터링 할 수 있습니다 (자신의 더미에서 그릴 수 없음).

그러나 게임을 직접 플레이 할 때, 덱에서 초기 카드를 뽑은 다음 첫 번째 카드의 값에 따라 두 번째 카드의 뽑기 더미를 선택하는 것이 때때로 유리하다는 것을 알았습니다. 그러나 이것이 어떻게 행동 공간으로 인코딩 될까요? 같은 "턴"의 일부라고 생각하더라도이 두 가지 별개의 행동이라고 생각하는 것이 더 나을까요?

답변

2 NeilSlater Dec 27 2020 at 22:31

자세한 내용과 실험 결과를 모른 채 확실하게 말하기는 어렵습니다.

그러나 게임에서 결정을 분할 할 수있는 경우 에이전트가 방금 드로우 더미에서 가져온 이전에 숨겨진 카드의 가치에 대한 추가 지식을 활용하는 것이 더 나을 것입니다.

일반적으로 각 플레이어의 결정이 순차적으로 내려져 상태가 변경되는 경우 강화 학습 (RL)에 사용 된 MDP 이론적 모델에 따라 별도의 시간 단계에 대한 별도의 작업입니다. 게임 플레이 진행 방식과 일치하도록 시간 단계를 다르게 설명 / 주석 할 수 있습니다. 그러나 RL의 목적을 위해 각 결정 지점은 새로운 시간 단계에 있어야하며 새로운 상태, 새로운 가치 추정 등을 가져와야합니다.

마찬가지로 현재 선택이 플레이어의 첫 번째 카드인지 두 번째 카드인지 여부는 국가의 일부 여야합니다. 논리적으로 각 단계에서 카드 수가 항상 같으면 상태의이 세부 사항은 플레이어의 손에있는 카드 수로 이미 덮여 있을 수 있습니다 . 그러나 다른 이유로 손의 크기가 다를 수있는 경우 에이전트가 정보를 사용할 수 있도록 "첫 번째 추첨 선택"또는 이와 유사한 명시 적 플래그를 추가하는 것이 좋습니다.

액션 공간을 인코딩 할 자유가 있습니다. 이 게임의 모든 단계에서 카드 그리기 만 가능한 행동이라면 1 + (플레이어 수-1) 차원의 이진 출력 벡터가 적합합니다. 다른 인코딩도 잘 작동 할 수 있습니다. 선택 항목에 논리적 구조가 있는지 또는 유용한 게임 정보를 인코딩하는 일부 파생 데이터가 있는지 여부에 따라 다릅니다.

각 플레이어의 폐기 더미에서 뽑는 색인 이 현재 플레이어의 턴에 상대적 으로 고려되도록 작업 선택을 정렬하는 것이 유용 할 수 있습니다 . 즉, 작업이 배열되는 대신$[draw, discard P1, discard P3, discard P4, discard P5]$ P2의 경우 정렬됩니다. $[draw, discard P3, discard P4, discard P5, discard P1]$ P3의 경우 다음과 같이 다릅니다. $[draw, discard P4, discard P5, discard P1, discard P2]$. . . 그것은 본질적으로 회전의 주기적 특성을 허용합니다. 상태 표현은 이와 일치하도록 각 플레이어에 대한 지식을 유사하게 회전해야합니다. 이 작업을 수행 할 필요는 없지만 활용할 수있는 턴 포지션과 관련된 액션 선택과 관련된 많은 공통 논리가있는 게임에 권장합니다. P1, P2, P3 등 게임 전반에 걸쳐 중요한 차이점이있는 경우 반대가 적용됩니다 (절대 플레이어 위치를 사용합니다).