メタ強化学習に関して、理解出来た範囲で纏めてみる
上記エントリで参照している論文の件です。
まず、強化学習において探査*1を行う手法は、大別すると2種類になると思います。
- 乱数を用いて探査する:ε-Greedy方策、Softmax方策 etc.
- 状態や行動の試行回数に応じて探査する:UCB1、MBIE-EB etc.
んで、これらの手法にはメタパラメータ*2が存在するので、既存のメタ強化学習は「より良いメタパラメータを探す」のを目的としていた様です。
これに対して、上記論文の手法は「より学習に貢献する状態行動対を探す」のを目的としています。
コンピュータ将棋の場合で例を挙げると、この手法は「局面と指し手」のペアを色々と探し、それらを使ってエージェント*3に学習させます。
で、論文のキモは「局面と指し手のペア(複数)を使って学習し、強くなったかどうか」をメタエージェント*4が判断し、強くなった局面・指し手と似た傾向のペアを生成しやすくする部分だと思われます。
人間の場合で言えばプレイヤー(対局する人)と指導員(次の一手問題を沢山作る人)がいて、指導員は「このプレイヤーは攻めるのが得意だから、そっちを伸ばす様な問題を作ってみよう」とか「ちょっと囲いを軽視しがちだから、囲う事の重要性も認識させよう」という事を、プレイヤーの棋力向上に応じて指導員が学習していくイメージでしょうか。
この手法が凄いと思うのは、メタエージェントの学習にややこしいロジックを持ち込まずに、シンプルな方策勾配法を用いている事だと考えます。メタエージェントは、エージェントの学習前後の棋力の上下を見て、それをメタエージェントに対する報酬として扱うので、理論的にも実装的にもシンプルで分かりやすくまとまっています。
先日私も実装してみましたが、驚くほど簡単に実装出来て、かつ大幅な性能向上が有りました。
という訳で、PGLeaf DreiのPhase 3ではこの手法を組み込んでみますので、今から期待大です。