第249回 ディープラーニングから、心や意識は生まれるか?


ロボマインド・プロジェクト、第249弾!
こんにちは、ロボマインドの田方です。

コンピュータは、何十桁の掛け算とか、割り算とか、あっという間に計算できますよね。
でも、できることは計算だけです。
人間は、もっといろんなことができます。

それに挑み続けてるのがAIです。
1950年代に生まれた人工知能は、迷路とか簡単なパズルを解くことから始まりました。
簡単なパズルなんか解けても、チェスは、人間には絶対に勝てないだろうって言われてました。
それが、1996年には、AIがチェスのチャンピオンに勝ちました。
チェスで勝てたら、囲碁や将棋で勝てるのも時間の問題でした。

そこで、その次の目標の一つとして、画像認識が設定されました。
写真に何が写ってるかなんて、人間なら、誰でもできますけど、これ、コンピュータには意外と難しいんですよ。
ただ、それも、今では、人間よりAIの方が精度が高いです。
それを実現したのがディープラーニングです。

さて、ここで、ちょっと気づきませんでしたか?
AIの目標って、人間からみたら、どんどん簡単になってるんですよ。
最初は、何十桁の掛け算とか、割り算です。
それが、次は、チェスになって、その次は、写真に何が写ってるかです。
人間にとって簡単なことが、コンピュータには難しいんです。

さて、そう考えると、AIにとって、一番難しい課題って何でしょう。
それは、人間が、一番、当たり前にしてること、会話とか、言葉です。
人間の話す言葉のことを自然言語って言いますけど、これが、AIにとって一番難しいんです。

ところが、ディープラーニングの登場で、ついに、自然言語も人間を超えて来てます。
AIが自動生成したブログの記事が、1位になったりしています。

ディープラーニングの勢いはとどまることを知りません。
専門家の中には、このまま進めば、いずれ、心や意識が生まれるんじゃないかって意見もあります。

これが、今回のテーマです。
ディープラーニングから、心や意識は生まれるのか?
それでは、始めましょう!

AIの定義って、いろいろありますけど、技術的な面からいうと、非構造化データを扱うのがAIです。
構造化データっていうのは、エクセルで扱えるようなCSVデータとかです。
規則的な数字の羅列です。
人間が見ても、よく分からないですけど、コンピュータは得意です。

非構造化データというのは、その逆です。
画像とか、動画とか、音声とか、文章とかです。
こっちは、人が見たらすぐにわかりますけど、コンピュータは苦手です。
でも世の中にあるデータのほとんどは、非構造化データなんです。
これをコンピュータで扱おうって目指してるのがAIです。

今のAIブームのきっかけは、画像認識です。
2012年の画像認識コンテストで、トロント大学のAlexNetが、二位に10%以上の差をつけて、ぶっちぎりで優勝しました。
この時使った技術がディープラーニングです。

このコンテスト、2015年には、精度が人間を超えて、2017年には、コンテストの役目を終えたとして終了しました。
技術の進歩って、ホント、速いですよね。

それでは、コンピュータが、画像を認識するってどういうことでしょう?
簡単な例として、手描き文字の認識を考えてみます。

これは、ディープラーニングでよく使われる手書き数字のデータセットです。
こんな手書き数字が入力されて、0~9に分類できればいいわけです。
画像は、28×28画素の白黒画像です。
これを一列にして、白を0,黒を1とすると、1,1,1,0,0,0,1,1・・・って、784個の数字で表せますよね。
これは、784次元のベクトルと同じです。

次は、0~9の数字です。
これは、0~9の数字を並んでるとして、そのどれかが1で、それ以外が0の10次元のベクトルで表現できます。
たとえば、0なら(1,0,0,0,0,0,0,0,0,0)って、1の後に0が9個並びます。

こう考えると、数字認識ってのは、784次元のベクトルを、10次元のベクトルに変換する関数と言えるわけです。
ややこしいこと言いましたけど、この感覚を覚えておいてください。
ディープラーニングって、中身は、ベクトル計算なんです。
入力ベクトルに、ある関数を作用させて、出力ベクトルを計算するわけです。
画像認識っていうのは、「正しい出力ベクトルを出す最適な関数を求めよ」って課題に置き換えられるんです。

実際の画像認識だと、入力画像は赤、緑、青の3色で、1色が256諧調でデータが大きくなりますけど、理屈は同じです。
求めるのは、犬とかネコって単語です。
これも、犬、ネコ、時計、ポストとかって、いろんな単語の並びがあるとして、そのうち、どれか一つが1になるようなベクトルが出力となります。

さて、ディープラーニングにも、いろんな手法がありますけど、画像認識で使われる一番有名なのがCNNです。
Convolutional Neural Networkの略で、畳み込みニューラルネットワークって訳されます。

ディープラーニングって、日本語では深層学習って言います。
つまり、階層が深いってことです。
階層が深いってどういう事かって言うと、さっきの関数を、何回も使うってことです。
それじゃぁ、顔認識を例に、具体的にどんな処理をしてるのか見て行きます。

まず、数10ピクセル×数10ピクセルの単純なパターン画像を何十枚と用意します。

これを特徴パターンって言います。
これを、認識する画像の隅から少しずつずらしながら、どれだけ一致するか計算します。
こうやって、元の画像を特徴パターンで表現します。

この処理を繰り返すと、単純なパターンから複雑なパターンが現れてきます。
たとえば、人の顔の場合、中間段階では、こんな感じのパターンが現れてきます。

