nodchipのコンピューター将棋ブログ

コンピューター将棋ソフト「tanuki-」シリーズの実験結果を掲載しています。

世界コンピュータ将棋オンライン大会2020 参加記録

本ブログエントリは、2020年5月3日~4日に開催された、世界コンピュータ将棋オンライン大会2020(以下wcsoc2020)の参加記録です。

究極幻想アルテマタヌポン

tanuki-チームは、大会毎に参加名を変えて参加しています。今年度の参加名は「究極幻想アルテマタヌポン」でした。元ネタはファイナルファンタジー14内のコンテンツ名で、何か凄そう感+かわいらしさを出そうと思い、名付けました。

YouTube非公式生放送

tanuki-チームは今回の大会において、YouTubeを利用した非公式生放送を行いました。生放送では究極幻想アルテマタヌポンの対局の様子を写したほか、Zoomミーティングで番組参加者を募り、その様子を写したりもしました。Zoomミーティングにはコンピュータ将棋ソフト開発者のほか、プロ棋士の千田先生や将棋ライターの松本さんなどもお見えになり、とても盛り上がりました。アーカイブが残っておりますので、当日視聴できなかった方は是非ご覧ください。

(1) 世界コンピュータ将棋オンライン大会 非公式生放送 2日目 (2020年5月4日) - YouTube

 

評価関数の改良

tanuki-チームでは、昨年の5月から半年間ほど、評価関数のネットワークの改良に取り組みました。試したネットワークはスキップコネクション付きのhalfkp_256x2-32-32、「halfkp_256x2-32-32-sc」です。

スキップコネクションとは、ニューラルネットワークにおいて、ある層の出力を、次の層のみではなく、後段の層の入力にも加えるというテクニックです。これにより、層が深いニューラルネットワークにおいて、誤差の逆伝搬をしやすくなり、学習しやすくなるという効果があるようです。

halfkp_256x2-32-32-scでは、隠れ層1層目の出力を出力層に加えました。この追加によりパラメーターが増えますが、全体のパラメーター数からみると、増加分は微々たるものになります。

実験の結果、残念ながら、halfkp_256x2-32-32-scはhalfkp_256x2-32-32と同程度の性能しか出ませんでした。

本番では第29回世界コンピュータ将棋選手権で使用した評価関数と同じものを使用しました。

メガショック定跡

「メガショック定跡」は、やねうら王wcsc29で採用されているテラショック定跡に、手動等で生成した定跡を組み込めるようにした手法です。

はじめに、すでに存在している定跡データベースをマージします。wcsoc2020で使用した定跡には、以下の定跡をしました。

  • やねうら王 テラショック定跡
  • tanuki-wcsc29定跡
  • まふ定跡
  • C-Book WCSC29定跡

続いて、上記の定跡の各局面の各指し手に、探索による評価値を付けました。探索は1000万ノードで行いました。次に、上記の定跡データベースに対し、テラショック定跡のMin-Max探索の要領で、末端局面の評価値を平手局面に向かって伝搬させました。最後に、上記の定跡データベース同士を対局させ、登録されている指し手の少ない局面が登場したら、Multi PVで探索を行い、得られた指し手を登録するという手順を繰り返します。最終的には200万局面以上を登録しました。

大会前日に定跡データベースの最終確認を行ったところ、平手局面に登録されている指し手の評価値がすべてマイナスとなっており、平手局面で定跡データベースが使用されないという問題があることが分かりました。仕方なく2手目までは手動で定跡を追加しました。

また、本番では定跡にヒットする手数が短いという問題が起こりました。中終盤特化型の評価関数は、定跡にヒットする手数が長いほど有利となります。定跡と評価関数がかみ合っておらず、評価関数の本来の力が出せなかったように思います。

Tree Ponder

「Tree Ponder」はMulti PonderとPre-Ponderを一般化したクラスタ向けPonder手法です。

初めにGPS将棋が採用したクラスタのように、ゲーム木の部分木に思考ノードを割り当てていきます。ある局面について思考ノードを割り当てる際、Multi PVで探索を行い、その上位の手から順に、残りの思考ノード数の1/2、1/4、1/8、…と割り当てていきます。これを再帰的に繰り返し、全ノードを各部分木に割り当て、思考させます。思考にはgo ponderコマンドを用います。そして、本譜がいずれかの思考ノードが思考中の局面に到達した場合、その思考ノードにponderhitコマンドを送ります。これにより、既存のUSIコマンドを大幅に拡張することなく、Tree Ponderが実装できます。

Tree Ponderは台数が増えれば増えるほど、Ponder対応可能な指し手の幅と深さが増えていきます。wcsoc1では8台の思考ノードを使用しました。この場合、Root局面では4つの合法手に対してMulti Ponderを行うことができます。また、3つの局面に対してPre-Ponderを行うことができます。さらに、深さ3のPre-Ponderも行うことができ、理論上、深さ2のPre-Ponderを実装したコンピュータ将棋ソフトに対し、カウンターを当てることができる可能性があります。

手元の実験ではtanuki- 5ノードでクラスタを組んだものと1ノードとで対局させたとき、最も良い結果で勝率59%となりました。ただ、特定のパラメーター以外で対局させると逆に弱くなるパターンが多くみられました。実装に問題があった可能性が高いです。

まとめ

今年度は技術的に試したことの多くが裏目に出てしまい、tanuki-をあまり強くすることができませんでした。来年度は一つ一つの技術の検証をしっかり行い、より良い成績を目指したいと思います。