- 3次元テンソル:
縦 (1〜9) × 横 (1〜9) × チャンネル (1〜C)
- チャンネル : 駒の種類ごと, 持ち駒, 手番, 過去の盤面 なと多数
各チャンネルを平面で表す
平面に one-hot 表現
Cf. 画像認識で「RGB の 3 チャンネル」を使う
- いまの盤面だけではなく,過去数手分の盤面を入力 に含める
相手の手を読む場合,<流れ>が情報として要る
- チャンネルの具体的内容
◦盤上の駒配置
9×9 の各マスについて:
- 先手の歩の平面:
そのマスに先手の歩があれば 1,なければ 0
- 後手の歩の平面:
同様
- 香,桂,銀,金,角,飛,玉,成駒…と駒種ごとに平面
- これを 複数手前の盤面まで 重ねる(履歴)
◦持ち駒
- 「先手の持ち歩の枚数」を表す平面
「先手の持ち角の枚数」を表す平面,‥‥
- 後手も同様
- 例えば「0枚」 「1枚以上」などの離散化で複数平面にする設計もある
◦手番
- 「今は先手番か後手番か」を表す 1 枚の平面
- 先手番なら全マス 1,後手番なら全マス 0(あるいはその逆)
◦その他の状態情報
- 千日手・持将棋に関わる情報
- 終局条件に関わるフラグ
- ごく単純化すると,て:
◦盤上の駒配置:
先手の歩:8 平面(履歴 8 手分)
後手の歩:8 平面
先手の香:8 平面
…
◦持ち駒:
先手の持ち歩:1 平面
先手の持ち角:1 平面
…
◦手番:1 平面
といった具合に,
「駒種 × 手番 × 履歴」+「持ち駒」+「手番」
が全部チャンネルとして積み重なっている,というイメージ
- 入力は,「シンプルにしようとした分,チャンネル数が多くなった」 というぐあい
|