人工知能で破壊的なイノベーションが起こっている

松尾豊氏:よろしくお願いします。では、AIの話をさせていただきたいと思います。

今ご紹介にありました通り、人工知能の研究をしております。日本に人工知能学会というものがありまして、そこで編集委員長というのを2年ほどやらせていただいています。今は倫理委員会というのができて、倫理委員長というのをやらせていただいています。

お話にありましたとおり、ディープラーニングというのが最近すごく注目されてまして、それをお話ししていきたいと思います。まず冒頭5分ほど、先日あったNHKスペシャルなんですけれども、見ていただければと思います。

(アルファ碁がプロと対戦したドキュメンタリー映像が流れる)

というわけで、結果的には4勝1敗でアルファ碁が勝ったわけですが、これは研究者、関係者にとっても非常に衝撃的なできごとでした。

囲碁は将棋に比べて10年遅れと言われてましたから、ここ2~3年で将棋がトッププロに勝てるようになってきたので、囲碁の場合、普通にいくと2025年ぐらいにプロに勝てるようになるというのが普通の見方だったんですけれども、それが10年前倒しで起こっちゃったということです。

これを開発したDeepMindというところもすごい企業なんですけれども、使ったのがディープラーニングという技術で、これが鍵だったと。

ディープラーニングというのは画像認識で非常に強いんですけれども、囲碁の場合、盤面を画像的に見る度合いがすごく強いので、それによって急激に強くなったということです。

AIの過去と現在ということなので少しだけ過去の話をしますと、今、人工知能ブームになってきていますけれど、これは3回目のブームです。

1956年に人工知能という分野ができていますので、今年で60年ということになります。その間ブームになっては冬の時代が来るというのを繰り返して、今回が3回目ということになります。

いろんな技術があって、IBMのWatson、iPhoneのSiri、ソフトバンクのPepper、自動運転、あるいは将棋・囲碁。いろいろあるんですけれども、基本的には従来からある技術が少しずつよくなっているということで、それほど急激な進歩が起こっているわけじゃない。

ところが、このディープラーニングというのだけ、今まで何十年もできなかったようなことがここ2~3年で次々にできるようになっている、という意味でかなり破壊的なイノベーションが起こっていると思っています。

犬と狼の違いをどう見分けるか

ディープラーニングでなにができるようになるかというのは、大雑把に言っちゃうとこういうことだと思ってまして、まず認識ができるようになります。運動の習熟ができるようになります。そのうち言語の意味理解ができるようになります。この3つだと思ってます。

もともと認識というのは非常に難しい問題です。例えば人間が見ると、これ(猫・犬・狼の画像を指して)、猫・犬・狼ってわかります。じゃあ、「これをコンピュータにわからせたい」というときにどうしたらいいかということを考えてみます。

例えば、この3枚の写真見比べると、猫はなんとなく目が丸いので「目が丸ければ、猫」としましょうと。「目が細長くて、耳が垂れていて、耳が尖ってると、狼」。こういうふうなルールを書くとなんとなく分けられそうに見える。

ところが、「目が細長くて耳が尖っているんだけれども、狼じゃなくて犬です」というのもいるんですね。

確かに人間が見ると、なんとなく犬っぽいんですね。じゃあ、この「狼っぽさ」と「犬っぽさ」をちゃんと定義できる人がいるかというと、これはすごく難しい問題で、なんだかわからないけど犬っぽく見えるわけですね。

つまり、人間が「耳が垂れてる」とか「細長い」とか、こういう特徴量を定義してる限りは、どうやっても精度上がらなかったと。だから、特徴量自身をどうやって学習できるかということを解決しない限りはどうしようもなかったということです。

今お話ししたのは、機械学習における特徴量の設計という問題で、これが非常に難しかったと。

それ以外にも、人工知能の研究は60年やってますので、いろいろと難しい問題がありました。フレーム問題とかシンボルグラウンディング問題という問題点があって、非常に難しいとされていたわけです。

たくさん問題があるように見えますが、僕は根本的には1個しか問題はないと思っていまして、要するになにかというと、今までの人工知能というのは全部、人間が現実世界の対象物を一生懸命観察してなにが重要かを見抜いてモデルを作ってきたと。1回モデルを作れれば、あとはいくらでも自動化することができたわけです。

