WCSC29に向けてやっていたこと
まだ振り返りです。前からたまっているものを出していかないと、新しいものを出していけない感じです。
WCSC28直後:ひたすら定跡作り
WCSC28では決勝リーグに進出したものの、1勝しかできないという結果に終わりました。特に定跡を使っていながら、評価値を見るとただただ負けていった将棋がいくつもありました。改善ポイントとして定跡がまず挙げられました。
また、評価関数の学習について。振り飛車党の評価関数を作るには、やはり振り飛車の棋譜が必要になると考えるのが普通です。が、ご存知のとおり、コンピュータ将棋では自然とは飛車を振りません。そこで定跡を使って飛車を振らせるわけですが、上記のような課題を抱えた定跡を使うのは抵抗がありました。
さらに、当時、まだ電王トーナメントは続くのか終わるのか分かっておらず、例年どおりであれば半年もしないうちに開催されるため、手っ取り早く成果を出すという意味でも、定跡の改善に着手するのは必然と言えるでしょう。
なので、ひたすら定跡を作っていました。最近、やねうら王のやねさんがテラショック定跡について情報公開をされていますが、あれに似たことをひたすら手動でやっていました。具体的には、定跡ありのHoneyWaffleと、仮想敵としていた最新の評価関数(QQR、illqhaシリーズ等)で持ち時間1手1分とかで戦わせ、棋譜を全部確認してよさそうな手を定跡に追加する、というものです。1手1分なのは、本番での高NPSマシンを疑似的に再現するためです。会社に行く前に連続対局を仕掛けて、帰ってきたら棋譜を確認する毎日でした。
また、手ごとの勝敗を集計していき、この手はキツそうだなという手は封印したり、面白そうな変化がある手はその局面から対局したりということはしました。
画像はgitで管理している定跡のコミットログです。実はGitHubは使わず、AWS CodeCommitを使っていました。1局分更新するごとにコミットして、コミットが深夜に及ぶこともザラでした。当然自動化すればいいんですが、居飛車の手が混入すると困るのと、私が級位者レベルにもかかわらず、研究していると純粋におもしろいというのがあり、こんな調子で5月から11月くらいまでやっていました。
燃え尽き期
正直あまり時系列を覚えていないですが、11月にもなるといろいろなことがありました。
・第6回電王トーナメントは開催されない(告知されたのは8月か9月くらいでしたっけ?)→夏くらいからモチベーションの低下
・心身ともに疲れがたまっていった
・NNUEの学習はかなり難しそうだという情報
・定跡なしで飛車を振ってしかも強いNNUEkaiFの出現(HoneyWaffleの役目はもう終わりでもいいかな?)
・NNUEが次の次の選手権(WCSC30)では使えなくなる?という問題
・疲れのせいか、仕事の方も精神的にきつい日が続いた
WCSC29のアピール文書に書いたとおり、NNUEで評価関数を学習させるのはいろいろと厳しいなと思い、断念した次第です。
2019年3月まで:構想だけ
その後、AlphaZeroの棋譜が公開されたのもあり、ディープラーニング系で何かできないか、というところに取り組もうとしました。アピール文書更新版に書いた、探索せずに詰むか詰まないかだけざっくり判定する仕組みです。ただそのアイデアに至るまでは、将棋中継の解説から、既存のコンピュータ将棋で未実装な概念はないか等考えていました。(単に観る将としてのウェイトが高くなったともいう)
4月から:やっぱり定跡なのかよ
上記のディープラーニング系の機能ですが、Pythonを使ったことがなかったのもあり着手が遅れ、夏休みの宿題のように先送りをして、Pythonの環境を作るくらいまでで断念しています。具体的には、詰むか詰まないかを画像の判別のように取り扱うものとして、その教師となる局面をどうやって作るかというところを軽く見ていたのがあります。
4月になるとやねうら王のテラショック定跡(100テラ版)が公開されました。中身を確認して、振り飛車の手がやはり相当なマイナスになっているのを見て、やっと闘志がわきました。テラショック定跡は78金が早くなっているので、そのキャッチアップのため定跡作りを再開した結果、ディープラーニング系の実装をあきらめた意味もあります。
また、その過程で1手1分なら少ない対局数ながらもそんなに勝率が悪くないという手応えがありました。100局にも満たないので個人の感想レベルで、しかも集計もしていないのですが。少ないNPSだと振り飛車は評価されないが、ある程度のNPSなら振り飛車も悪くないんだ!きっとそうであってくれ!という願望に支配されていました。
ただ結果的には、WCSC29ではこの4月でやった分の成果は直接的には表れていません。角交換系の振り飛車にまだつぶし切れていない弱点を発見したので、思い切ってそれを封印してみたのが成果だったと思います。逆に、80手くらいまで研究していた手順も封印されましたが。
ふりかえりは以上になります。
この記事が気に入ったらサポートをしてみませんか?