●AIは概念をどのようにつくるのか
長谷川 意味と似た話なのですが、「概念」というのはどのようにつくるのですか?
松尾 方法は幾つかあります。スライドでお見せした方が良いですね。
概念のベースは、基本的にはディープラーニングで、どんどん高次の特徴量を見つけ出していくステップを踏めばできると思っています。この図のように、視覚情報が入って来た際、それをニューラルネットワークで積み上げていくと、だんだんと上の方は高次の特徴量になっていき、もつれがひもとかれた状態になっていきます。これがまた、時系列のRNNでも同じようなことが起こります。
●自動運転とAlphaGoと画像認識から考えるAIの学習の仕方
【参考動画1】
NVIDIA 8 Mile Autonomous Drive
https://youtu.be/Sm-NBdSzP6E
松尾 ここで、 人工知能(AI)の学習の仕方について考えてみます。これはNVIDIAの自動運転のシステムなのですが、最近ディープラーニングがずっとend to end学習になっています。画像が入力されたら、それがどのようなハンドル操作やブレーキ操作をしたものなのかを、そうした画像の間をニューラルネットワークでつなげて判断しているのです。つまり、画像からハンドル操作、ブレーキ操作、アクセル操作などを直接出力できるように学習してしまう、というものなのですが、上記(参考動画1)のように上手に運転できるようになる、ということが示されています。
【参考動画2】
NVIDIA Automotive Simulation
https://youtu.be/booEg6iGNyo
ただやはり、事故を起こさないようにするには非常に大量のデータが必要なので、そのためにはまだまだ今の何100倍、何1000倍も走らせないといけません。それは大変なので、最近NVIDIAが何をやっているかというと、シミュレータをつくり、シミュレータ上で運転するというものです。NVIDIAは、もともとゲームのコンピュータ・グラフィックスをやっていた会社なので、こういうものはすごく得意なのです。太陽を動かすと、上記(参考動画2)のように影も動きます、というものもあります。
長谷川 そうすると、1時間を1秒にしたりできるのでしょう。
松尾 はい、できるのです。スライドの左側の画像がシミュレータで、シミュレータ画像を本物だと思って、右側はディテクションの練習をしているのです。「ここに車がある」ということを学習しているということなのですが、たんだんと訳が分からなくなってきて、スライドはシミュレータ上でリアルな人が悪さをする車を運転している画像です。こういったものをベースにして学習するのです。これが1つ目の例です。
2つ目がAlphaGoです。AlphaGoはどうやって学習するのかというと、ある局面が良いかどうかを学習する際、そこから手を進めてみて、結果的に勝った・負けたということを逆算し、以前の手が良かったかどうかを教師データにします。ですから、学習するときの正解データ(教師データ)は、自分が相当先まで計算した後のものを戻してきているということになります。
3つ目の例が、この画像です。画像認識である特定の画像を見た際、それが猫であるということを通じて、ニューラルネットワークが学習するというのは一体何なのかを考えてみます。画像には猫ラベルが付いているのですが、猫ラベルを付けているのは人間です。人間が自分の脳のニューラルネットワークを使って付けたラベルを、他のコンピュータ上のニューラルネットワークが学習しているということを考えると、NVIDIAの自動運転も、AlphaGoも、猫認識も、結局何らかの非常に複雑な計算ステップがあり、それをショートカットするような学習をしているということなのです。
●複雑な過程を「さぼる」ことで、学習は行われていく
松尾 だから、学習とは複雑な過程において楽をするという、いわば「さぼる」処理に近いのではないかと思っています。そういう観点からすると、より直接的な研究がジェフリー・ヒントン先生(カナダ・トロント大学教授)のやっている蒸留というものです。
ある猫認識をするニューラルネットワークができたら、その入力と出力を教師データとして別のニューラルネットワークに教えます。そうすると、その別のニューラルネットワークは、元のニューラルネットワークよりも小さいネットワークでも精度がほとんど落ちないか、あるいは上...