最終更新日:
AIを実装して将棋ソフトを作りたいと考えている人もいるのではないでしょうか?
将棋界では近年AIの活躍が広がっており、将棋の戦いは複雑なパターンが存在するため人間に対する攻略は困難とされていましたが、2013年にコンピュータ初となるプロ棋士への勝利を達成し、それ以降も急速に進化を続けています。
このような将棋の対局ができるコンピュータを、自分で作ってみたいという人もいるでしょう。そこで、本記事では将棋の対局ができるAIの作り方を解説します。
▶AIの作り方を徹底解説!|簡単に使えるツールや本おすすめ20選>>
目次
将棋ソフトの作り方の流れ
以下では実際に将棋ソフトを作る流れを紹介します。実際に棋譜データを学習させて、ルールを守り実際に対局できるようにしましょう。
主に、次の3つの工程にわけられます。
それぞれ解説します。
環境構築
まずは環境を構築します。
以上にあげた環境をインストールしましょう。コードを打つVisual StudioやPythonのライブラリであるChainerなど環境が整ったら、学習データを集めます。
ニューラルネットワーク
学習が終わったら、コンピュータの思考部分を実装しましょう。将棋の指し手を予測、場面を評価するための2つのニューラルネットワークが必要になります。
指し手予測をPolicy Networkで、場面評価をValue Networkにて行います。もともと囲碁の戦いに用いられていたディープラーニングの技術であるため、少し変更する箇所があります。
コードについては、以下のリンクを参照してください。
(参考:https://engineerblog.mynavi.jp/technology/shogi-ai/)
実装
ニューラルネットワークが実装できたら、将棋AIを実装します。
USIエンジンにすると、モデルを使って対局できるようになります。将棋GUIソフト「将棋所」を使うことで構築したニューラルネットワークの部分を活かして、GUIを作成することなくGUI操作を可能にします。
また、将棋所を使えば対戦も可能で人間対人間、人間対エンジン、エンジン対エンジンなど対戦できます。
将棋ソフトの思考部分を作り、「将棋所」を活用して実装しましょう。
将棋ソフトはAIで作れるのか?
将棋はルールが複雑で、何手も先を予測して進めていく必要があります。とても複雑なため、苦手だという人も多いかもしれません。
では、自動で対局できる将棋ソフトを作ることは可能なのでしょうか?結論として、AIを実装した将棋ソフトは作れます。
以下のリンクではAIを使用した将棋ソフトを紹介していますので気になる方は参考までにご覧ください。
▶AIが棋力向上をサポート?将棋の世界で活躍するAIとは>>
将棋AIの作り方を学べる本
将棋AIの作り方を詳しく学びたい人は書籍を利用することもおすすめです。ここでは作り方が学べる本を3冊紹介します。
それぞれ解説します。
強い将棋ソフトの創りかた
コンピュータ将棋の大会である世界将棋AI電竜戦の第1回、2回で優勝した「GCT電竜」の開発者がより強い将棋AIを創る方法が解説されています。
将棋AIについて、どんな動きをしているのかなど根本的な部分も解説されており、本書を読み進めることで実際にコードで将棋AIを作ることもできます。
将棋AIで学ぶディープラーニング
コンピュータ将棋の歴史とディープラーニングの関係、コンピュータ将棋の大会の概要と参加方法から、実装する将棋AIの前提となる理論や、ディープラーニングを使って実際に対局できる以下の3つの将棋AIについて、PythonとChainerで実装する方法が解説されています。
ディープラーニングを使った将棋AIの作り方
強化学習編、大規模学習・高速化編、Plicy Network編にわかれています。ただし、現在では内容が古く、使うフレームワークの最新版では動作しない場合があるので注意しましょう。
【初心者におすすめ】誰でも作れる将棋ソフト – 将スタ
自分で将棋AIを作るのは、初心者にとっては難しいでしょう。
そこで、初心者におすすめの誰でも将棋AIが作れるソフト、将棋ソフトスタジオを紹介します。
将スタでは、動画でソフトの使い方が詳しく解説されており、目的ごとにさまざまな作り方がわかります。
まとめ
この記事では、将棋AIの作り方や、作り方を学べる本、おすすめのソフトを紹介しました。
なかなか将棋AIの作り方を知れる機械がなく、作ってみたくても作れない人も多いでしょう。しかし、わかりやすいソフトを活用したり、書籍で知識をつけたりすることで、可能になります。
将棋AIを作りたいと考えている人はこの記事を参考にしてみてください。