AIは囲碁・将棋の神様になれない 〜 文科系のための人工知能入門 "第5回"
「将棋の佐藤天彦名人が電脳戦でポナンザに敗北」、「世界トップクラスの囲碁棋士、李世ドルがGoogleのAlphaGoに敗北」
この一年で囲碁、将棋の世界でAIがトップクラスのプレイヤーに勝利を収めています。この二つの分野ではしばらくはAIは人間には及ばないと言われていただけに、このニュースは驚きを持って受け止められると同時に「AIはすでに人間を超え神の領域に到達している」という意見も聞かれます。
でもそれは言い過ぎ、AIは将棋、囲碁の神様にはなれません
神の勝負は一瞬で決着する
将棋の神様が二人いたとしましょう。この二人の勝負は先手、後手を決めた瞬間に決着します。実は将棋というゲーム、先手必勝、後手必勝、必ず引き分け、の3つのうちのどれかなんです。人間は3つのうちどれかを解明できてませんが、それを知ってる神様二人の勝負は先手、後手が決まった時点で決着します。そもそも将棋の神様たちは「こんな結果のわかってる勝負つまんないよ」と言って将棋やらないかもしれません。
え、ほんとかよ、と思われたあなた、三目並べというゲームご存知ですか?子供の頃これやった経験のある方多いのではないでしょうか。このゲーム何回かやってると「必ず引き分けになる」ことがわかって、その手順をお互いが把握してしまうと面白くなくなってやらなくなります。将棋、囲碁、チェス、チェッカーも同じで全てのパターンをしらみつぶしに調べると、先手必勝、後手必勝、必ず引き分け、のどれかがわかってしまうんです。
だったらAIもしらみつぶしに調べればいいんじゃないですか?
コンピューターって高速処理が得意なんだから全部調べればいいじゃない、と思いますよね。なんでそれが出来ないんでしょう?
こちらがそれぞれのゲームのパターン数(局面数)です *1
- 三目並べ 10の3乘 引き分け
- チェッカー 10の20乘 引き分け
- チェス 10の50乘 ??
- 将棋 10の69乘 ??
- 囲碁 10の170乘 ??
三目並べ程度であればコンピューターにとっては朝飯前、全パターンを調べて必ず引き分けになることをすぐに証明してくれます。チェッカーはかなりのパターンがありますが、2007年に必ず引き分けになることが証明されました。
しかしチェス、囲碁、将棋については解明されていません。しらみつぶしに調べれば確実に解明できると分かっているんですが、全部しらべていると時間がかかりすぎるんです。日が暮れるとかいうレベルではなくて「スーパーコンピューターを使って宇宙ができてから今まで計算しててもまだ終わってない」というレベルなので現実的に無理なんです。これを『組み合わせ爆発』といいます。
いかにコンピューターと言えども大きな数のしらみつぶしは苦手、これを逆手にとって利用しているのが現在の暗号化技術です。「大きな2つの数(素数)を掛けた数字をみんなに公開しても、掛け合わせた2つの数を知られることはない。なぜなら2つの数を調べるためしらみつぶしの処理をしてると膨大な時間がかかるから」というのが暗号基盤を支えてます。量子コンピューターだとこのしらみつぶしの処理(算数的に言うと因数分解)を短時間で実行出来る可能性があり、量子コンピューターが実用化された場合は新しい暗号化基盤が必要となってきます。量子暗号化ってのが用意されてるのでご安心を。
しらみつぶしが無理ならば
しらみつぶしが出来ないAI、こういう「解があることは分かってるんだけど、求めることができない」ことを『限定合理性』といったりします。神では無いので『限定合理性』の制約を受けるAIはどうやって上達していったんでしょうか?囲碁を例にそのお作法を簡単に説明します。
ロジックを作る(演繹的アプローチ)
囲碁が強い人のノウハウをロジックとしてプログラミングする方法。一昔前のAIではこの手法が主流でしたが、これでは名人レベルにはほど遠い状態でした。
やってみる
ある局面から白黒を交互に適当に置いていって(最低限ルールには沿うようにします)どっちが勝ったかを調べる方法です。これを何回も繰り返した結果を元に次の一手を評価します。イメージ的にはへたくそな二人が何回も対戦しているのと似てます。同じレベルの下手くそ同士が何回も対戦した結果だから、腕の差ではなく局面が有利だから勝ったんだろうという発想です。この方法はモンテカルロ法と呼ばれており、これを使うことでコンピューター囲碁はかなり強くなりましたがまだ名人には程遠いレベルでした。
学習する(帰納的アプローチ)
教師あり学習(過去のデータを使う)
囲碁は過去の対戦の棋譜が数多く保存されていて比較的簡単に入手できます。この膨大なデータを活用して評価の精度を上げようというアプローチです。この手法は「教師有り学習」と呼ばれる、機械学習の手法の一つです。一流プロの棋譜学習教材として、一流プロと同じ次の一手打つようにコンピューターを学習させていくのです。一流プロと同じ手を打つ=一流プロの次の一手を教師として使う、ので教師有り学習と呼ばれています。
強化学習
ある程度強いコンピューター囲碁のプログラムが出来てきたら、コンピューター同士で対戦させてさらに強くしようというアプローチです。この手法は「強化学習」と呼ばれる、機械学習の手法の一つです。コンピューター同士を対戦させて勝った方にご褒美を上げるイメージで学習させていくのです。
囲碁名人に勝利したAlphaGoはモンテカルロ法と機械学習を組み合わせて作られています。
囲碁、将棋では人間を凌駕し始めたAIですが、人生のゲームは囲碁、将棋よりもっと複雑です。その複雑さはまたの機会に。
次回予告
AIが学習する条件 〜黒魔術使ってるんですか?〜
[参考書籍]
*1:コンピュータ囲碁 https://goo.gl/CiMqyj
*2:コンピュータは数学者になれるのか? https://goo.gl/jhdjzq