マイロ将棋(4)学習のさせ方

マイロ将棋での教師データは、盤面(と持ち駒)の情報とその局面の勝率です。この教師データを使って、ニューラルネットワークのモデルを学習させ、様々な局面の勝率を予測できるようにします。

 

ディープラーニングの学習を行う部分は、ありがたいことに自分でプログラムを作る必要はなく、ディープラーニングフレームワークを使うことで実現できます。マイロはChainerというフレームワークを使用しています。Chainerは既に開発が終了してしまっています。PyTorchやTensorFlowを用いても同じように学習が行えることは確認したのですが、今のところ移行する強い理由が見つからず、使い慣れているということもあり、Chainerをそのまま使い続けています。

 

教師データを元に学習させていけば強いコンピュータ将棋のプログラムが作成できると思うのですが、実際にやってみるとなかなかうまくは行きません。何がうまくいかないかというと、元々考えていたほど、正しく予測できるようにはならない。そして、学習するためには膨大な教師データが必要。教師データの作成には多くのコンピュータリソースと時間が必要。また、学習そのものにもコンピュータリソースと時間が必要。等々、結果として作り始めてから3年ほど経っていますが、進み具合は非常に遅く、あまり強くなっていません。しかし進歩していないわけではなく、歩みは遅いですが、前よりも改善してきていると言える部分もそれなりに出てきてはいます。

 

ディープラーニングをどのようにコンピュータ将棋に適用することで、強さを発揮するようになるのか、これまでの歩みを振り返るとともに、今後の改善方法を模索していきます。