GA将?開発日記~原点回帰~

ネタ勢最強を目指して絶賛開発中。

メタ強化学習に関して、理解出来た範囲で纏めてみる

gasyou.hatenablog.jp

 上記エントリで参照している論文の件です。

 まず、強化学習において探査*1を行う手法は、大別すると2種類になると思います。

  1. 乱数を用いて探査する:ε-Greedy方策、Softmax方策 etc.
  2. 状態や行動の試行回数に応じて探査する:UCB1、MBIE-EB etc.

 んで、これらの手法にはメタパラメータ*2が存在するので、既存のメタ強化学習は「より良いメタパラメータを探す」のを目的としていた様です。

 これに対して、上記論文の手法は「より学習に貢献する状態行動対を探す」のを目的としています。

 コンピュータ将棋の場合で例を挙げると、この手法は「局面と指し手」のペアを色々と探し、それらを使ってエージェント*3に学習させます。

 で、論文のキモは「局面と指し手のペア(複数)を使って学習し、強くなったかどうか」をメタエージェント*4が判断し、強くなった局面・指し手と似た傾向のペアを生成しやすくする部分だと思われます。

 人間の場合で言えばプレイヤー(対局する人)と指導員(次の一手問題を沢山作る人)がいて、指導員は「このプレイヤーは攻めるのが得意だから、そっちを伸ばす様な問題を作ってみよう」とか「ちょっと囲いを軽視しがちだから、囲う事の重要性も認識させよう」という事を、プレイヤーの棋力向上に応じて指導員が学習していくイメージでしょうか。

 この手法が凄いと思うのは、メタエージェントの学習にややこしいロジックを持ち込まずに、シンプルな方策勾配法を用いている事だと考えます。メタエージェントは、エージェントの学習前後の棋力の上下を見て、それをメタエージェントに対する報酬として扱うので、理論的にも実装的にもシンプルで分かりやすくまとまっています。

 先日私も実装してみましたが、驚くほど簡単に実装出来て、かつ大幅な性能向上が有りました。

 という訳で、PGLeaf DreiのPhase 3ではこの手法を組み込んでみますので、今から期待大です。

*1:色々な行動を試して、それが良い行動かどうか判断する行為

*2:εや温度等

*3:思考エンジン・評価関数

*4:局面と指し手のペアを生成するエージェント