オセロにチェスに将棋に囲碁といったゲームでのAI対人間の対戦はなんて熱いのだろう。自分もAIに人類代表としてゲームで挑戦したいけれど、残念なことにゲームは苦手だ。
でも、運で決まる「ジャンケン」ならAIに勝てるんじゃない?
これはジャンケン人類代表とAI代表の真剣勝負の記録である。
前の記事:試して分かった、満腹には種類がある
ジャンケン人類代表に就任
皆様、ジャンケンをご存じだろうか?
グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝つ。
同じ手ならアイコという運要素が極めて高い、それゆえに平等なゲームだ。
さて、唐突ながら今からジャンケン人類代表を名乗らせていただく。
反論があるかとは思います。
ですが、撮影協力者がおらず、ジャンケンの手の写真をまともに撮影できない自分に、ジャンケン強者を探すことは困難なのだ。お許しいただきたい。
強いジャンケンAIを探そう
最大の課題はジャンケンAIを入手することだ。ジャンケンの撮影すらうまくできない人間に、そんなことが可能だろうか?
機械学習(AIに包含される概念)のコンペティションで活躍しているAIに詳しい知人のBさんに「ジャンケンに強いAIがないか」尋ねたところ、翌日にはジャンケンのAIが用意されていました。
たまたま、Bさんがその機械学習のコンペティションでジャンケンのAIの作成経験があったのだ。それをチョチョイといじって今回の検証用に仕上げてくれました。
私、BさんがジャンケンAIの作成経験があったの本当に知らなかったんです。私の運と都合が良すぎる。もはや私の運の良さが証明完了です。もう勝ったようなものです。
(ここから、本分野に詳しい方々は機械学習やAI関する表現・説明の厳密でないあたりに引っかかるかもしれない。だがぐっと飲み込んでほしい、私もぐっと飲み込んでいるのだ。みんなで飲み込もう。)
ジャンケンのAIってなにもの!?
みなさんは疑問に思うはずです。
「ジャンケンって運で決まるのに強いAIなんてあるの?」と。私も思う。
有識者Bさん曰く以下のような説明がありました。
ジャンケンの1回勝負は運で決まっている。
だけれど、100回、200回と対戦していくと、
ジャンケンAIは相手のジャンケンの手の癖を学習していきます。
そして対戦記録からAIは
・相手はパーの後は必ずチョキを出す癖・戦略がありそう。
・相手はチョキの後は必ずグーを出す癖・戦略がありそう。
・相手はグーを出した後は必ず相手と同じ手を出す癖・戦略がありそう。
といったパターンを学習することができる。
ジャンケンAIは学習結果をいかして、その時点で一番勝ちやすい手を出す。(らしい)
なので、今までの癖や先ほどの対戦結果を踏まえて次の手をAIが選択する。
まとめると、ジャンケンのAIは戦いながら相手の手を学習して、学習した癖や戦略をもとには相手の手を予測して戦うのだ。これは手ごわい、人間の手を先読みしまくりマシーンですね。
こちとら人類代表である、勝ってやりますわ。
ちなみに、色んな人の手をたくさん学習して戦う対うのジャンケンAIも考えられますが、今回は、対戦相手である私とのジャンケンの結果がだけで学習を行うこととしました。
対局開始
ルールは以下の通りだ。
・1万回勝負で相手に勝ち越した方が勝利
実にシンプル。人類の命運がこんな簡単なルールで決まってしまい申し訳ない。
うん、地味だ。
ちなみに、命運が決めるフィールド(捜査画面)はこんな感じだ!
例えば、0を入力して負けると
こんな感じだ。ちなみに勝つと
こんな感じです。
ここからは実際の対局の様子を見てほしい。
立ちはだかる困難
挨拶とフィールド紹介が終わり、人類対AIの頂上決戦が始まる。
およそ5時間かけて、8500回まで到達。
そして、8600回目。
メモリエラー、データ飛びました。
5時間の記録が吹っ飛びました。
もう私の勝ちで良いと思いませんか!?
AIの計算の限界を超えたということです。
私の勝ちということに出来ませんか!?だめでしょうか?だめですね。
データが飛んでしまったので8600回の戦績はパソコンのどこにも残っていません・・・
勝敗は自分の脳内にかすかに(かなり負け越してたなあ・・・)という記憶があるのみです。むしろほっとすべきかも。
改めて対局開始
もちろん、次の日開催だ。
5時間が水の泡のあとに、即再戦できるほどジャンケン人類代表は強くないのだ。
戦績のデータは消え失せてしまい、ジャンケンAIの学習も消え1から覚えなおし。両者1から振り出しに戻った形になるのだ。
1万回連続で対戦できないことがわかったので、ルールを変更させていただく。
・ジャンケン1000回勝負を10局行う。
・1000回勝負で勝ち越したら1局先取。
・10局終了時に勝ち越した局数が多い方が勝利である。
・1000回ごとにジャンケンAIの学習はリセットする。
ちなみに1000回刻みの10局勝負にしたかと言うと、データが消えた恐怖に心がとらわれてしまい、確実に安全に対戦記録が残る1000回刻みでないと不安でしょうがなくなったからです。臆病な私を笑うがいい。
なお、1000回ごとの学習リセットは、人間に有利なルールだ。
だが、ルールを決めるものが強いのだ。恐れ入ったか。
10セット全て紹介も大変なので、やっていた面白かった対局を紹介していく。
<第一局>
最初は自分の直感を信じて普段通りにジャンケンすることにした。
100回200回とAIとジャンケンをすると、自分の心が読まれているように感じ始める。
人生で経験したことが無いような負け方が起きるのだ。
人間同士のジャンケンだとアイコがやたら続くけれど、
AIはそこで手を読んで人間に勝っていく雰囲気がある。
とにかくジャンケンのリズムが崩れていってしまう。
第一局の勝敗は・・・・
288勝、400負、312アイコ。人間の敗北である。
<第三局>
直観では負けることを人類代表である私は理解したので、
今度は完全にランダムに手を出すことにした。
実はこれはが理論上もっとも強い戦略なのだ。
ジャンケンAI提供者のBさんから「ランダムに手を出すとAIも次の手が予測できないのでやめてくださいね」と言われている。だからあえてやる。人間の諦めの悪さを見せてやります!
第三局の勝敗は、
225勝、515負、260アイコ。圧倒的な敗北。
人間は、ランダムにジャンケンを出来ない。
みなさんもいざ対戦するときは気を付けてほしい。
<第十局>
最終局の十局までくると、「自分が出したくなった手と違う手を出すと勝てる」ことがわかってきた。
AIがどんな手を出してくるかはちゃんとは予想できないが、自分がどんな手を出すかはAIにはわかっている。そこの裏をかいて違う手を出すのだ。
「あっ、自分が何も考えなしにチョキを出そうとしたな」と感じた瞬間に裏をかいてパーを出す。これだけである。
しかも、不思議なもので、AIがそれの裏をかこうとしてくるなというタイミングもなんとなく見えてくる。AIをだます方法が身体に身に付きつつあるのだ。
9000回のジャンケンを踏まえて私が成長している。
そして、第十局
325勝、324負、381アイコ。人間の勝利だ。
勝利、勝利である!!
10セット目の勝因は、ジャンケンAIは1000回ごとに記憶がリセットされるのに対し、人間の学習は持ち越している点だ。しかも8700回の苦しみのジャンケンも経験してほしい。あの絶望も無駄じゃなかったのですね。
人間の学習能力がジャンケンAIの学習を越えた瞬間である。みなさんも私をほめてほしい。
ちなみに、最終結果10局中2勝8敗で、人類ジャンケン代表敗北しました。
ごめんなさい!
AIが学習していくけれど、自分も学習していることがわかった。全10局の対戦結果はさんざんだったけれど、鍛錬を積んでいけば完全勝利も不可能ではなさそうな気がした。
人類もAIも学習し続けていくことで、成長しているのだなあ。