現実世界の現象のうち、どこが重要かというのを見抜くところですね。モデルを作るところそのものはいっこうに自動化できなかったと。そこをどうやって自動化するかというのを解決しない限り、いろんな問題が出てきちゃうということだと思います。

僕はそれを解き始めているのがディープラーニングだと思います。もちろんディープラーニングだけで全部できるわけじゃないですけれども。これは認識という非常に大きな問題を解いてるので、ここをきっかけにしてどんどんできるようになってくるはずだと思っています。

画像認識の精度が劇的に向上

実際にもうみなさんご存知だと思いますけれども、画像認識ではすごい勢いで精度がよくなっています。これ(スクリーンに映し出されたエラー率の推移)はエラー率を表してますので、低いほどいいんですけれども。

だいたい1年で1~2パーセントしか下がらないものなんですけれども、2012年に(ディープラーニングが登場してから)10パーセント下がった。それ以降すごい勢いで下がってきて。

人間のエラー率が5.1パーセントですから。昨年の2月にはマイクロソフトが4.9パーセント、昨年の3月に4.8パーセントを出していて。

これはのちのち歴史の教科書に載ってもいいと思うぐらいすごい大きなできごとだと思うんですけれども、2015年2月にコンピュータが画像認識で人間の精度を超えたということが起こったと。もうこれ実際に起こったんですね。

これは、コンピュータができて100年ぐらい経ちますけれども、その歴史の中で1回もできたことがなかったことです。

驚くべきことに、認識というのは今まで人間しかできなかったんです。コンピュータはぜんぜんできなかったんです。それが今変わったということです。

次になにができるようになってきているかというと、運動の習熟でして。これどういうことかというと、人間でも、例えばサッカーボールを何回も蹴ってるとだんだん上手に蹴れるようになります。ゴルフボールを打ってるとだんだん上手に打てるようになる。

なんで打てるようになるのかというと、たまたま上手に打てたら「今のは上手に打てたな」と思って、そのやり方を繰り返すわけですね。

これ強化学習といいますけれども。「今のはうまくいってたな」という報酬が与えられると、その前にやった構造を強化するという仕組みによってだんだん上達すると言われています。

犬に「お手」を教えるのも一緒で。犬がたまたま上手にお手ができると餌をあげます。そうすると、だんだんお手をするようになると。犬から見ると、餌という報酬がもらえた、前にやった行動を強化してるわけですね。

この強化学習の技術自体は昔からありました。どういうふうにやるかというと、犬もやたらめったらお手をすればいいわけじゃなくて。

ご主人さまがお手をしてほしそうなときにお手をすると餌がもらえるわけなので、「こういう状況でこういう行動をするといいんだ・悪いんだ」という、状況と行動をセットにして、いい・悪いを学んでいくんですね。

この状況というのを記述するのに、今までは人間が定義した変数を使っていたわけです。ところが、ディープラーニングと組み合わせると、ディープラーニングで出てきた特徴量を使って、この状態を記述できると。だから、人間が「こういう状態だ」「ああいう状態だ」という定義をしなくていいんですね。

違いとしてはそれだけなんですけども、すごくおもしろいことがいろいろ起こりまして。あとから出てくるPreferredさんもやられていますけれども。

画像を入力するだけでブロック崩しが上手になるAI

もともと「アルファ碁」を作ったDeepMindという会社が2013年頃になにをやってたかというと、ブロック崩しを学習するAIを作ってました。ブロック崩しが最初下手なんですけれど、だんだん上達していくと。

で、強化学習なので、点が報酬ですので、点が入るとその前にやった行動を強化するということで、最初下手なのがだんだん上手になっていきます。

このぐらいだったら実は昔のAIでもできたんですね。昔のAIはどうやってたかというと、「このボールがどこだよ」とか「自分が動かしてるのはこれだよ」というのを人間が定義するとできたんですね。

ところが、この方法がすごいのは画像を入れてるだけなんですね。画像を入れると「なんとなくボールっぽいものがある」とか「なんとなく棒が動いてる」というのを認識して、「こういうときに点が入るんだ」というのを学習して上手になっていくんですね。

