将棋AIで学ぶディープラーニング
- 著作者名:山岡忠夫
-
- 書籍:3,498円
- 電子版:3,498円
- B5変型判:288ページ
- ISBN:978-4-8399-6541-9
- 発売日:2018年03月14日
内容紹介
人より強い"将棋プログラム"を作ろう
将棋プログラムの作成を通してディープラーニングをより深く理解できる。
2016年3月、プロ棋士に勝つには後10年かかると言われていたコンピュータ囲碁でDeepMindが開発したAlphaGoがトップ棋士に勝利しました。そのAlphaGoで使われた手法がディープラーニングです。
AlphaGoでは局面を「画像」として認識し打ち手の確率と局面の勝率を予測することで、次の打ち手を決めています。画像とは具体的にどのようなものか、次の打ち手をどうやって決めるのか?AlphaGoの論文をヒントに、ディープラーニングを使い棋譜を学習した将棋AIの開発を行います。強化学習のみでトップレベルの強さを持つAlphaZeroで用いられた手法についても取り入れています。
[導入編]では、コンピュータ将棋の歴史とディープラーニングの関係、コンピュータ将棋の大会の概要と参加方法について紹介します。
[理論編]では、実装する将棋AIの前提となる理論について解説します。従来のコンピュータ将棋のアルゴリズム、コンピュータ囲碁で用いられているモンテカルロ木探索とAlphaGoがどのようにディープラーニングを応用したか。基礎的な知識について解説しつつ、これらを将棋AIに応用する方法について述べます。
[実践編]では、ディープラーニングを使った、実際に対局できる以下の3つの将棋AIについて、PythonとChainerで実装していきます。
方策ネットワーク(policy network)を使って指し手の予測のみでプレイするAI。
価値ネットワーク(value network)を使って1手探索を行うAI。
方策ネットワークと価値ネットワークを使ってモンテカルロ木探索を行うAI。
最後に、より強い将棋AIを作りたいという方のために、ヒントとなる情報を紹介します。
充実のラインナップに加え、割引セールも定期的に実施中!
商品を選択する
フォーマット | 価格 | 備考 | |
---|---|---|---|
3,498円 | ※ご購入後、「マイページ」からファイルをダウンロードしてください。 ※ご購入された電子書籍には、購入者情報、および暗号化したコードが埋め込まれております。 ※購入者の個人的な利用目的以外での電子書籍の複製を禁じております。無断で複製・掲載および販売を行った場合、法律により罰せられる可能性もございますので、ご遠慮ください。 |
||
EPUB | 3,498円 | ※ご購入後、「マイページ」からファイルをダウンロードしてください。 ※当商品は縦組みリフロー型のEPUBです。縦組みEPUBの表示に完全対応していないリーダーでご閲覧いただいた場合、表示上の不具合が発生する可能性があります。 ※ご購入された電子書籍には、購入者情報、および暗号化したコードが埋め込まれております。 ※購入者の個人的な利用目的以外での電子書籍の複製を禁じております。無断で複製・掲載および販売を行った場合、法律により罰せられる可能性もございますので、ご遠慮ください。 ※閲覧方法は「電子書籍フォーマットについて」をご参照ください。 |
備考
山岡忠夫(やまおか・ただお)
東京工業大学工学部電子物理工学科卒業。システムエンジニア。趣味でスマートフォン向けアプリの開発を行っている。AlphaGoでディープラーニングに興味を持ち将棋ソフト「dlshogi」を開発中。開発状況は随時ブログに掲載中。
http://tadaoyamaoka.hatenablog.com/
目次
はじめに本書の読み方
第Ⅰ部 導入編
第1章 コンピュータ将棋について
1.1 コンピュータ将棋の歴史
1.2 コンピュータ将棋とディープラーニング
1.3 コンピュータ将棋の大会
第II部 理論編
第2章 コンピュータ将棋のアルゴリズム
2.1 ゲーム木
2.2 ミニマックス法
2.3 評価関数
2.4 αβ法
2.5 評価関数の機械学習
2.6 強化学習
2.7 まとめ
第3章 コンピュータ囲碁のアルゴリズム
3.1 コンピュータ囲碁の課題
3.2 モンテカルロ法
3.3 モンテカルロ木探索
3.4 マルチアームドバンディット問題
3.5 UCTアルゴリズム
3.6 まとめ
第4章 AlphaGoの手法
4.1 方策ネットワーク(policy network)
4.2 価値ネットワーク(value network)
4.3 AlphaGoの探索アルゴリズム
4.4 AlphaGo Zeroの手法
4.5 AlphaZeroの登場
4.6 まとめ
第5章 ディープラーニングについて
5.1 ニューラルネットワーク
5.2 ニューラルネットワークの学習
5.3 分類問題と回帰問題
5.4 畳み込みニューラルネットワーク
5.5 ディープラーニングの将棋AIへの応用
5.6 まとめ
第III部 実践編
第6章 ディープラーニングフレームワーク
6.1 ディープラーニングフレームワークについて
6.2 フレームワークの選択
6.3 GPU
6.4 インストール
6.5 サンプル実行
6.6 Chainerの基本
第7章 方策ネットワーク(policy network)
7.1 ソースコードの構成
7.2 モジュールインストール
7.3 方策ネットワークの構成
7.4 方策ネットワークの実装
7.5 訓練データの準備
7.6 python-shogi
7.7 共通処理の実装
7.8 学習処理の実装
7.9 学習実行
第8章 将棋AIの実装
8.1 ソースコードの構成
8.2 USIエンジン
8.3 USIエンジンの実装
8.4 コマンドラインからテスト
8.5 GUIソフトに登録できるようにする
8.6 USIエンジンに登録
8.7 対局
8.8 ソフトマックス戦略
8.9 まとめ
第9章 学習テクニック
9.1 ハイパーパラメータの調整
9.2 最適化手法
9.3 Batch Normalization
第10章 価値ネットワーク(value network)
10.1 ソースコードの構成
10.2 価値ネットワークの構成
10.3 価値ネットワークの実装
10.4 学習処理の実装
10.5 学習実行
10.6 「1手」探索のAI作成
10.7 USIエンジンに登録
10.8 対局
10.9 まとめ
第11章 学習テクニック その2
11.1 転移学習
11.2 マルチタスク学習
11.3 Residual Network
第12章 モンテカルロ木探索
12.1 ソースコードの構成
12.2 ハッシュ
12.3 モンテカルロ木探索の実装
12.4 テスト
12.5 対局
12.6 並列化
12.7 まとめ
第13章 さらに発展させるために
13.1 C++による高速化
13.2 大規模学習
13.3 終盤の課題
参照文献
付録 Linuxでのインストール手順