第527回 人の脳はいかにして言葉を話すのか②


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

「サピエンス全史」で作者のユヴァル・ノア・ハラリは、ホモ・サピエンスに起こった最も大きな革命は7万年前に起こった認知革命だといいます。

それで何を獲得したかというと、虚構を生み出す想像力です。

注意してほしいのは、ハラリは、これを言語とは言わないんですよ。
言語は、その能力の一側面です。
本質は、虚構、つまり、今、目の前にない世界を想像する能力です。
この能力を獲得したことで、噂話から、神や神話を想像することができました。
言語は、虚構をを表現する一手段にしかすぎません。

ただし、言語と想像する能力とは密接にかかわっています。
たとえば、このチャンネルで何度も紹介してるピダハンです。
ピダハンは、アマゾン奥地に住む未開の民族です。
最大の特徴は、過去とか未来って概念を持ちません。
持たないというか、気にかけません。
過ぎ去った過去とか、まだ来ぬ未来のことを気にしても仕方ないって考えます。
過去や未来だけじゃなくて、見たこともない遠くの世界のことなんかも気にかけません。
気にするのは、今、目の前に起こっていることだけです。

これは言語にも反映されていて、ピダハン語だと、今、現在を直接の起点とした文しか作れないんですよ。
だから、たとえば「電話がかかってきたとき、夕食を食べ終わっていた」って文が作れません。
なぜなら、「電話がかかってきた」って過去が起点となっているからです。
文が作れないっていうことは、想像もできないってことです。
言語とは、頭の中で想像したことを表現することです。

逆に言えば、どんなことまで想像できるかって脳内の機能が言語や文法を生み出すんです。
つまり、言語の本質は脳の中にあります。
これが今回のテーマです。
人の脳はいかにして言葉を話すのか②
それでは、はじめましょう!

さて、今のAIはリアルな画像を生成できますよね。
こんな美少女画像とか、簡単に生成できます。

これは、ネットに大量にある美少女画像を学習して生成しています。
でも、AIにも苦手な画像もあります。
それは「手」です。
手の画像を生成すると、こんなになったり、

こんなになったり、

こんなになります。

指の数がおかしいんです。
手の写真なんてネットにいくらでもあって、それを学習してるはずなのに、なんで5本の指をちゃんと生成できないんでしょう?

じつは、AIは数を数えるのが苦手なんです。
AIが得意なのは、パッと見た感じです。
たとえば、リンゴが三つあったら、パッとみて三つってわかりますよね。
このパッと見て感じるのは右脳の処理です。

でも、10個だったら、パッと見ただけじゃ何個かわかりません。
正確に何個か判断するには数えないといけません。
数えるは左脳の論理的思考です。
こういった論理的思考はAIは苦手なんです。

顔のパーツって、目が二つとか鼻や口が一つです。
パッと見て数を間違えることはないので、顔を生成するとき、目の数を間違うことはありません。
パッと見はパターン判定なので、二つ三つなら間違うことはありませんけど、5個とか6個になると、「いっぱいある」ってパターンになってしまうんです。

僕らは、普段、意識してないですけど、じつは、右脳と左脳を瞬時に使い分けて世界を認識してるんです。
そこで、今回は、今のAIが苦手な左脳の処理をマインド・エンジンがどうやって実現するかについて解説していきます。
この左脳の処理こそが、言語に直接結びつきます。

これは、最新のマインド・エンジンの図です。
今、仕様を考えているところなので、出すたびに、ちょっとずつ変わってきています。


まず、無意識を図から外しました。
無意識は、たとえば現実仮想世界を作ったり、メッセージボックスにメッセージを入れたりとか、あちこちでいっぱい動いています。
全部書いてたらキリがないので、この図からは取り除きました。

それから、今回、大きく変わったのは注目世界です。
今まで3D世界と論理世界の二つに分けていましたけど、今回から、右脳と左脳に分けることにしました。

右脳にあるのが3D世界です。
これが、パッと見の見ための世界で3Dオブジェクトで作られます。
現実世界にあるものをそのまま感じるのが右脳です。

だから、見た目以外に耳で感じる聴覚世界とか、触った感じの触覚世界とかあります。
それから、現実世界に働きかけるのは自分の体ですよね。
だから、体を動かす身体世界も右脳が持ちます。

左脳が行うのは思考です。
だから、論理的思考を行う論理世界とか、計算を行う数学世界があります。
論理世界は意味オブジェクトで作られます。
意味オブジェクトというのはプロパティとか概念の親子関係といったデータ構造を持ちます。
たとえばリンゴオブジェクトなら色プロパティは赤で、果物概念に属するとかって関係をもちます。

