Rollout policy

개인적으로 Rollout policy은 SeqGAN을 읽다가 접하여서 등장하여 알아보았다.
  • SeqGAN에서 설명된 부분만 보아도 진행 방식은 이해가 되나 rollout policy을 어떻게 설정하는지는 설명이 안되어있다.
  • Monte Carlo with rollout에서 rollout MC에 대한 언급이 있는데 rollout policy에 대한 설명은 아니고 SeqGAN 정도에서의 설명 정도만 써있다..
  • 이어서 알파고 논문에서 위 논문(MC with rollout)을 언급하며 rollout policy를 사용하였다. 따라서 알파고 논문을 매우 간단히 보며 어떻게 구성되었는지 보겠음.
  • 알파고 논문에서 말하길, rollout policy는 action을 결정하는 속도가 매우 빠르나 성능이 떨어진다고 하며, policy는 using a linear softmax of small pattern features로 간단한 것을 사용한다고 써있다.
    • SL policy는 CNN 13개층으로 이루어진 네트워크임.
    • 361개의(최대) classification 하는 문제라고 보면 됨.
  • 사실 rollout policy의 등장은 알파고에서 SL(supervised learning) policy을 사용하면 57%, 3ms의 inference time이 걸리는데 rollout policy는 24.2%, 3s정도 걸린다고 한다.
    • 즉 성능은 떨어지지만 시간은 적게 걸린다는 것이다.
    • 또한 rollout도 SL 방식으로 학습했다. 즉 단지 SL policy와 다른 것은 간단한 policy 사용했다는 정도??
    • Monte Carlo tree search 를 이용해서 많이 둬 보기를 위하여 rollout policy을 이용한 것 같다.
  • 알파고에서는 이러한 SL policy를 이용해서 RL policy를 구하는 방식
    • RL policy는 SL policy와 같은 네트워크인데, 학습하며 reward를 많이 받도록 강화학습 하는 느낌
  • 이것으로 마지막 value network를 학습한다.
    • Value network는 한 개의 결과(이길지, 질지)를 도출해내는 네트워크이다.
  • 알파고에 대한 논문 리뷰는 팡요랩에서 했으니 좀 더 알 고 싶으면 참고하면 될 것 같음.
결과적으로 rollout policy는 간단한 policy network를 구성함으로써 무한히 많은 공간을 조금이나마 MCTS을 빠르게 해서 더 많은 경험을 할 수 있도록 하는 것!

댓글

  1. 제가 seqGAN을 읽어본 바에 의하면 원논문에는 다음과 같은 구절이 있습니다. "G_beta is set the same as the generator." 여기서 G_beta는 roll-out policy라고 명시가 되어 있고요. 즉, 사전학습 시킨 pretrained generator를 roll-out policy (= behavioral policy)로 활용함과 동시에, GAN을 통해 이 pretrained generator가 업데이트 됨으로써 target policy역할도 수행하는 것 같습니다.

    답글삭제
    답글
    1. 맞는 말씀 같아요. 논문의 algorithm 1의 box와 같이보면 Gβ의 역할을 좀 더 이해하기 쉬운 것 같네요.

      seqgan, rollout policy은 사실 생성 초기에 공부하면서 쓴 것이라 잘못된 부분이 있을텐데 의견 감사합니다!

      삭제

댓글 쓰기