MrSyee / pg-is-all-you-need

Policy Gradient is all you need! A step-by-step tutorial for well-known PG methods.
MIT License
848 stars 119 forks source link

log monitoring학는법 질문 #21

Closed wonwooddo closed 4 years ago

wonwooddo commented 4 years ago

안녕하세요. RL bootcamp와 공개해주신 코드들을 덕분에 공부에 많은 도움이 되고있습니다. 다만 agent의 loss그래프를 보는법을 몰라 issue남깁니다.

예를 들어 (특히)ddpg에서는 actor loss와 critic loss의 그래프가 있는데, 딥러닝처럼 이것들이 학습하면서 낮아지고 수렴되면 학습를 멈춰야 하는것인가요? 학습이 잘되고있다는것을 loss그래프에서는 무엇을 보고 판단해야되는지가 궁금합니다. 감사합니다.

다운로드

MrSyee commented 4 years ago

안녕하세요. @wonwooddo 님

알고 계신 것처럼 actor loss와 critic loss가 점점 낮아지는 것을 확인하면 학습의 경과를 파악할 수 있습니다. 하지만 기존 딥러닝(supervised learning)에서처럼 loss의 값으로만 agent의 성능을 파악하기는 어렵습니다. loss의 경향성으로 신경망이 학습이 되고 있는지 아니면 제자리에 머물러 있는지 정도만 파악하는 것이 좋습니다. actor critic 류의 경우 두 신경망 모두 loss가 진동하면서도 전체적인 그래프는 낮아지는 경향성을 보입니다.

Agent의 학습정도를 제대로 파악하려면 reward 그래프를 보셔야 합니다. 그리고 이 환경에서 어떤 reward를 받아야 성공적으로 학습이 된 것인지 기준을 세울 필요가 있습니다. Pendulum 환경 같은 경우엔 reward를 -200 정도 받으면 잘 학습되었다고 볼 수 있습니다.

추가로 실제 agent의 모습을 render를 통해 관찰해야 합니다. Pendulum 환경의 경우엔 reward와 실제 결과가 일치하는 경우가 많지만 복잡한 문제이거나 실제 문제에서 reward를 직접 설계한 경우 reward가 높다고 하더라도 실제 화면을 render해서 확인해보면 생각한대로 학습이 잘 안되있는 경우도 있습니다. reward를 높게 받는 트릭만을 agent가 익힌 것이죠. 이 경우 reward는 높아도 실제로 학습이 잘 안된 것이기 때문에 디버깅 할 필요가 있습니다.

RL을 공부하시는데 저희 레포가 도움이 되서 기쁩니다. 좋은 성과 있으시길 바랍니다.

감사합니다.

wonwooddo commented 4 years ago

답변 감사합니다.