右脳も左脳も、それぞれの世界にオブジェクトを持ちます。
さらに、オブジェクトのデータを取得したり、データを変更するといったメソッドもあります。
そして、このメソッドは、世界が持ちます。

メソッドを操作するのは主体です。
たとえば、主体が左脳の論理世界のメソッドを使って意味オブジェクトを操作することが論理的思考です。

たとえば数学世界の足し算メソッドや引き算メソッドを使って数字オブジェクトを足したり引いたりするのが計算です。

3D世界の3Dオブジェクトのデータを受け取ることが見るです。
聴覚世界の聴覚オブジェクトのデータを受け取ることが聴くです。
身体世界の「つかむメソッド」や「歩くメソッド」を使うと、手オブジェクトを動かして物をつかんだり、足オブジェクトを動かして歩いたりします。
これがマインド・エンジンの全体像です。

今回は、主体がどうやってオブジェクトを操作するのか、これを詳しく解説します。
例として、「数える」について考えます。

たとえば、たくさんのリンゴがバラバラにあるとします。
「リンゴはいくつありますか?」って聞かれたとします。
すると、どうしますか?
ぼくなら、まず、リンゴを一列に並べます。
そして、左端から一つ一つ指を指しながら、1,2,3って数えます。
右端がちょうど10でした。
これで「リンゴは10個あります」って答えます。
これが「数える」です。
これを行っているのが左脳です。
ここまでは問題ないですよね。

次は、これをマインド・エンジンでやってみます。
まずは一列に並べるです。
一列というのは見た目のパターンなので、これは右脳の処理です。
たとえば、こんなパターンを用意しておきます。

そして、右脳の3D世界に、この一列パターンを重ねて、パターンに一致するようにリンゴを移動させます。
身体世界は「つかむ」とか「移動させる」とかってメソッドがあって、これを使ってリンゴを移動させます。

ここでマインド・エンジンに新しい概念を導入します。
それはワーキング・スペースです。

ワーキング・スペースというのは、主体が考えるときに使う机とかメモ帳みたいなイメージです。
一番の特徴は、複数の世界を同時に扱えるってことです。
とういか、複数の世界のオブジェクトを合成したオブジェクトを扱えます。
それじゃぁ、具体的に説明していきます。

今、現実世界のリンゴが一列に並んでます。
一列に並んでるって思うのは、一列パターンを通して現実世界を見ているからです。
じつは、これ、既に複数の世界を合成したオブジェクトを見ているんですよ。

一列パターンというのは、数学世界に属します。
複数のオブジェクトをまとめる、ちょっと特殊なオブジェクトです。

3D世界のリンゴは3Dオブジェクトですよね。
3Dオブジェクトなので、色とか、直径とか、光の反射具合とかいろんなデータを持っていますけど、今は、そんなの必要ないです。
必要なのは、一列パターンに収まっているってことです。
じゃぁ、一列パターンに収まっていると何が嬉しいんでしょう?

それは、リンゴを数えるとき、今、どのリンゴまで数えて、次のリンゴはどれかってわかるからです。
そのために必要なデータさえあればいいんです。
この必要なデータのオブジェクトで作られた世界がワーキング・スペースです。

それじゃぁ、やってみますよ。
一列パターンに収まるっていうのは、こんな感じです。

マルの中にリンゴが入ってますけど、重要なのは、どのマルにどのリンゴが入っているかの対応関係です。
現実世界のリンゴと一列パターンのマルとの対応は、プログラムでは参照という形で連携します。

じゃぁ、一列を定義するとどうなるでしょう?
たとえば、こんなのとか

こんなの



は一列とは言わないですよね。
一列とは、これです。

じゃぁ、一列は、どう定義されるでしょう。

それは、どれか一つを選ぶと、次が一つに決まると言えます。
そう考えると、一列はメソッドで定義できます。
たとえば、一列オブジェクトの「今」の位置が決まってたとします。
次メソッドに、その一列オブジェクトを渡して実行すると、「今」の位置が「次」の位置に進みます。
このようなメソッドを作用させることができるのが一列オブジェクトです。

それから数学世界には、数列オブジェクトというのもあります。
数列オブジェクトというのは、1,2,3・・・って順番に数字が並んでるものです。
これも同じで、次メソッドを持っています。

これで準備が整いました。
それでは、ワーキング・スペースを使ってリンゴを数えていきます。

