2017-04-15 14 views
0

Chrome 공룡 게임 (오프라인 일 때 재생할 수있는 게임) 용 Q-Learning을 구현하고 싶습니다.강화 학습에서 같은 상태에 대한 다른 보상

내 상태를 다음 장애물까지의 거리, 속도 및 다음 장애물의 크기로 정의했습니다.

보상을 얻으려면 나는 성공적으로 통과 한 장애물의 수를 사용하고 싶지만, 같은 주에서 다른 즉각적인 보상이 발생할 수 있습니다. 같은 유형의 장애물이 게임에서 나중에 다시 나타날 수 있지만 더 많은 장애물이 이미 통과되었으므로 통과하는 것에 대한 보상이 더 높습니다.

내 질문의 현재 : 문제입니까, 아니면 Q-Learning이 여전히 작동합니까? 더 좋은 방법이 없다면?

+0

나는 죽을 때 커다란 부정적인 보상을주는 보상 체계를 제안합니다. 그리고 점수가 올라갈 때마다 긍정적 인 보상을받을 수 있습니다 (아마도 점수 증가와 같습니다). Q-learning에 대한 문제가 없습니다. 바닐라 Q 학습을 사용하여 놀라운 팩맨 에이전트를 보았습니다. 공룡 게임이 문제가되어서는 안됩니다. –

답변

2

MDP의 정의는 보상 r(s,a,s') 상태 s'를 검색 할 상태 s에서 활동 a을 복용에 대한 예상 보상으로 정의되는 것을 말한다. 즉 주어진 (s,a,s')은 잘 정의 된 기대치를 가지고있는 한 지속적인 보상이나 보상 배분을 할 수 있습니다. 당신이 정의한대로 보상은 통과 한 장애물의 수에 비례합니다. 게임은 영원히 계속 될 수 있기 때문에, (s,a,s')에 대한 보상은 자연수의 합계처럼 보입니다. 이 시리즈는 갈라지기 때문에 기대치가 없습니다. 실제로 Q- 러닝을 실행 한 경우 값 함수 diverge (NaN 값)가 표시되지만, 학습 도중에 가장 빠르게 증가하는 값이 최상의 상태 액션 쌍이 될 수 있기 때문에 정책이 괜찮을 수도 있습니다.

이 문제를 방지하려면 다른 보상 기능을 선택해야합니다. 에이전트가 죽을 때 점수가 무엇이든간에 에이전트에게 보상 할 수 있습니다 (마지막에는 큰 보상, 그렇지 않으면 0 점). 대리인이 선택의 여지가없고 앞으로 나아갈 수있는 한 살아있는 보상 (작은 단계마다 보상)을주는 것이 좋습니다. 가장 높은 총 보상이 가장 긴 실행에 할당되는 한 ((s,a,s') 튜플에 대한 보상 예상은 잘 정의되어 있습니다.) 좋은 결과입니다.