Actor-Criticの疑問のまとめ

  • 4
    いいね
  • 1
    コメント

強化学習にてActor-Criticを使うと良いという話はよく聞きますが、その理由が網羅的に記載されているものが見当たらなかったので、調べてみました。下記はそのまとめになります。
例によって、ご指摘等々大歓迎です。

Actor-Criticの長所

理論面での長所

  • Value-based methodとPolicy-based methodの短所を相補的に補う手法である:

    • Value-based methodは、学習が十分に進んでいないと意味のある結果を出せない。Valueが学習に伴って少し変わっただけで、簡単にnext actionが変わってしまう
    • Policy-based methodは、Policy gradientの計算の中に、「生」の報酬が入ってしまうため、微分がしづらい。普通ベースライン除去などで対処するが、それでも分散が大きく、学習が進みづらい スクリーンショット 2017-04-17 22.57.59.png
    • 一方で、actor-criticは双方の長所を合わせている。この場合、Policyは、生の報酬の代わりに、advantage $A(s,a) = Q(s,a) - V(s)$を使って学習を進めていきます。
  • 学習の収束が保証されている: 実は、Q-learningでは、CNNなどを使った非線形関数に対する収束性が保証されていないらしい

  • 蒸留により、Actorの学習が早く進む: Criticにて高評価を取るために、Actorのパラメータがどの方向に修正されるべきかという情報が、Actorから見える。これは、「蒸留」(distillation)というテクニックを活用していることに相当し、学習がより早く進む

実装上の長所

  • Experience replayを使わなくて良い: Q-learningでは、収束の要件の中に「学習に使うサンプルが相互に独立であること」が要求されている。しかし、Actor-Criticにはそのような制約は無いので、Experience replayは不要
  • LSTMなどを使える: 上のメリットにより、時系列など相互に相関しているデータを入れても学習が収束する。そのため、LSTMなどを使うことが可能になる

活用上の長所

  • Criticを分離して学習させることができる:
    • 実際の分析では、Criticなどのデータは容易に作れるが、Actorのように「最適出力」を出すようなものは作れないことが多い。これは、Criticが基本的に物理法則に従い、自然に良し悪しのラベルを導けるタイプの写像モデルであることが多い一方で、Actorは、複数の手の中から、最適な解を導出するというタイプの難易度の高い写像になりがちなため
    • Criticは、人間でいうところの、「想像力」である。ある動作をした場合、それがうまくいくかうまくいかないかを判断するシミュレーターとしての役割を果たしている。一度そのシミュレーターができてしまえば、あとはactorの思考実験で最適化などが可能になる

使用上の注意

  • Criticの学習が十分に進んでおり、「滑らか」な構造となっていないと、Actorの微分に悪影響を及ぼす
  • 上記と似たような理由により、ActorとCriticの学習係数の選定には非常に大きなノウハウが存在。大体のケースでそもそも学習が進みすらしない、もしくは、何かのパラメータが発散してしまうということが起こる
  • (未確認) next actionの選定を確率的に選ぶのではなく、policyが最大値を取る方向として学習を進めると、学習が破綻する可能性(少なくとも自分が実験した範囲ではこの問題が再現性をもって発生)
  • GANなどと異なり、必ずしもお互いに騙し合うといった行動は起きないことには、概念的な意味で注意

参考