ここ10年で目覚ましい進化を遂げたAI。囲碁や将棋では、もはや人間を凌駕するまでになっている。そして今回、人間以上に絶妙に”手加減”をしてくれるAIが登場した。
5月24日にリリースされた「接待どうぶつ将棋AI」はある意味でホスピタリティー溢れるAIを実装している。どうぶつ将棋とは3×4のマスに並べられた「ライオン」「ぞう」「キリン」「ひよこ」の駒を動かして遊ぶ。
簡単に言えば駒の少ない将棋で、4~5歳の子どもから大人まで楽しめるゲームだ。サイトにアクセスすると、難易度を「接待」「最強」「雑魚」から選んでプレイできる。
将棋初心者の筆者が「接待」モードで遊んでみたところ、真剣に一手を考えてようやく勝てた。まさに丁度いいゲームバランスだ。ちなみに「最強」モードでは一度も勝てず、「雑魚」はときどき勝てる、というレベルだった。
この「接待どうぶつ将棋AI」とはどんな経緯で生まれたのか。開発者に聞いた。
大人vs子どもの対局は「どれくらい手を抜くべきか」が難しい
開発者の@youwhtさんが同日、プログラミングの技術情報共有サイト「Qiita」に接待どうぶつ将棋が生まれた経緯を投稿している。羽生善治九段が「接待将棋のようなことはAIには難しい」などと発言していたことに触発されて開発をスタートしたという。
どうぶつ将棋については「そのユーザを考えると、実は地球上で最も『接待』が必要とされているゲームだと思われる」としている。
@youwhtさん自身も接待でどうぶつ将棋を指した際に苦慮したという。キャリコネニュースの取材に、
「相手はルールは分かっているようですが、1手先の相手の手も考えていないような状態でした。あまり不自然な手を指すのもワザと感があって難しいですし、かといって取れる相手のコマを取ってしまうとこちらが優勢になってしまいます」
と難しさを語る。大人がいかにして手を抜くかは「おそらく大人vs子どもでどうぶつ将棋をやる際の一つの課題だと思いました」と話し、これがどうぶつ将棋に着目するきっかけの一つになったという。
囲碁や将棋では、実力差があるときにハンディキャップ戦をすることもある。しかし、「下手側が大ゴマを取る楽しさがなくなります」とも指摘。最善に近いとされる決まった指し方もできなくなる。その上で、「接待ではどう手抜きするのがベストか、また自分と同レベルのAIは作れるのかという背景テーマがありました」という。
また、どうぶつ将棋はすでに解析済み(78手で後手の勝利)で、その解析結果が使えることも大きかったという。
試行錯誤の結果、「接待AIは接待先の”最善手乖離度以下で最良の手”を打つ」
記事では、接待どうぶつ将棋リリースまでの試行錯誤が綴られている。開発にあたって実現しなければいけない要件を以下のように定義した。
「基本的には顧客側が勝つ(毎回必ず、でなくとも勝率が超えれば良し)」
「顧客に手抜きを悟られない(相手のレベルに合わせた手抜き)」
「顧客に対して弱すぎない(相手のレベルに合わせた強さ)」
しかし、勝っている時は悪い手を指し、負けている時は良い手を指して盤面の均衡を保つと、勝敗がつかなくなる。またゲームが進むに連れAIが弱くなってしまうと、「本来面白いハズの終盤がつまらない。最後の方で『手抜きを悟られる』状態になる」という。
終局までの手数が一番かかる手を選ぶという方針も考えたが、「相手の動きを完全封印してから、予定手数近辺になって、ワザとコマを返してそのまま自殺頓死する、という、最悪な動きになってしまう」と判断。
試行錯誤の結果、”しっぺ返し戦略”をベースとした。相手が「N番目に良い手」を指したら、接待AIは「N+1番目に良い手」を指すといったものだ。ただ、これだと接待AI側は王手を指せない。
そのため、相手の直前手の”最も良い手”からどれほど乖離しているかを算出し、接待AIは接待先の”最善手乖離度以下で最良の手”を返すというものにしたという。解説をオンにしてプレイすると、乖離度や、自分の手がどれほど良いのか悪いのかを評価してもらえる。ただ、”接待”を受けるときはオフにしておいたほうがいいだろう。
当初は、機械学習でプレイヤー側のレベルを推定するといったことも考えたという。開発者はキャリコネニュースに、
「そこまでしなくても、思っていたより数学的にシンプルな法則で、そこそこの精度の『接待』が実現できて良かったと思っています。羽生先生への良い回答、AI利用の新たな視点(とまでは言い過ぎですが)が得られたと思っています」
と語った。