将棋AIの棋力向上法が人間の棋力向上に役立つ可能性

将棋AIについて

 まず将棋AIの構成要素について説明する[1]。将棋AIをインストールしたことのある方でインストールが面倒だと感じたことはないだろうか?将棋AIで対局して遊ぶためには将棋GUIと思考エンジンを用意する必要がある(図1)。

図1.将棋AIの構成要素 GUIソフトと思考エンジンがUSIプロトコル という通信手段を用い対局を行う。

 なぜこのようになっているかと言えば、思考エンジンの開発者が将棋の駒や盤の絵を描く作業を不要にし、思考エンジンの開発に専念するためです。さらに思考エンジンはさまざまなパーツに分解される(図2)。

図2.思考エンジンのパーツ 探索、評価、詰将棋、定跡に分解される。探索と評価は必須だが、詰将棋と定跡はなくても思考エンジンとして機能する。詰将棋は探索の中に組み込まれていることが多い。

 このように分解したことにより、現在では探索だけ改良する人、評価だけ改良する人、詰将棋だけ改良する人、定跡だけ改良する人がいる。もちろん全てまたは複数に携わることもある。詰将棋に関しては解けない問題がなくなったことにより、改良は下火になっている。少しばかり、改良の余地が残されているのだが。
 将棋AIのインストールがなぜ面倒なのかと言えば、将棋GUIと探索、評価、定跡、詰将棋を別々のところからダウンロードをし手元で合体させなければならないからだ。

 次に探索と評価について説明する。将棋においては、探索と評価どちらかが完璧であればもう片方は不要と言われている。例えば探索が完璧であれば、初期局面から終局したときの勝敗がわかるので、評価は不要になる。評価が完璧であれば、その局面における神の1手がわかるので、探索は不要になる。しかし現実には実現不可能なので、人間もAIもある程度まで読み進めて評価を行うということをしている。将棋の読みの鉄則は自分の手番では、指手の効果が最大になる手を選び、相手の手番では指手の効果が最小になる手を選ぶことである(図3)。

図3.ミニマックス法 [2]

 ミニマックス法が最も原始的な方法で、人間もAIも基本的にはこのミニマックス法で読みを進めるとよい。しかし、ミニマックス法よりも効率の良い方法がある。図3では3手の読みで+2になる手を選ばれるので、-1の手は初めから読みを切り捨てて良いことになる。しかし、-1の方を選択したとして5手先で詰みが見つかれば当然-1の方を選択するべきだろう。捨て駒を連発するような詰み筋の場合、途中で一旦評価値が下がり、後に詰みを発見し評価が覆ることが、実際にある。読みの切り捨てや、どの手にどの程度時間をかけて読むのかで、探索の改善の余地がある。そしてまた、読みの点数をつけ方も改善の余地があり、少ない読みの深さで良い手を指せるようになる。

人間への応用法

 具体的なステップについて説明する。
 まずは、GUIと思考エンジンに分ける必要がある。これには実際に将棋盤に並べずに頭の中だけで将棋の駒を動かせるようにする必要がある。俗に言う脳内将棋盤である。符号がわかるように訓練してください。
 次は思考エンジンを分解していく。最初に詰将棋から始めよう。最終的には玉方〇〇、攻方△△、口頭で符号を言い詰将棋が解けるようになるところを目指す。2番目に探索の強化を行う。といっても詰将棋である程度訓練しているので、スムーズにできると思う。初期局面から終局まで、棋譜だけで脳内で並べ、終局図の局面のみ将棋盤に並べチェックをする。この時に評価を行ってはいけない。できるだけ早く脳内で駒を動かすことに専念する。3番目に評価の強化を行う。これは質の高い棋譜(AI用の教師データ)を見ることが大事である。質の高い棋譜かどうかを判断するのは、一般には難しいが、将棋AIで一度機会学習を回し、将棋AIの棋力が向上すれば質の高い棋譜と判断できる。より簡便に判断するなら、将棋AIの大会の上位AIの棋譜やfloodgateの上位AIの棋譜を並べるとよい。私はAI用の教師データを見ていたら棋力が向上した。棋譜並べをしようと思って見ていたわけではなく、どのようなデータが生成されたかをチェックしていただけなので、副作用的な効果である。効果を確かめるためには、AI用の教師データを見ることを主目的としなくてはならない。より詳しいことは自分で将棋AIの開発ができるようになるか、将棋AIの開発者に聞いてください。4番目に定跡に取り組む。将棋AIの定跡をどこかで入手して、見てみてください。詳しいことは将棋AIの開発者や定跡作成者に聞いてください。
 人間の場合は、それぞれの思考エンジンのパーツを少しずつ改良していくのが良いと思う。

まとめと筆者のつぶやき

 将棋AIはGUIと思考エンジンに大きく分かれている。思考エンジンはさらに探索、評価、定跡、詰将棋に分かれている。人間もこのように分解して、それぞれ改善を目指すのがよい。

 人間の棋力向上に役立てるためには、私だけなのでサンプルがないに等しく、より多くの人に取り組んでもらう必要がある。将棋AIの開発者でない人が、私のような棋力向上モデルを思いついたので、もしかしてと思って記事を書いてみた次第である[3]。チェスの世界ではプレーヤーとAIの開発者がタッグを組むことがある。将棋のプレーヤーと将棋AI開発者がタッグを組む日を、心待ちにしている。

注意事項

私の考えを元に各個人が取り組むのは自由です。この方法に実際に取り組んで、記事や論文に書いたり、動画化した場合は、引用として私のこの記事のurlを明記してください。

参考

[1]

[2]

[3]

この記事が気に入ったらサポートをしてみませんか?