そうすると、そのうち左端を狙うというのをやり始めます。左端とか右端に通路を作っちゃうと非常に点が入りやすいんですけれども、それに気づくわけですね。

なんで気づけるかというと、要するに画像を入れてるので、画像の特徴量として「左端とか右端に通路ができている状態は非常にいい状態なんだ」ということに気づける。それを見つけられるわけです。

今とまったく同じプログラムを使って、ぜんぜん違うゲームを学習させることができまして。これですね。インベーダーゲームなんかも、今とまったく同じプログラムで上達させることができます。

これもけっこう恐るべきことで、今までだといくら同じ強化学習使うといっても、プログラムはさすがに書き換えなきゃいけなかったんですね。

ところが、これはまったく同じプログラムで、要するに画像を入力して、スコアを報酬にしてるだけなので、まったく同じプログラムで上達するということです。

これは昔のアタリのゲームなんですけれども。60種類ぐらいあるアタリのゲームのうち半分の30種類以上で、人間のハイスコアよりも上手になります。

残り半分は人間のほうが上手なんですけれども、それはどういうゲームかというと、例えばパックマンとか潜水艦ゲームとか。

どういう状況で餌を取るか、空気を取りに行くかという、戦略性が必要なものは人間のほうがうまいんですけれども。そうじゃなくて、反射神経、運動神経だけでいいやつはもうコンピュータのほうがうまいということです。

車の自動運転を学習

これができたのが2013年なんですけれども。これができた時点でこれをロボットに適用すると、ロボットが上達するよねということがほぼ自明だったんですが。

それを実際にやったのがUC Berkeleyでして、2015年、昨年の5月ですね。ロボットがおもちゃの飛行機の部品を本体に組み付けるというのをやってます。

(動画が流れる)

最初は下手なんですけれども、強化学習でだんだん試行錯誤して上達していきます。本体に上手に組み付けることができると報酬がもらえるんですね。

上からカメラで撮ってますので、基本的にはさっきのブロック崩しとまったく同じで。入ってくるのは画像で、報酬を最大化するように学習していくということです。

そうすると、こういうふうに上手に入れられるようになるんですけれども。見てわかるとおりけっこう荒っぽい入れ方をしていて。およそ今までのロボットっぽくない動きをしている。

どういう状態になると報酬を与えるかというのを変えると、いろんな動作を学習させることができます。

例えばレゴブロックをくっつける。これもすごく簡単に見えますけれども、すごく難しいことなんです。小さい赤ちゃんを見てるとわかりますけれども、位置と角度両方合わないといけないので、大人だったら簡単なんですけれども、ロボットにやらせるのはすごく難しいんですね。そういういろんなタスクができるようになっています。

これと同じ、強化学習とディープラーニングを組み合わせるというのをPreferredさんが、これも同じ時期ですね。昨年の5月ぐらいにやってまして。自動運転の車の運転を学習するというものです。

(動画が流れる)

これも試行錯誤を経て、最初は下手なんですけれども、だんだん上達していきます。四叉路の交差点なんかも非常に上手に、信号がぜんぜんないんですけれども、ぶつからずに運転します。

途中で赤い車が入ってくるんですけれども、これは人間が運転してる車でして。人間がめちゃめちゃな運転をするんですね。ですけれども、すごく上手に避けていくと。

なんで避けていくことできるかというと、この白い車、何回もぶつかった経験があるんですね。ぶつかった経験があるので、どうやったらぶつかるかとか、どうやったら避けられるかをわかってるわけです。ですから、危ない人がいたときに「危ない」と思って避けるわけですね。

まさに人間の運転手の人が、最初下手なんですけれども、上達して1回上手になると、いろんな状況にちゃんと対応できますよね。それとまったく同じようなことが起こってるということです。

ちなみに、最近テスラが事故を起こしましたけど。あれは基本的には画像認識だけのほうを使っているので、こういう制御まで合わせた学習はやってないはずだと思います。

認識プラス強化学習で赤ちゃんのように学ぶ

それからGoogleがこういう、ピッキングですね、いろんなものが入った箱の中から目的のものを取り出すというのをやってます。

(動画が流れる)

これも今練習してるところなんですね。何度も取り出しては戻しというのを練習しています。14台並列に並べて練習してるので、14倍高速に学習できるわけですけれども、これをやると、ものを上手に持てるようになると。

