教師あり学習による事前学習

 再現性をある程度担保したいので、一度強化学習で学習したパラメータを初期値として再び強化学習をやるようなことはあまりしたくない。かといって毎回ランダムパラメータから学習しているのも効率が悪いと思えたので、自分の中で折り合いのつく点として、教師あり学習である程度事前学習を行ってから強化学習をすることを試してみた。

結果

教師あり学習

 まず教師あり学習を0.1Mステップ(学習時間は4時間弱ほど)回した時点では、Policy損失が1.656799、Value損失が0.701600となった。これは今までの強化学習

での最終的な損失と比べると

手法 Policy損失 Value損失
教師あり学習 1.656799 0.701600
強化学習 2.020327 0.702119

となり、強化学習より小さい値となっているが、これをそのまま対局させても強くない(おおむねレート-300程度である)ことがわかっている。floodgateのデータを「2016年~2018年は学習データ、2015年は検証データ」と分けているとはいえ、データに相関が高いので汎化性能が高くないままに損失の数値は低くできてしまうということだろうか。

 この教師あり学習で得られたパラメータを初期値として強化学習を行った。

強化学習:損失

f:id:tokumini:20200229181159p:plainf:id:tokumini:20200229181201p:plain
左:Policy損失 右:Value損失

 事前学習によってPolicy損失、Value損失ともに僅かながら改善されているが、そこまで極端な差が出るというわけでもなかった。よく見ると一番最初の検証時点(0.1Mステップ)での損失は教師あり学習での最終的な損失より大きい値となっている。教師あり学習で得た初期値があまり有効ではなく、学習をやり直している雰囲気を感じる。

強化学習:各ステップでの性能測定(Miacis側0.5秒)

f:id:tokumini:20200229181345p:plain

 0.5Mを超えたあたりからはほとんど差がなくなっている。事前学習にはあまり意味がなさそうだ。

おまけ

 floodgateには振飛車棋譜をちらほらあるようで、そこから教師あり学習を行ったため強化学習の初期には飛車を振る序盤がそこそこ現れていた。

f:id:tokumini:20200229184301p:plainf:id:tokumini:20200229184311p:plain

 しか序盤が対抗形風味だとしてもその後囲いあう展開にはならず、さっさと大駒を交換して乱戦模様になっていることが多い。教師あり学習で「振飛車っぽい指し方」を学習できているわけではなく、序盤数手の段階で飛車を左に置く行動の割合が少し多いだけというように感じられた。また、結局学習が進むと居飛車のみになっていた。

 棋譜の保存は学習データ生成中の100局につき1局の頻度であり、さらにそこから数十局を雑に目視で確認しただけなのではっきりした検証ではない。雑談程度に。