체스와 같은 게임에 강화 학습을 적용하는 것에 관한 몇 가지 의심


9

체스 같은 보드 게임을 발명했습니다. 자율적으로 재생할 수 있도록 엔진을 만들었습니다. 엔진은 기본적으로 의사 결정 트리입니다. 다음과 같이 구성됩니다.

  1. 각 노드에서 가능한 모든 법적 움직임을 찾는 검색 기능
  2. 보드 위치에 숫자 값을 할당하는 평가 기능
  3. 사전 정리 부정 알고리즘

이 엔진의 주요 문제점은 평가 기능의 최적화가 실제로 까다 롭다는 것입니다. 고려해야 할 요소와 가중치를 모릅니다. 엔진을 향상시키는 유일한 방법은 매번 다른 요소와 가중치의 조합을 시도하는 게임을 반복하는 것입니다. 그러나 계산적으로는 매우 어려운 일처럼 보입니다 (심층 학습을 사용하지 않고 역 전파 할 수 있습니까?).

엔진을 향상시켜 엔진을 향상시키기 위해 강화 학습을 사용하고 싶습니다. 나는 그 주제에 대해 읽었지만 여전히 혼란 스럽다.

게임에서 승패 손실 (1 또는 0)에 어떤 다른 보상이 있습니까? 매 턴마다 평가 기능의 출력과 같은 다른 보상을 사용하는 경우 어떻게 보상 할 수 있습니까? 반복 후 더 나은 보상 반복을 제공하기 위해 평가 기능을 어떻게 수정합니까?

답변:


6

엔진을 향상시켜 엔진을 향상시키기 위해 강화 학습을 사용하고 싶습니다. 나는 그 주제에 대해 읽었지만 여전히 혼란스러워합니다.

경고 : 강화 학습은 매우 복잡한 주제입니다. 게임 봇에서 우회 할 수 있지만 RL 기본 사항을 공부할 수 있습니다. 시작하기 좋은 곳은 Sutton & Barto Reinforcement Learning : 소개입니다.

게임에서 승패 손실 (1 또는 0)에 어떤 다른 보상이 있습니까?

당신의 게임에 따라, 그것은 보통입니다. 실제로 체스와 같은 승리 / 드로우 / 로즈 게임의 경우 각 행동의 보상은 0 점을 얻습니다 (+1). 제로섬 게임에서는 미니맥, 알파벳 프 루닝 등에 잘 맞습니다.

강화 학습은 보상이 지연되는 환경을 해결하기위한 것입니다. 중간 목표가 아닌 목표에 "보조자"보상을 추가하는 것은 일반적으로 비생산적입니다.

매 턴마다 평가 기능의 출력과 같은 다른 보상을 사용하는 경우 어떻게 보상 할 수 있습니까?

일반적으로 당신은하지 않습니다. 자체 재생 RL을 적용 하면 게임이 끝날 때까지 총 + 1 / 0 / -1 보상의 기대를 예측 하는 return (때로는 utility 라고도 함 ) 기능을 배우게 됩니다. minimax 검색을 위해 현재 휴리스틱 대신에 이것을 사용합니다. 또는 현재 휴리스틱 함수를 동일한 범위에서 출력하도록 조정하고 RL을 사용하여 가중치를 최적화하여 실제 최적 재생 리턴 함수 (정확히 계산하기에는 너무 복잡함)에 가장 가까운 근사값을 만들 수 있습니다.

반복 후 더 나은 보상 반복을 제공하기 위해 평가 기능을 어떻게 수정합니까?

그것은 다른 RL이 모든 시도에 접근하는 것입니다. 다양한 다른 솔버가 있습니다. 그것을 설명하는 짧은 방법은 없습니다. Q-Learning과 같은 간단한 방법으로 시작할 수 있습니다. Q-Learning은 상태 s 및 조치 a에서 최적의 정책을 따르는 경우의 예상 수익 인 Q (s, a) (동작 값이라고 함)의 추정치를 학습합니다. 학습 환경에서 만들어진 각 단계를 통해 임의의 추측으로 시작하여 실제 가치에 더 가깝게 다듬습니다. 간단한 테이블 형식 Q- 학습자는 모든 상태 및 작업에 대한 큰 표를 실제 값까지 지금까지 가장 잘 추정 한 값으로 저장하고 경험이있을 때마다 새로운 각 추정값을 평균화하여 이러한 개선 작업을 수행합니다.

또한 휴리스틱을위한 RL 방법을 미리보기 미니 맥스 검색과 결합 할 수 있습니다. 이것이 원래 AlphaGo가 수행 한 작업과 훈련 중에 AlphaGo Zero가 수행하는 작업입니다. minimax 검색이 RL 생성 휴리스틱을 다시 확인하는 데 효과적이므로 강력한 접근 방법입니다. 간단한 게임만으로도 RL은 완벽한 휴리스틱을 배울 수 있으며 로컬 검색 만 필요합니다 (다음 움직임).

게임이 매우 단순하지 않으면 (가능한 모든 상태가 메모리에 적합 할 수있는 경우) RL 알고리즘 내부에 일종의 함수 근사가 필요합니다. 신경망이 표준 선택입니다. 그 일부를 위해 무언가 를 갖는 것은 피할 수 없습니다-또 다른 좋은 선택은 수동으로 휴리스틱을 구성하는 데 사용할 수있는 프록시 기능을 정의하고 선형 근사기를 사용하는 것입니다-모든 기능의 가중치 합계. 이것은 충분히 잘 작동 할 수 있으며, 예를 들어 RL을 사용하여 훈련 된 체커 (draughts) 플레이어에서 사용되었습니다.

실제로 자신 만의 휴리스틱 함수가 이례적이지 않다면 선형 근 사기처럼 취급하고 RL을 사용하여 최상의 가중치를 배울 수 있습니다.


"강화 학습은 보상이 지연되는 환경을 해결하기위한 것입니다. 중간 목표가 아닌 목표에"보조자 "보상을 추가하는 것은 일반적으로 비생산적입니다." 중간 목표 " Hindsight Experience Replay " 를 도입하여 희박한 보상 문제를 해결하려는 논문이 있습니다.
nbro

1
@nbro : 희소 한 보상을 해결하려는 많은 시도가 있습니다. RL의 큰 개방형 질문입니다. 문제의 도전을 증가시키는 한 가지 방법은 보상을 더 희박하게 만드는 것입니다. 자격 추적은 또 다른 시도이며 계층 적 RL은 또 다른 유망한 영역입니다. . . OP의 문제에 대한 타당성과 주제에 대한 소개에 관한 것이기 때문에 여기에 답변에 이러한 기술을 추가하고 싶지는 않습니다.
Neil Slater
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.