材料(learn/data.json)が読めませんでした。
ATELIER FACTORY / REINFORCEMENT LEARNING × DOBUTSU SHOGI
どうぶつしょうぎで
学ぶ強化学習
ルールしか知らないAIが、自分とだけ戦って、完璧にさす相手に後手で約7割勝てるところまで来た。
どうぶつしょうぎは全部の局面の答えが分かっている。だから、AIの1手1手を「本当の正解」と比べられる。ここに出てくる数字は、全部この実験の本物の記録。
01 ゲームの木
解かれたゲーム
完璧にさし合うと、どちらが勝つのだろう。
3列×4段の盤に、ライオン・キリン・ゾウ・ヒヨコが1枚ずつ。相手のライオンを取るか、自分のライオンを相手の奥の段に取られずに入れたら勝ち(トライ)。取った駒は持ち駒になり、空いたマスに打てる。同じ局面が3回出たら引き分け。
初めの局面からたどり着ける局面は、全部で 246,803,167 通り。2009年に田中哲朗さん(東京大学)が全部を最後まで読み切り、「おたがい完璧なら後手が78手目で勝つ」ことを示した。このページの答えの表は、同じ方法で作り直したもの(このMacで約12分)で、局面の数も勝ち・負け・引き分けの数も、論文と全部一致した。
勝ちの局面 = 相手を「負けの局面」にする手が 1つでもある
負けの局面 = どの手を選んでも、相手が「勝ちの局面」になる
- 後ろから
- 勝負のついた局面から1手ずつさかのぼって、全部の局面に答えを書きこむ(後退解析)
- 手数
- 勝ちはいちばん早く、負けはいちばん遅くなる手を選んだときの、決着までの手数
…
| 勝負のついていない 99,485,568 局面(いま打つ人から見て) | |
|---|---|
| 勝ち | 56,474,473 |
| 負け | 40,328,395 |
| 引き分け | 2,682,700 |
| いちばん長い勝ち | 173手 |
駒を押すと、動かせるマスに答えが出ます。
勝=勝ちを守る手 分=引き分け 負=負けになる手(数字は決着までの手数)
02 畳み込み
AIの頭の中
盤を見て、どうやって手を選んでいるのだろう。
AIの「頭」には、盤を16枚の0と1の絵にして入れる(自分の駒5種類・相手の駒5種類・持ち駒6種類、それぞれ4段×3列)。3×3の小さな窓を盤の上ですべらせる「畳み込み」を64枚ずつ、9段重ねる(コネクト4で「論文の方法」と呼んだ作りと同じ)。
出てくる答えは2つ。① 180通りの手(盤の駒を動かす144通り+持ち駒を打つ36通り)それぞれの「よさそう度」。② いま自分が「勝ちそうか」(−1〜+1)。頭の数字は全部で約40万個。
(p, v) = fθ(盤)
- p
- 手ごとの「よさそう度」(合計100%)
- v
- 勝ちそう度(−1 負けそう 〜 +1 勝ちそう)
- θ
- 頭の数字(約40万個)。学習とは、これを直していくこと
つまみで「何局戦ったあとの頭か」を選べる。先読みなしの直感だけで、どの手を選ぶかを見てみよう。初めの局面の本当の答えは「後手の勝ち」なので、勝ちそう度がマイナスなら正しい向き。
03 探索と確率
先読み
頭の直感を、どうやって「よく考えた答え」にするのだろう。
AIは1手ごとに「もしここにさしたら」を何十回も何百回も試す。1回ごとに盤の先へ1本の道をたどり、行き着いた盤を頭に聞いて、その勝ちそう度を通ってきた道に書き戻す。最後に、いちばん多く試した手をさす。
次に試す手 = Q + c · P · √N ÷ (1 + n) が最大の手
- Q
- その手の、これまでの結果の平均(見積り)
- P
- 頭の直感(02のよさそう度)
- N, n
- 全部で試した回数、その手を試した回数
- c
- 直感をどれだけ信じるか(ここでは1.5)
右は、09で出てくる「壁」の局面。勝つ手は、ライオンをまっすぐ後ろに下げる1手だけ。試す回数を変えると、選ぶ手が変わる。回数を増やすほど良くなるとは限らない。見積りがいったんマイナスに落ちると、その手を試すのをやめてしまい、300回から800回までずっと85回のまま止まる。1,600回を過ぎてやっと見直す。
このページの中で、本物の頭が本当に先読みしています(3,200回は10秒ほどかかります)。
04 損失関数
自分が先生になる
正解を誰も教えないのに、何を目指して学ぶのだろう。
自分どうしで1局さすと、局面ごとに2つの「答え」が手に入る。① その局面で先読みが各手を試した割合 π。② その1局で最後に勝ったか負けたか z(+1・−1、引き分けは0)。頭の答え p を π に、v を z に近づける。
L = (z − v)² − Σ π log p + c‖θ‖²
- (z − v)²
- 勝ちそう度の外れ具合
- −Σ π log p
- 直感と先読みの食い違い
- c‖θ‖²
- 数字が大きくなりすぎないためのおもし
人間の棋譜も定跡も、完全読み切りの答えも、学習には一切使っていない。答えの表を使うのは、強さを測るときだけ。500局さしては頭を直す、を40回くり返して2万局。1手ごとの先読みは100回。
p を π に、v を z に近づけるのが学習。π は、このページの中で本物の頭が64回先読みして出しています。
05 観測
学習の記録
2万局のあいだに、何が起きたのだろう。
同じ作りの頭を、3つの設定で2万局ずつ学ばせた。run1 は「同じ局面のくり返し」を知らない。run2 は先読みの中で「前に出た局面に戻る手=引き分け」と知っている。run3 は run2 に加えて、終盤も少しくじで手を選ぶ(いろいろな局面を見るため)。
「正解の手の割合」は、答えの表からでたらめに取った「手によって結果が変わる」2,000局面で、勝ち・引き分け・負けを落とさない手を選べた割合。3つとも1万局を過ぎると95%前後で止まる。
正解の手の割合 = 結果を落とさなかった局面 ÷ 2,000
- 先読みあり
- 1手ごとに64回の先読みをしてから選ぶ
- 直感だけ
- 先読みなしで、頭のよさそう度がいちばん高い手
06 測り方
くり返しは引き分け
「負けない」と「勝てる」は、同じだろうか。
run1 の16,000局の頭を、後手で完全読み切りと20局戦わせた。先読みにこれまでの対局の流れを渡さずに測ると、800回の先読みで 20局とも引き分け。1手も勝ちを手放さなかった。
ところが、先読みに「この対局で前に出た局面に戻る手は引き分け」と教えて測り直すと、20局とも負け。くり返しに逃げられないと、新しい局面に進んで、そこで勝ちを手放していた。
最初の測り方では「負けない力は十分」と言いかけた。測る条件をそろえないと、正反対の結論になる。このページのほかの対局の数字は、全部「くり返しを知っている」先読みで測っている。
同じ局面が3回 → 引き分け
- 負けない力
- 勝ちを「負け」にしない。くり返して引き分けに逃げても守れる
- 勝つ力
- 勝ちを前に進めて、実際に勝ち切る。くり返しには逃げられない
先読みに、対局の流れを渡さない
先読みに、対局の流れを渡す(前に出た局面へ戻る手=引き分け)
07 ゲーム理論
完全読み切りに勝つ
ルールだけから学んだAIは、完璧な相手に勝てるのだろうか。
後手(完璧なら必ず勝てる側)を持たせ、完全読み切りと戦わせた。相手は、いちばん良い手が複数あればその中からくじで選ぶ。くじの種を5通りに変えて20局ずつ、100局。
run3 の 15,500局の頭 は、先読み64回・128回・200回のどれでも 100局で68勝32敗。引き分けは1局もない。勝つまでは平均86〜104手。完璧なら78手なので遠回りだが、最後まで勝ち切る。
右は、その中の1局。盤の上の「あと何手」は、その局面の本当の答え。AIが勝ちを手放さずに進んでいるかを見よう。
勝率 68% = 68 ÷ 100 (ブレ ±5%くらい)
- ブレ
- √(p(1−p)÷n)。100局だと約±4.7%
08 対照実験
読みすぎると勝てない
先読みを増やせば、いつも強くなるのだろうか。
頭4つそれぞれで、先読みの回数だけを変えて、後手で20局ずつ完全読み切りと戦わせた。勝てたのは15,500局の頭だけで、それも64〜200回のときだけ。400回・800回では1局も勝てない。32回では20局とも引き分け。
理由は03で見たとおり。少し深く読むと「勝つ手は相手にうまく返される」と気づいて見積りを下げ、その手を試すのをやめてしまう。さらに深く読めば「それにも返せる」と分かるのに、そこまで読みに行かない。
勝ち数がたまたまではないか、くじの種を変えて確かめた(下の表)。どの種でも12〜16勝。
09 観測
最後の壁
勝てない頭は、どこでつまずいているのだろう。
先読み800回で後手を持たせ、勝ちを手放しそうになった所(壁)で、答えの表を使って正しい手に直して続けさせた。すると run1 と run3 の頭は、壁がほんの1〜2か所で、そこを直すだけで20局全部勝った(run2 の頭は壁が1局に6か所以上あり、直しても勝ちのまま同じ所を回って、多くが引き分けになった)。
15,500局の頭の壁は20手目。勝つ手はライオンをまっすぐ後ろに下げる手だけ。run3 の2万局の頭は70手目まで1手もまちがえないが、そこで勝つ唯一の手「ゾウを奥の段に打つ」を、800回の先読みで一度も試していない。直感が、はじめから候補に入れていない。
AIは上側(後手)。緑=勝つ手の行き先、赤=AIが選んだ手の行き先。
10 最適化の落とし穴
学び続けると弱くなる
学習を進めれば、ずっと強くなるのだろうか。
run3 は15,500局の頭が完全読み切りに勝ったのに、そこから4,500局学んだ2万局の頭は、どの先読みの回数でも1局も勝てない。正解の手の割合は96%台のままで、ほとんど変わらない。
自分どうしの対局は平均30〜45手で終わり、完全読み切りが選ぶような80手・100手の長い勝ち筋は、学習の中でほとんど出てこない。見たことのない長い筋の終盤で、たまたま覚えた手を、次の学習で上書きしてしまう。いまのところ、これがいちばん有力な考え。まだ確かめてはいない。
正解の手の割合 ≠ 勝ち切る力
- 正解の手の割合
- でたらめに取った局面での平均。ほとんどの局面は簡単
- 勝ち切る力
- 80手のうち1手でも外すと勝てない。いちばん難しい1手で決まる
| run3・先読み | 64回 | 128回 | 200回 | 800回 |
|---|---|---|---|---|
| 15,500局 | 14勝 | 16勝 | 14勝 | 0勝 |
| 20,000局 | 0勝 | 0勝 | 0勝 | 0勝 |
11 研究の最前線
この先
答えのないゲームでは、どうなるのだろう。
どうぶつしょうぎは答えが分かっているので、AIの1手ごとの正しさを測れる。次は、5×5の盤でさす「5五将棋」。まだ誰も解いていない。そして本将棋。盤が大きくなるほど、答えの表は作れなくなり、強さは対局でしか測れなくなる。
このページで見た「壁は1〜2か所」「読みすぎると外す」「学び続けると外す」は、大きな盤でも起きるのか。小さな盤で本当の正解と比べた経験が、その問いの入口になる。
大学で出会う名前:強化学習・モンテカルロ木探索・後退解析・ミニマックス・畳み込みニューラルネットワーク・確率的勾配降下法
全部の局面を読み切り済み
まだ解かれていない
解かれていない
- 2008どうぶつしょうぎ誕生(ルール 北尾まどかさん・デザイン 藤田麻衣子さん)
- 2009田中哲朗さんが完全解析。後手の78手勝ち
- 2017AlphaZero。ルールだけから自分と戦って、囲碁・チェス・将棋を学ぶ(このページのやり方)
- 2026このページ。ルールだけから学んだ頭が、完全読み切りに後手で100局68勝