- PacketFabric流
- PacketFabric’s WAY
- PacketFabric流とは、PacketFabricのスタッフ・エンジニアによる
ネットワーク・ソリューション等に関する情報配信メディアです。
深層AIは九蓮宝燈の夢を見るか
2016年04月19日
さて、前回は「AIとは」「エキスパートシステム」「機械学習」について書いてみましたが、今回はその続きで「ディープラーニング」「機械は麻雀に勝てるか」というお題にて書かせていただきます、というか当社CEOの言葉で勢いで決めたんですが段々自分の知識が追いつかずに、Wikipediaや色々な方のブログ記事など参考にさせていただきました。まことにネットワーク万歳というところで、本題にすすめさせていただければ、と思います。(なお、関連事項へのリンクを本文に埋め込んでおりますが、他サイトへの参照となります。外部参照先の内容を保証するものではございません。ご了承ください)
さて、前回は機械学習について、まででしたが、機械学習については様々な手法が開発されています。
ディープラーニング
Wikipediaのディープラーニングのページ(外部リンク)を見ても何書いてるのかよくわからないかもしれませんが、多層のニューラルネットワーク(何重にも重なっている人間の神経を模倣したネットワーク構造)を利用した機械学習のことをディープラーニングと言います。人間の脳が無意識で拾った情報を多層に処理する中で、必要な情報だけを選別し意識に伝達するように、複数のニューラルネットでの処理によって、より深い情報処理を可能にするのです。
強化学習
同じくWikipediaの強化学習によると(外部リンク)強化学習とは、「問題と答え」ではなく、「状況と、AIの行動に応じた報酬」を与えることで、人間のようにAIが自ら学習する手法です。未知の状況から自ら適切な行動を獲得していく、まさに「成長」というに相応しい学習方法ですが、実は人間の脳も同じような強化学習で学習しているという仮説が有力視されています。
そして、2016年3月に話題になった「最強囲碁棋士に勝てるAI」は、上の2つの手法を組み合わせてGoogleが開発したDQN(Deep-Q Network)というAIです。深層強化学習の1つとなります。ディープニューラルネットワークと強化学習のうちの「Q学習」を組み合わせることで、古いATARIのゲーム(日本ではゲーム好き以外にはあまり馴染みが無いかもしれませんが)で、ルールも与えずに学習を開始し、人間のプレイヤーより良いスコアを出すまで「成長」することができたということで、2015年にNatureでも論文が掲載され大きな話題になりました。
ディープラーニングで囲碁に勝つ、あるいは「完全情報ゲーム」と複雑性
思えば90年代にIBMのディープ・ブルーがチェスで人間のグランドマスターに勝った時には既に、囲碁においてもAIがいずれ人間の棋士に勝つ事が予想されていました。囲碁、将棋、チェス、オセロは「完全情報ゲーム」と呼ばれるカテゴリに属する運や偶然が入り込む余地の無いゲームです。複雑性とルールの違いはあれどそのカテゴリの1つで勝てるということは、「完全情報ゲーム」全てで同じ事が言えるのです。ちなみにオセロもチェスと同様、既にコンピュータの方が強くなっていますね。
しかし複雑性、つまり計算する量に関しては大きな違いがあります。チェスに比べて「取った駒を再利用できる」将棋や、「駒の差異がなく盤面を読むことが非常に難しい」囲碁に関しては「可能な選択肢」の数が多すぎ、現在のコンピュータが計算できる限界を超えているのではないかと思われていたのです。
将棋については「持ち駒を含めて盤面を評価する」アルゴリズムの進歩によって、2010年代に入ってからプロ棋士に勝てるコンピュータが次々登場し世間を驚かせましたが、囲碁については「碁石自体に差が無い」「盤面の展開が読みにくい」ことから、「盤面を正しく評価できる」機能の開発がなかなか進められず、計算能力の進歩をもう暫く待つしかないだろう、と誰もが考えていました。そこに登場したのがGoogleのDeepMindが開発したAlphaGoです。
盤面の評価を行うアルゴリズムを「深層強化学習」によってコンピュータに自動学習させる、つまり今までの棋譜や自己同士の対戦で文字通り「成長」するAlphaGoが、プロの中でも最強に近いと言われた棋士に4-1で勝利するという展開は誰も予測していませんでしたし、囲碁ファン以外にも大きな衝撃で受け止められたと思います。「最適解を膨大な計算資源で探索するのではなく、最も有効な手を盤面から推測して打つ」、つまり「人間と同じ考え方」をしつつ強いコンピュータはそれほど衝撃でした。これはGoogleのPR戦略としても成功したと言えるでしょう。
麻雀、トランプなどのゲームでディープラーニングは勝てるのか?
さて、運や偶然の入り込む余地が無いゲームについてコンピュータが強くなる事は、はっきりしています。それでは麻雀やトランプといったゲームはどうでしょう。トランプにせよ、麻雀にせよ、「相手のカード(配牌)がわからない」「次に引くカードが確率的にしか予測できない」という運、偶然の要素が多分に含まれます。その中で勝ち続けるコンピュータが出てくるのかといえば、100%ではないにせよ、それなりの勝率を保つコンピュータは出てくると思います。実際にブラックジャックについては記憶(52枚のカードの状態を記憶する)と計算(配置から勝率を計算)でかなり勝ちやすくなり、現実にカジノでそれをやって大勝ちした(そしてその後カジノから叩き出された)数学者の話など実際に試した結果があります。
また、麻雀やポーカーといったゲームの特徴として、「相手の手を読む」という要素があります。「相手の捨てカード(捨牌)や自分の捨てカード(捨牌)から、相手の手を読んで勝率を計算する」というものですが、それ以外にも「相手の顔色や動きから調子を見る」といった読みも発生するようです(て、CEOが言ってました)。ディープラーニングは現在、「写真を元に人間の年齢を判定」したり、「写真の人物の表情を高い精度で検出する」ことができます(どちらもMicrosoftのリサーチが発表したり、デモしています)。こういう技術を駆使することで、相手の状態をある程度の精度で検出することはできるかもしれません。
深層強化学習は優秀ですが万能ではありません。
一方で、盤面における相手の手や、次に来るカードや牌の予測はあくまで「確率的」にしか行えません。将棋やチェス、囲碁では「相手の状況も自分の状況も全て明らか」であるのに対して、「おそらくこういう状況だろう」という確率的予測しかできないわけです。相手の顔や牌の整理の仕方で予測する、ていう部分にまで踏み込むとより深く予想できるかもしれないですが、少なくともその学習には人間のパートナーが必要で、自分同士で対戦学習ができないため学習には時間がかかるのではないかと思います(対戦者全員の顔と動作を記録した麻雀の記録が大量にあれば別ですが、おそらくそんなに無いと思うんですよね)。
ゲーム開始時など、どの牌が来るかが「確率的に同等」の場合、コンピュータが可能性として検討しなくてはいけないその後の局面は様々な可能性の組み合わせ(階乗)となり、また対戦者の狙いや、牌やカードの切り具合、つまりその対戦者の癖や傾向まであらかじめ把握しておく必要があります。ゲーム開始直後では情報量が少なすぎ、またゲームが進んでも対戦者ごとに予測不可能な局面になるでしょう(人間側プレイヤーの表情とか顔とか整理の仕方とかを考慮しても、どのような配置だったかという要素のランダムを含めると、「複雑性」とか「カオス」の方面に近いんじゃないかなと思っています)。
また自分の手を完成させるにあたり、確率的には十分に高いが得点が低い場合と、確率が十分に低いが来たら高得点という場合にどちらを選べば良いでしょうか。高い手を選んで正解の場合と、安い手で安パイを狙う方が正解の場合があると思いますが、それは状況(ランダムに変わる配牌と相手の力量と相手の狙ってる手)で毎回変わります。つまり、状況の判断に運が含まれるだけではなく、カオス的複雑性が増加し、学習する内容がパターン化できません。囲碁ほどはっきりとした「答え」が大量の深層学習でも得られないと思います。なお強化学習については、「確率が十分に低いが来たら高得点」という手を学習し難い、という特徴もあります(確率が高くないので、ちゃんと学習できるほど発生しない)。たとえばGoogleのDQNもATARIのゲームは人間以上に上達するのに、なぜか「パックマン」は人間以下にしか上達しませんでした。
つきつめれば、人間並み。
ルールが多ければ多いほど、解法というか有効なアルゴリズムは考えやすいと思います。麻雀などのゲームにおいては「人間の最高のプロ」に匹敵する強さを持つプログラムは可能だと思いますし、相手の顔から状況を正確に読み、それを踏まえた確率計算をする計算能力もいずれ手に入ると考えられますが(ムーアの法則がまだ終わらない場合)、人間のような判断ができるコンピュータの強さは結局人間並み、というか運に左右されるため人間が絶対に勝てないわけではない程々のレベルに収まるのではないかと考えています。さて、どうなるでしょうか。
…もしかしたら、「九蓮宝燈」を上がって「俺、明日熱暴走して死ぬかも」と心配しはじめるほどに、強烈に人間的な麻雀AIが出現する日も近いのかもしれません。
- 最近の記事
-
-
- 2024年7月12日
- コンピュータはどう動くのか、或いは、この世の大概の悪の原因 Do you know how your computer really works, or “The Root of Almost All Evil?”
-
- 2023年5月25日
- ローカルブレイクアウトしたのにSaaSは遅いまま…Unitas Networkの出番です
-
- 2022年6月30日
- エッジコンピューティング v.s. クラウドコンピューティング ~鍵を握るのはネットワークエッジ~
-
- 2021年6月17日
- 昨今のネットワークエッジとINAPのインテリジェント・ルーティング
-
- 2021年3月16日
- Kubernetes Cluster HA構成 後編「クラスターの作成と検証」
-