ロボマインド・プロジェクト、第253弾!
こんにちは、ロボマインドの田方です。
最近のAIは、大量の文書を学習することで、自然な文章を生成できるようになりました。
会話もできます。
ただ、よく読むと意味が通じなかったり、話してても、話が噛み合わなかったりします。
これって、いったい、何が問題なんでしょう?
一言で言えば、自我がないんです。
AIの会話を聞いても、「私が」とか、「俺が」って、自我を感じれないんですよ。
それがないから、何が言いたいのか、よく分からないんです。
デカルトは言いました。
「我思う、ゆえに我あり」
デカルトは、全てを疑いました。
自分とか、世界とか。
そんな物、本当に存在するのかって。
そうやって、全てを疑って、最後に辿り着いたのが、この言葉です。
「我思う、ゆえに我あり」
全ての存在を疑ったとしても、どうしても残る物がある。
それは、こうして考えてる自分です。
それが自我です。
全てのスタートはここです。
自分です。
いくら文法間違いのない自然な文章を作れても、自我がないと、何を言いたいのか分からない文章となるんです。
会話ができるAIを作ろうと思ったら、自我を作り出さないといけないんです。
これが、今回のテーマです。
コンピュータで、いかにして、自我をつくるか。
それでは、始めましょう!
今まで何度も紹介してる脳科学者のジル・ボルト・テイラー。
彼女は、左脳が脳卒中になって、右脳で見る世界を体験しました。
それは、自分の体の境界が溶け出して、世界と一体となる感覚でした。
デカルトは、全てを疑って、最後に残ったのは自分だって言いましたよね。
でも、じつは、これ、まだ、最後じゃなかったんですよ。
デカルトは、頭で考えて辿り着きました。
考えるのは左脳です。
左脳で考えた結果、どうしても消せなかったのが自分ってことです。
ジルの場合、左脳自体の機能が停止しました。
その時、自分って感覚すら溶け出したんです。
自分が消えたんです。
ということは、本当の一番最初は、世界と自分との区別がつかない状態のようです。
そこから、自分が切り離されたわけです。
世界から、自分を切り離す。
これが、最初に行われることです。
世界から自分を切り離したから、世界を認識できるんです。
世界と一体なら、これが自分だって、思えないんです。
自分を世界から切り離せるってことは、自分以外も、世界から離せます。
目の前に机があるって感じられるのは、机を世界から切り離してるからです。
あらゆる物を世界から切り離して認識できるようになりました。
だから、人は、世界の中に、自分や物があるって思うわけです。
でも、これって、解釈の一つです。
そうでない解釈があってもおかしくないです。
つまり、感知するのは、目や耳ですよね。
目が直接感知するのは、眼球の奥にある網膜に映った点々です。
耳が直接感知するのは、空気の振動です。
ただのデータです。
それを何らかの方法で処理するわけです。
それが解釈です。
三次元空間の中に物体があるって思うのは、あくまでも、解釈の一つです。
別の解釈の仕方もあるははずです。
その証拠に、ジルは、自分の体の境目が分からなくなりました。
これは、世界から自分を切り離すって解釈じゃない、別の解釈になったからです。
目や耳からの元のデータ同じです。
変わったのは、データじゃなくて、処理の仕方です。
この話、コンピュータ・プログラムで考えるとわかりやすいので、プログラムで考えてみます。
たとえば、身長と体重を入力したら、BMIっていう肥満度を計算するプログラムがあるとします。
計算式は、
BMI=体重÷(身長)²
です。
たとえば、これは、BMIを計算してくれるWEBサイトです。
身長と体重を入力して「計算」ボタンを押すと、BMIを計算して表示します。
こういうプログラムは、手続き型プログラミングが得意です。
手続き型プログラミングって、処理の流れに沿ってプログラムを書いていきます。
それでは、次は、人ごとに管理する場合を考えてみます。
A君、B君のBMIを管理するわけです。
こんな時に便利なのが、オブジェクト指向プログラミングです。
オブジェクト指向プログラミングでは、対象となる人や物をオブジェクトというデータのまとまりで管理します。
オブジェクトにはプロパティとメソッドがあります。
プロパティは、オブジェクトの属性を表すもので、名前とか、体重とか身長とかです。
メソッドは、オブジェクトの動きとか振る舞いで、この場合ならBMIの計算です。
こうやって、たとえばクラス全員のオブジェクトを作って管理することができます。
そうすると、A君は太ってるとか、B君や痩せてるとかってすぐに分かります。
クラスの平均とかもすぐに出すことができます。
つまり、同じデータ、同じBMIの計算でも、用途によって、プログラムの作り方が変わるわけです。
さて、それじゃぁ、今の二つのプログラムの内、どっちが人間の思考に近いでしょう?
たとえば、新しい学校に入学して、みんなと初めて会ったとします。
あの子は太ってるなぁとか、あの子は痩せてるなぁとかって思ったとします。
そう思うってことは、僕らは、一人一人を認識して、太ってるとか、痩せてるとかって判断するわけです。
つまり、オブジェクト単位で認識してるってことです。
どうも、人間の思考は、オブジェクト指向プログラミングに近いと言えそうです。
それじゃぁ、手続き型言語は、どんな場合に使えばいいんでしょう?
さっきのサイトは、BMIを計算するプログラムがあるだけです。
つまり、入力があったら、結果だけを手っ取り早く欲しい場合には便利なようです。
オブジェクト指向言語の場合、クラス全体とか、個人はどうとかって認識できます。
つまり、世界と、世界の中の「もの」って形で認識できるのがオブジェクト指向言語の特徴と言えそうです。
この話、脳の処理と対比すると、もっと分かりやすいです。
盲視の話、覚えてますか?
見えないのに、ちゃんと行動できる人の話です。
目で見た情報を処理する脳内の経路には、「どこの経路」と「何の経路」の二つがあります。
「何の経路」は、見た物を生成して意識に提示します。
だから、「何の経路」が損傷すると、見えなくなります。
盲視患者の場合、「何の経路」が損傷しましたけど、「どこの経路」は生きてます。
「どこの経路」って、現実世界への反応とか行動を司ります。
だから、レーザーポインターで黒板を照らして、「どこに光の点がありますか?」って質問したら、指を指せるんです。
意識では見えないのに、あたかも、見えてるかのように指差しはできるんです。
これが盲視です。
これとBMIのプログラムとを比較してみます。
「何の経路」がやってるのは、「何」を作り出して、意識に提示してるわけです。
この「何」っていうのは、言ってみればオブジェクトです。
つまり、「何の経路」は、オブジェクト指向プログラミングに近いって言えますよね。
意識が認識するのがオブジェクトです。
それじゃぁ、手続き型言語の場合はどうでしょう?
データが入力されると、BMIを計算して表示するだけです。
外界からのデータに反応して、指差しするのに似てますよね。
つまり、「どこの経路」の処理です。
同じ外界からのデータであっても、二種類の処理の仕方があるわけです。
一つは、脳内なら「どこの経路」で、プログラムなら、手続き型言語に対応します。
これは、入力に対して、すぐに出力するタイプの処理です。
もう一つは、脳内なら、「何の経路」で、プログラムなら、オブジェクト指向プログラミングに対応します。
これは、オブジェクト単位で管理するタイプです。
注目してほしいのは、「管理」ってとこです。
オブジェクトを作って管理してるだけです。
データは、管理するだけじゃ、意味ありません。
使わないと、意味がありません。
何が言いたいか、分かりますか?
もう一つ、重要なものが必要なんです。
それは、オブジェクトを利用するプログラムです。
じゃあ、そのプログラムって、何かわかりますか?
これが、意識プログラムです。
自分です。
自我です。
意識プログラムは、オブジェクトを認識します。
オブジェクト同士を比較したり、全体を眺めたりできます。
これが、世界を認識するってことです。
考えるってことです。
世界を認識し、考えるプログラム、それが意識プログラムです。
デカルトが、全てを疑った結果、最後に残ったのが、この意識プログラムです。
自我とは、こうやって生まれたんです。
オブジェクトでつくられた世界、それは、仮想世界です。
意識は、仮想世界を使って世界を認識し、行動を決定します。
脳内のデータ処理の進化で、作られたものが世界と意識と言えます。
今、進化って言いましたけど、これって、脳の進化ってことだけじゃないですよ。
プログラム言語の進化でもあります。
最初に作られたのが手続き型言語です。
手続き型言語から進化して生まれたのがオブジェクト指向言語なんです。
さて、次は、もっと重要な話をします。
さっき、オブジェクトにA君、B君って名前を付けましたよね。
これによって、「A君」って言えば、A君のオブジェクトを取り出すことができます。
意識は、体重とか身長とか、A君に関する情報を読みだしたり、書き換えたりできるわけです。
これの意味、分かりますか?
丁寧に説明しますよ。
「A君」って名前って、一種の記号と言えます。
同じ記号を他人と共有すれば、A君の情報をほかの人に伝えることができますよね。
「A君」の身長は何cmとかって。
さて、この記号、何のことか分かりますか?
それは、言葉です。
単語です。
その物の名前を聞くと、オブジェクトを生成できるわけです。
書き換えたりもできます。
これが、言葉の意味を理解してるってことです。
これが全体象です。
言葉を理解できるAIの全体像です。
整理しますよ。
まず、必要なのは、世界をオブジェクトで構築することです。
これは、オブジェクト指向言語でつくられます。
そして、その世界を見る意識プログラムがあるわけです。
意識プログラムが、オブジェクトを読みだしたり、書き換えたりすること。
これが世界を理解するってことです。
そして、それを文字で書き表したもの。
それが言葉です。
文章です。
言葉を理解できるAIを作るには、最低限、これだけの構成が必要なんです。
これ、一つでも欠けたら、言葉の意味なんか、理解できないんですよ。
さて、それじゃぁ、現在のAIは何をやってたか、覚えていますか?
大量の文書から、単語の並びを学習してたんですよね。
今のAIが見てるのは、単語の並びだけなんですよ。
入力データをただ処理して出力してるだけです。
これは、「どこの経路」がやってることと同じです。
つまり、意識がないんです。
自我がないんです。
ロボマインドは違います。
ロボマインド・プロジェクトは、オブジェクトを使って世界を表現します。
そして、それを基に言葉の意味を理解できるマインド・エンジンを開発しています。
それだけじゃないです。
オブジェクトを使って言葉の意味理解する特許も取得しました。
世界中の自然言語処理の研究者は、単語の並びしか興味がないみたいで、驚くほどあっさり特許が取れたんですよ。
おかげで、ものすごく強い特許が取れました。
いわゆる基本特許です。
今後、言葉の意味を理解するAIを作ろうと思ったら、この特許を使わざるを得ないです。
ただ、言葉の意味の根本を解明しようとしてる研究はほとんどないので、当分は、ディープラーニングの時代が続くと思います。
世界がロボマインドに気付く前に、出来るだけ引き離しておこうと思っています。
それから、今回の動画で説明した、意識とか仮想世界については、この本で詳しく解説しています。
よかったら読んでください。
はい、今回の動画が面白かったら、チャンネル登録、高評価お願いしますね。
それじゃぁ、次回も、おっ楽しみに!