このぐらいになると、目とか鼻とか、人の顔のパーツらしいものが見えてきますよね。
次は、この特徴パターンの組み合わせで判断していきます。
すると、最終段階は、こんな感じの特徴パターンが出てきます。

ここまでくると、顔って分かりますよね。
これらのパターンが出てくれば、顔と判断できるってわけです。
こうやって、大量の画像データから特徴パターンを抽出することを学習です。
学習済みのニューラルネットワークを使えば、画像を入力すれば、顔とすぐに判定できます。
これが推論です。

最近のディープラーニングは、画像認識だけでなく、画像の自動生成もできます。
これは、敵対的生成ネットワークといわれる技術を使って生成した画像です。

どれも、普通の写真にしか見えませんよね。
じつは、この中で本物の写真は、真ん中の列だけなんです。
上下はAIが自動生成した画像です。
真ん中の列は全員、白人ですよね。
上下の画像は、元の写真を基に、ラテン系と黒人に変換したものなんです。
元画像に、ラテン系の特徴パターン、黒人の特徴パターンを適用したってわけです。

さて、画像は、画素の並びをベクトルとして表現しました。
じゃぁ、文章の場合はどうするんでしょう。
それは、入力文章を、単語の並びのベクトルとして扱います。
出力は、次に出現する単語です。
いくつかの単語を入力して、次に来る単語を、順に出力することで、文章を自動生成できるわけです。

自然言語処理で、最近の流行りはトランスフォーマーという技術です。
有名なのは、GPT-3です。
これは、Generative Pre-trained Transformer-3の略で、トランスフォーマーを使っています。
畳み込みニューラルネットワークは、小さい特徴パターンから、大きな特徴パターンに、だんだん拡張していきましたよね。
トランスフォーマーは、その逆で、文章全体から一つの単語を学習させます。
一部だけを見るんじゃなくて、全体の文脈から単語の意味を捉えるってわけです。
これで、かなり自然な文章を生成できるようになりました。

さて、こっからが本題です。
ディープラーニングにとって、画像というのは、画素の集まりです。
画素の集まりのパターンで画像を認識したり、画像を合成したりします。

こんな風に、本物の写真と見分けがつかないくらいに合成できるようになりました。
最近では三次元形状まで復元できるようになってきました。

三次元の立体の顔を生成できるようになったからといっても、再現できるのは、あくまでも、顔の表面までです。

実際の人間の顔は、そのうらに肉や骨があります。
当たり前ですけど、そんなとこまでは再現できません。
これは、みんな、わかってます。

ところが、自然言語処理になると、ちょっと違ってくるんです。
普通に文章を生成したり、会話ができたるようになると、もしかして、このAIは心や意識を持ってるんじゃないかって思い始めるみたいなんです。
そこまで行かなくても、このまま進めば、意識や心が生まれるんじゃないかって、思ってる人は結構います。
なんせ、ディープラーニングの進歩って、とんでもなく速いです。
数年で、技術がガラッと入れ替わりますから。

でも、ちょっと待ってくださいよ。
ディープラーニングの進歩って、データの処理の仕方が変わるだけです。
処理方法を変えても、元データにないものは生まれません。
顔写真から、骨や肉が再現されることは絶対にないです。

自然言語も同じです。
こうやって、僕らが喋るのは、こんなことがあったって伝えたいことがあるからですよね。
嬉しい出来事とか、悔しい出来事があったとか。
一言で言えば、感情です。
そんな感情に突き動かされて、しゃべったり、メールを書いたりするんですよね。
感情を生み出すのは、心や意識です。
でも、心や意識は、文章には直接書いてないです。
だから、文章をいくら学習しても、心や意識は生まれるわけないですよね。

じゃぁ、なんで、そんな勘違いをしてしまうんでしょう?
一つは、ディープラーニングが自動で学習するからでしょう。
大量の画像から、顔には、目と鼻があるって学習してましたよね。
自動でそこまで学習できるんだから、大量の文書を学習したら、自動で意識や心が生まれるって思ってしまうんでしょう。

でも、目や鼻は、元々の画像に既にあった物です。
画像から抽出しただけです。

目は見るための物、口はしゃべったり、食べたりするものって意味は分かってないです。
写真からは、そんなことは読み取れませんから。

ディープラーニングは、大量の文書から、単語の意味や文脈を理解してるといいます。
ただ、自然言語処理で、意味を理解してるというのは、文章の穴埋め問題を解けるとか、次に来る単語を予測できることです。
じゃぁ、何を学習してるんでしょう?
それは、ある単語の周りに、どんな単語が、どんな順番にあるかって確率です。
ディープラーニングが、意味や文脈を理解してるっていうのは、こういう事です。
ベクトルで表現できてるってことです。
僕らが普段使ってる「単語の意味」と、ディープラーニングが使う「単語の意味」とは、全然別物なんです。

分かってきましたか?
ディープラーニングは、大量のデータさえ用意すれば、自動で学習はしてくれます。
ただ、できるのは、データの並びが、いかにも自然になるようにするぐらいです。
画像なら、本物そっくりの写真を作るとかです。
文章なら、単語の並び具合が、いかに自然になるように配置するだけです。

大量の文書を学習したGPT-3が、自然な文章を生成できるといっても、それは、見た目の並びだけの話です。
言葉の本当の意味や文脈を理解してないのは、生成された文章を読めば、すぐに分かります。
もし、それを確認したかったら、第174回「GPT-3 検証した あご外れた」を見れば、すぐにわかりますよ。

はい、この動画が面白かったら、チャンネル登録、高評価お願いしますね。
それじゃぁ、次回も、おっ楽しみに!