Katagoモデルの入出力

Katagoモデルの入出力

Published
January 2, 2023
Slug
katagomodelinout
タグ
katago
囲碁
Katagoの学習済みモデルの入出力がよくわからないというか、ホワイトペーパーも書いてあるものと現在のソースコードのモデルの実態が既に乖離していたので調べてみました。
 
調査したのはVersion8モデルの構成。
バージョンによって少しずつ入出力の形式が違うようなので注意。

入力

入力には大きくわけて、global_input_dataとbin_input_dataの2つがある。
global_input_dataはゲーム全体に影響を及ぼす系の設定(ルール等)
bin_input_dataは現在の局面を表すデータを入力する。
 

global_input_data

index
説明
0
1手前がパスか否か
1
2手前がパスか否か
2
3手前がパスか否か
3
4手前がパスか否か
4
5手前がパスか否か
5
コミ ただし20で割った数値で埋める 例えばコミ6.5目なら、6.5/20=0.325
6
スーパーコウルールか否か
7
スーパーコウルールの種類によって値が変わる模様 Positional Superkoの場合、0.5 Situational Superkoの場合、-0.5
8
自殺手有りか否か
9
日本ルール化か否か
10
セキを地としてカウントしない場合1
11
切り賃の有無
12
encorePhase どういう設定なのかいまいちわからない 日本ルールでコウの時に関係する設定っぽいので、おそらく3コウ関係の何か
13
同上
14
パスがフェーズを終了するか否か フェーズについてはKatago独自の処理方法にかかわってくるので詳細はここでは省く
15
asymPowersOfTwo 読みの深さを黒番と白番で非対称にした場合に利用? おそらく自己対局中でしか使われない
16
同上
17
Button 先手に0.5目のコミを与えることでパスしやすいようにする? おそらく自己対局中にしか利用されない
18
1目未満のコミの端数を表現している?

bin_input_data

index
説明
0
着手可能な盤サイズ分を1で埋める モデル自体は19x19の入力サイズを入力可能になっているが、例えば7路盤でプレイしたい場合は、7x7分のサイズを1で埋める。
1
プレイヤーのすべての着手点
2
相手のすべての着手点
3
呼吸点が1のすべての石
4
呼吸点が2のすべての石
5
呼吸点が3のすべての石
6
通常のコウルールでの着手禁止点
7
スーパーコウルール(Positional Superko)での着手禁止点 同一局面の繰り返し不可ルール。ただし手番は考慮しない。(黒番で出てきた局面を白番が繰り返すことも不可)
8
スーパーコウルール(Situational Superko)での着手禁止点 同一局面の繰り返し不可ルール。ただし手番を考慮する。(黒番で出てきた局面を白番が繰り返すことは可能)
9
1手前の着手点
10
2手前の着手点
11
3手前の着手点
12
4手前の着手点
13
5手前の着手点
14
現在シチョウアタリになっているすべての石
15
1手前の局面でシチョウアタリになっているすべての石
16
2手前の局面でシチョウアタリになっているすべての石
17
シチョウのアタリを続けるすべての着手点
18
プレイヤーの確定地(パスしても生きている地) Bensonのアルゴリズムで求めているっぽい?
19
相手の確定地
20
プレイヤー側の2コウの着手点
21
相手側の2コウの着手点
 

出力

様々な情報が出力されるようになっているが、重要なのは上の2つ。
policyとvalueが判明すればMCTSでプレイアウトが可能になる。
出力
説明
policy_output
次の1手の確率分布
value_output
勝率
miscvalues_output
雑多な分析情報。何目勝っているか負けているか等。
ownership_output
形勢(白黒どちらの地になりそうかの確率分布)
scoring_output
ownership_outputとほぼ同じだが、日本ルール対応している?
futurepos_output
8手, 16手, 32手先の予想着手
seki_output
セキの石 今は利用されていない?
scorebelief_output
スコア予測