Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

囲碁AI実装時のつまづきポイント

Last updated at Posted at 2019-07-22
1 / 15

自己紹介

  • 田口 優
  • 囲碁打てます
  • 機械学習初学者

Twitter : hookbook_
Github : hookbook


はじめに

囲碁AIに関する書籍はたくさんあるが、
サンプルプログラムの先、自分で実装しようとした際に躓きがち(つまづいた)


目次

  1. 学習データ(棋譜)の集め方
  2. 棋譜ファイルの変換〜囲碁特徴量生成
  3. 最初の一歩
  4. 作成したAIと対局・bot公開

1. 学習データ(棋譜)の集め方

###yenw/computer-go-dataset
トップアマ(ネット碁9段)、プロ、AlphaGo自己対局まで

###9路・13路盤棋譜
囲碁対局アプリ(囲碁クエスト)のランキング上位者の棋譜


2. 棋譜ファイルの変換〜囲碁特徴量生成

囲碁の棋譜は通常、SGF(Smart Game Format)形式で保存される

3.0.10]ST[0]FF[4]GM[1]SZ[19]PB[DeepZEN]PW[DolBaram]KM[6.5]RE[W+1.5]US[新浪囲棋]OT[3x30 Byo-yomi]TM[40] EV[韓国日本最強AI5番棋1局]RO[1]DT[2018-01-15];B[pd];W[dp];B[dc];W[qp];B[cn];W[ce];B[fq];W[ed];B[ec];W[fd];B[gc];W[eo];B[cq];W[gd];
 (中略)
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目勝])

データセットとして使えるように変換してあげる必要がある
IMG_4039.JPG
P218


RocAlphaGoのコンバータで変換できる

Rochester-NRT/RocAlphaGo

初期AlphaGoのKeras再現実装
wikiが充実しているので、ひととおりみるとよさそう


ヘルプ確認

python -m AlphaGo.preprocessing.game_converter --help

SGF → HDF5

python -m AlphaGo.preprocessing.game_converter --features all --directory tests --recurse -o debug_feature_planes.hdf5

DataFrameとして使うなら

pd.read_hdf('debug_feature_planes.hdf5','df')

他のライブラリの実装例

###ymgaq/Pyaq
Pythonのみで実装された教育目的の囲碁プログラム

###ymgaq/AQ
個人開発の強豪AI(C++)、隠しオプション(--make_learn)で出力可能


3. 最初の一歩

9路盤データで、シンプルな教師あり学習を試すのが簡単そう
(AlphaGoのポリシーネットワーク相当)

だけどまだ試していない


4. 作成したAIと対局・bot公開

対局用のGUIとしてGoGUI、Sabaki等がある
image.png


GTP(Go Text Protocol)でやりとりするため、GTPに対応した実装とする必要がある

棋譜変換で紹介したリポジトリも対応済みなので参考に

Rochester-NRT/RocAlphaGo
ymgaq/Pyaq
ymgaq/AQ


bot公開できる対局サイト例
GTP準拠していれば比較的簡単に公開できる(らしい)

KGS

OGS


おしまい

2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?