自己紹介
- 田口 優
- 囲碁打てます
- 機械学習初学者
Twitter : hookbook_
Github : hookbook
はじめに
囲碁AIに関する書籍はたくさんあるが、
サンプルプログラムの先、自分で実装しようとした際に躓きがち(つまづいた)
- コンピュータ囲碁―モンテカルロ法の理論と実践
- 最強囲碁AI アルファ碁 解体新書
- 将棋AIで学ぶディープラーニング
- 囲碁ディープラーニングプログラミング
- AlphaZero 深層学習・強化学習・探索 人工知能プログラミング実践入門
目次
- 学習データ(棋譜)の集め方
- 棋譜ファイルの変換〜囲碁特徴量生成
- 最初の一歩
- 作成したAIと対局・bot公開
1. 学習データ(棋譜)の集め方
###yenw/computer-go-dataset
トップアマ(ネット碁9段)、プロ、AlphaGo自己対局まで
###9路・13路盤棋譜
囲碁対局アプリ(囲碁クエスト)のランキング上位者の棋譜
2. 棋譜ファイルの変換〜囲碁特徴量生成
囲碁の棋譜は通常、SGF(Smart Game Format)形式で保存される
(中略)
W[nq];B[pj];W[qc];B[kg];W[ii];B[il];W[lj];B[ml];W[hl];B[kn];W[km];B[mn];W[lo];B[nf];W[mj];B[ki];W[kl];B[ol];W[jl]C[306手白1.5目勝])
データセットとして使えるように変換してあげる必要がある
P218
RocAlphaGoのコンバータで変換できる
Rochester-NRT/RocAlphaGo
初期AlphaGoのKeras再現実装
wikiが充実しているので、ひととおりみるとよさそう
ヘルプ確認
SGF → HDF5
DataFrameとして使うなら
他のライブラリの実装例
###ymgaq/Pyaq
Pythonのみで実装された教育目的の囲碁プログラム
###ymgaq/AQ
個人開発の強豪AI(C++)、隠しオプション(--make_learn)で出力可能
3. 最初の一歩
9路盤データで、シンプルな教師あり学習を試すのが簡単そう
(AlphaGoのポリシーネットワーク相当)
だけどまだ試していない
4. 作成したAIと対局・bot公開
GTP(Go Text Protocol)でやりとりするため、GTPに対応した実装とする必要がある
棋譜変換で紹介したリポジトリも対応済みなので参考に
Rochester-NRT/RocAlphaGo
ymgaq/Pyaq
ymgaq/AQ
bot公開できる対局サイト例
GTP準拠していれば比較的簡単に公開できる(らしい)