人より強い"将棋プログラム"を作ろう
2016年3月、プロ棋士に勝つには後10年かかると言われていたコンピュータ囲碁でAlphaGoがトップ棋士に勝利しました。そこで使われた手法がディープラーニングです。
AlphaGoは局面を「画像」として認識し、打ち手の確率と局面の勝率を予測することで、次の打ち手を決めています。画像とはどのようなものか、次の打ち手をどうやって決めるのか?AlphaGoの論文をヒントに、ディープラーニングを使い棋譜を学習した将棋AIの開発を行います。強化学習のみでトップレベルの強さを持つAlphaZeroの手法も取り入れています。
[導入編]では、コンピュータ将棋の歴史とディープラーニングの関係、コンピュータ将棋の大会の概要を紹介します。
[理論編]では、従来のコンピュータ将棋のアルゴリズム、コンピュータ囲碁で用いられているモンテカルロ木探索とAlphaGoがどのようにディープラーニングを応用したか。基礎的な知識について解説しつつ、これらを将棋AIに応用する方法について述べます。
[実践編]では、ディープラーニングを使った以下の3つの将棋AIについて、PythonとChainerで実装していきます。
方策ネットワーク(policy network)を使って指し手の予測のみでプレイするAI
価値ネットワーク(value network)を使って1手探索を行うAI
方策ネットワークと価値ネットワークを使ってモンテカルロ木探索を行うAI
最後に、より強い将棋AIを作りたいという方のために、ヒントとなる情報を紹介します。