これ見ても、これなんかスゴイぞって思うかもしれないですね。驚くべきことに、こういう、たくさんのものが入った箱から目的のものを取り出すということは、今までのロボット、一切できなかったです。それが今できるようになっている。

今までやり方だとどうやってやるかというと、目的ものの形を最初から決めておかないといけないんですね。かつ、「どこで持つか」というのも最初から人間が決めておかないといけなかったんです。

「それにマッチするものがあると持つ」というのはできたんですけれども、こういうたくさんあるものを持つというのはできなかった。

なんでかというと、どこにあるのか見つけるのは認識の問題なので、画像認識がちゃんとできないとできないんですね。

それから、ものによってどこを持つべきかって違ってるんですね。丸いものだったらどう持てばいいか。長いものを長い方向に持っちゃうと持てないですね。それを何回も練習して上手になっていくと。

人間の場合、いろんなものを簡単に持てますけれども。簡単なように見えて、実は子供の時にめちゃめちゃ練習してるわけですね。赤ちゃんの時に何回も失敗してるので、大人になるともう当たり前のように持てる。

なんですけれども、やっぱりちゃんと持てるようにしようと思ったら、機械・ロボットもこういうふうに練習しないといけない。それとまったく同じやり方ができるようになっているということです。

これはまあすごいことなんですけれども、考えてみれば当たり前で、犬とか猫でもできるんですね。犬でもフリスピーを投げてるとだんだん上手にキャッチするようになるわけです。

ですから、そんな大した話じゃなくて。人間のような高度な知能とか言語能力があるからできるのかっていうと、別にそんなことないと。

じゃあ、なんで今までできなかったのかというと、結局やっぱり認識ができなかったから。こういう状況でこういう行動をしたらいい・悪いという認識が上手にできなかったので、結局学習がうまく働かなかったんですね。

でも、今、認識ができるようになったので、ふつうに強化学習を組み合わせると上手になるということです。

子供のできることほどコンピュータにやらせるのは難しい

「モラベックのパラドックス」というのがありまして。Hans Moravecというロボット・人工知能の研究者がいるんですけれども、その方が1980年ぐらいからずっと言ってたことです。「子供のできることほどコンピュータにやらせるのが難しい」と。

つまり、子供は簡単にものを見分けたり、上手に持ったりしますよね。画像認識とか運動の習熟という子供でも、3歳児でも簡単にできるようなことこそが、コンピュータにやらせるのがすごく難しいという。それでパラドックスというんですけれども。

そういう状況が数10年続いてきた。それが今変わりつつあるんですね。要するに子供ができることこそが今できるようになってきているということです。

なんでできるようになってきているかというと、ひと言で言っちゃうと、コンピュータのパワーが上がってきたからということです。

原理自体は昔からありまして。1980年にNHKの放送技術研究所にいた福島邦彦先生という方が「ネオコグニトロン」というのを提案してますけど、それが今のディープラーニングの仕組みそっくりなので。

基本的には昔からあるんですけれども、昔の技術だとやっぱりできなかった。今の最新のコンピュータを使ってようやくできるような、そのぐらい計算量がたくさん必要になるような技術です。

(スライドに)「初期仮説への回帰」って書いてますが。もともと人工知能という分野は「人間の知能をコンピュータで実現することができるんじゃないか」という非常に野心的な仮説でスタートした分野です。

なんでそういうふうに思うかというと、「人間というのはある種の電気回路でしょ?」と。人間の脳がやってることは情報処理です。

そうだとすると、「すべての情報処理はコンピュータで実現できる」というのを、アラン・チューリングが「万能チューリングマシン」という概念で言ったことですので、人間の脳がやってることが情報処理なのだとしたら、コンピュータができないわけがないんですよね。

そう思って始めたんですけれども、60年経ってもできないと。なんでできないかというと、僕は一番大きな問題は要するに認識ができなかったからだと。ここは計算量が高すぎて乗り越えられなかった。

それが今乗り越えられたわけなので。じゃあ、やっぱり「人間の知能はコンピュータで作ることができるんじゃないか」という元の仮説に戻ったほうがいいんじゃないのかって。最初そう思って始めたんでしょ、と思います。