2017-10-31 9 views
0

나는 http://curvefever.io/과 비슷한 게임을위한 커스텀 openai gym 환경을 구현했지만 연속적이 아닌 신중한 동작을 구현했습니다. 내 에이전트는 각 단계에서 왼쪽/위/오른쪽/아래 네 가지 방향 중 하나를 선택할 수 있습니다. 그러나 이러한 행동 중 하나는 항상 "역전"할 수 없기 때문에 항상 에이전트 자체가 충돌하게됩니다.보강 학습에서 잘못된 동작

현재 저는 에이전트가 무브먼트를 취하도록하고 무효화 된 행동을 취하면 결국 죽게 내버려두고 결국 그 상태에서 행동을 취하지 않게되기를 바랍니다. 나는 불법 이동을 0으로 만들고 그 다음에 행동을 취할 확률을 설정할 수 있다고 읽었습니다. 이 문제를 해결할 다른 방법이 있습니까?

답변

1

당신은이 변화에 의해이 문제를 해결하기 위해 시도 할 수 있습니다 :

1 : 입력으로 현재의 방향을 제시하고 그것이 충돌하지 않는 움직임 걸리는 경우 아마도 0.1의 보상을주고, 경우에 -0.7를 제공 직접 충돌을 일으키는 뒤로 이동합니다.

2 : 신경망과 Softmax 기능을 마지막 계층의 활성화 기능으로 사용하는 경우 신경망의 모든 출력에 Softmax 기능을 부여하기 전에 양수 (신뢰)를 곱하십시오. 100 이상이 많은 영향을 미치지 않기 때문에 0에서 100까지의 범위가 될 수 있습니다. 더 많은 정수는 상담원이 주어진 상태에 대해 조치를 취해야 할 더 많은 신뢰입니다.

신경망을 사용하지 않거나 깊은 학습을하는 경우 게임 환경이 복잡해지고 신경망이 최상의 결과를 제공하므로 심도있는 학습 개념을 배우는 것이 좋습니다.

참고 : 많은 시간이 소요됩니다. 그래서 당신은 알고리즘을 훈련시킬만큼 충분히 기다려야합니다. 나는 서둘러서 훈련시키지 말 것을 제안한다. 그리고 나는 게임을했습니다. 정말 재미있었습니다 :) 게임을 위해 AI를 만들고 싶습니다. :)

+0

고마워요. 인공 지능은 지난 주에 끝낸 경쟁을위한 것이었고, 나는 포기할 수 없었습니다. 나는 A3C를 사용 했으므로 출력으로 softmax 레이어가 없습니다. 내가 게임 플레이를 보았을 때, 실제로 그렇게 자주 움직이지 않는다는 것을 알았습니다. (이렇게하면 즉시 죽을 것이므로 좋은 움직임이 아닙니다.) 내가 실패한 곳은 입력을 정리하고 너무 높은 감마 값을 정리하는 것입니다. 나는 그것을 가장 길게 훈련했을 때 .95로 설정되었습니다. – ericwenn

+0

어떤 경쟁인지 물어볼 수 있습니까? 고마워요. –

+0

그것은 Cygni의 경쟁이었습니다. 여기에서 찾을 수 있습니다. http://game.snake.cygni.se/#/?_k=kdwudn – ericwenn