reinforcement-learning-kr / Unity_ML_Agents

Unity ML-agents Project Repository of RLKorea
81 stars 49 forks source link

Reward를 받기 힘든 Environment 에서 Time horizon 셋팅? #9

Closed moonsh closed 4 years ago

moonsh commented 4 years ago

책에서 설명 되지 않는 부분이지만 궁금해서 질문해요. Unity 로 제가 구성한 환경에서 에이전트들이 이상하게도 학습이 잘 이뤄지지 않고 있습니다. 그 이유로 Time horizon 문제라고 생각하는데요. 지금 환경에서는 한 에이전트가 1.0 의 Reward를 받기까지 1000 time step 이 걸리는데요. 여기서 모든 스텝 하나하나가 Reward 에 다가가기 까지 중요한 행동이 됩니다. 그러면 저의 환경에서 1000 time step을 모두 저장한다고 하고 0.99 Discount factor 를 가진다고 하면, 1000 step 에서의 1.0 Reward 는 무의미한 값이 되어 에이전트가 잘 학습이 이뤄지지 않는다고 생각하고 있습니다. 그래서 Discount factor 를 올려보고 테스트를 해보지만 학습이 잘 안되네요.

혹시 제가 시도해볼만한 방법이 있을까요?

Kyushik commented 4 years ago

안녕하세요! 일단 환경이 오랜 과정을 거쳐야 보상을 받을 수 있는 sparse reward 환경인 것 같습니다. 이런 환경인 경우 최근 연구되고 있는 exploration 관련 연구들을 참고해보시는 것을 추천드립니다. 최근 Intrinsic reward를 기반으로 탐험을 수행하는 연구들이 이런 sparse reward 문제를 해결한 경우가 많이 있습니다. 다음의 논문들을 참고해보시면 좋을 것 같습니다.

위의 두개 논문 같은 경우 제 개인 깃허브에 구현을 해놓았으니 한번 참고해보셔도 좋을 것 같습니다. https://github.com/Kyushik/DRL

만약 환경에 대한 수정을 통해 문제를 해결하고 싶으시다면 말씀하신대로 reward에 다가가는 동안의 과정에 대해서도 보상을 주는 방법이 가장 문제 해결에 좋을 것 같습니다. 최종적인 골 하나에만 보상을 부여하는 것이 아니라 그 과정에도 보상을 부여하는 것이지요.

내용 참고 부탁드립니다. 감사합니다! :)

moonsh commented 4 years ago

아 알겠습니다. 이런 논문들도 있네요. 상세한 설명 감사합니다!