ワーキング・スペースは、メソッドとオブジェクトとスクリプトを持ちます。
オブジェクトには、一列に並んだリンゴオブジェクトがあります。
リンゴオブジェクトは、現実世界のリンゴオブジェクトに関連しています。
それから数列オブジェクトと身体オブジェクトもあります。

ワーキング・スペースのメソッドにある今メソッド、次メソッドは数学世界がもっていたものです。
スクリプトというのは、これらのオブジェクトとメソッドを使って数える一種のプログラムです。

スクリプトを読んで実際にオブジェクトを操作するのは主体です。
今の場合、まず最初に、「数えるものを一列に並べる」って書いてあります。

一列に並べるというのは、一列パターンに合うようにリンゴを移動させることです。
これは身体オブジェクトを使って、現実世界のリンゴを実際に動かします。
これで、ワーキング・スペースに一列に並んだリンゴオブジェクトがセットされました。
同じように、数列オブジェクトもワーキング・スペースにセットします。

それでは、数えますよ。
スクリプトにはこう書いてあります。
一列オブジェクトの「今」を左端に設定し、数列オブジェクトの今を「1」に設定する。

このスクリプトを実行すると、左端のリンゴが今になって、左端のリンゴを指差します。
同様に、数列オブジェクトの「今」を1に設定するとき、身体オブジェクトは「いーち」って声に出して言います。


さらに次メソッドを実行すると、「今」が二番目のリンゴになって、二番目を指差して、数列オブジェクトの「今」は「2」になって、「にーぃ」って声に出して言います。


さらにスクリプトには、「これを繰り返す」と書いてあります。
これを実行すると、「さーん」「よーん」って声に出して指さししながら数えます。

そして、「一列オブジェクトの次メソッドが何もかえさなくなったとき、その時の数列オブジェクトの今が一列オブジェクトの個数である」とあります。
これは、7,8,9,10って最後まで数えて、そこでリンゴがなくなったら、最後の10がリンゴの個数ってことです。
これで、リンゴの個数を正確に数えることができましたよね。
これが数えるってことです。

スクリプトの中身は、「もし~なら」とか、「条件が~になるまで繰り返す」とかです。
これが論理的思考です。

そして、このスクリプトを実行するのが主体です。
厳密に言うと、スクリプトを実行するのはバーチャル・マシンといわれる仮想コンピュータです。
主体がするのは、スクリプトをバーチャル・マシンに渡して実行するとこまでです。

ここで意識と無意識の違いについて考えてみます。
ここでいう意識とは、僕らが、今、こうして感じたり、考えたりしてるものです。
マインド・エンジンの場合なら主体のことです。

無意識とは、意識が感じられなかったり、意識がコントロールできない脳の処理です。
熱い鍋に触って、思わず手を引っ込める脊髄反射とかです。
これは、思わず動くもので、意識でコントロールできないものですよね。

さて、マインド・エンジンでは、主体がスクリプトを読み出して、一つずつ実行しましたよね。
主体が直接読み出すデータは、意識が感じることができるデータです。
それをバーチャル・マシンに渡したあとのことは、意識は感知できないし、コントロールもできません。
つまり、バーチャル・マシンは無意識と言えます。

たとえば、指をさすってメソッドはスクリプトに書いてあります。
それを実行する意識は、自分が指を指すと認識できています。
それを渡されたバーチャル・マシンは、身体オブジェクトの手や指を動かして指さし動作を行います。
人間の場合なら、腕や指の筋肉を動かすわけです。
でも、どの筋肉を動かしているかなんか意識は感じられないでしょ。
つまり、これが無意識の処理です。

でも、スクリプトで書かれた内容は意識が認識することができます。
たとえば、「いーち、にー、さーん」って声にだして言ったりとか、指さしたり、全部で10個って思うことは全て意識です。

それじゃぁ、基となるスクリプトはどうやって作られたんでしょう?

それは、誰かに教えてもらったんです。
たとえば、お母さんに、「こうやって数を数えるのよ」って教えてもらうとかです。
つまり、スクリプトは教えてもらうことができるんです。
教育です。
ワーキング・スペースとスクリプトを使った仕組みで教育ができるんです。
教えるときに使うのは、言葉です。
スクリプトは、そのまま言葉になるんです。
スクリプトに書かれたことを実行できたとき、それは意味を理解したということです。
これで、ようやく、世界と言葉と意味がつながりました。
今回は、「数える」ってだけでしたけど、次は、もう少し複雑な言葉について考えていきたいと思います。


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