読み太 アピール文書 2017/3/31 塚本隆三 1.読み太とは? 「よみた」と読みます。友人にプログラムの名前を相談したときの案の一つで、これだ!と思って採用しました。 githubにてオープンソースで開発をしています。 ソースコードと実行ファイルは以下から入手できます。 https://github.com/TukamotoRyuzo/Yomita 2.技術的特徴 ・Bitboardによる指し手生成を行います。Redundant Bitboardという少し変わったBitboardを採用しています。 ・チェスソフトのstockfishの探索部をベースとし、最新のstockfishにもキャッチアップしています。 進行度という概念を取り入れており、局面が終盤になるほど枝刈が減るように工夫しています。 ・3駒の位置関係 + 手番を特徴とする評価関数(KPPT)を使用しています。 雑巾絞りという強化学習を用いてパラメータ調整をしており、最初は やねうら王オープンソースプロジェクトで公開されている教師用局面を用いて学習させ、 その後は自己対戦により一度に教師用局面を約40億局面生成し、学習を行っています。 学習部はライブラリを使用しており、やねうら王mid 2016 V3.57に実装されていたものをそのまま利用させて頂いています。 ・手入力した定跡を入れています。作者が居飛車党なので、横歩と角換わりが中心です。 3.第4回電王トーナメントからの変更点 ・雑巾絞りによる強化学習は第4回将棋電王トーナメントから一回しか行っていませんが、R80強くなりました。 教師局面は平手初期局面から20手ランダムで指させ、その後は探索深さ7で探索させた結果得られた指し手で進める ことで生成しています。探索の際、futilityマージンを大きく設定したのが効果があったのかもしれません。 ・進行度という概念を取り入れています。KP値を特徴としてfloodgateの棋譜から学習させました。 今のところはfutilityマージンの調整にしか使っていませんが、調整する前よりR20程度強くなりました。 実は進行度を用いた評価関数も学習させていて、そのために64GBのメモリも購入したのですが、思ったような 効果をあげられなかったのでボツにしました。 ・探索部の細かい調整を地道に行っています。stockfishに取り入れられた変更をそのまま取り入れても 強くならないことも多く、枝刈りしすぎないようにパラメータを調整して勝率を確かめるなどの作業が 割と開発時間の大半を占めていたりします。 ・途中で止まってしまうようなバグがまだあったので、原因を突き止めて直しました。 3週間連続稼働することを確認しました。 4.謝辞 読み太は ・やねうら王 ・stockfish ・Apery ・Bonanza を大いに参考にさせていただいております。作者様に感謝申し上げます。