第254回 意識が感じる時間は、コンピュータで再現できるのか?


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

この前、茂木健一郎さんが、YouTubeで面白いことを言ってました。
茂木さんの師匠の養老孟司先生がテレビで言ってたことらしいんですけど、「脳をコンピュータにアップロードして意識を発生させるマインドアップロードって可能か」って聞かれて、「そんなこと出来るはずない。なんでかって言うと、そこには時間がないからだ」って答えてたそうです。
茂木さんがいうには、養老先生って、ときどき、本質を、ぽろっと言うらしいんですよ。
ほんで、まさに、これが、意識の本質だって言います。
情報理論には時間がない。
だから、コンピュータには意識が生まれないって言います。

茂木さんは、意識と時間には、密接な関係があるって言います。
シャノンは、情報量とか情報エントロピーとかを定義してます。
情報エントロピーには、たしかに、時間の概念が含まれますけど、それと意識の感じる時間とは別物です。
僕らは、時間が流れてるって感じますよね。
意識や主観が感じる時間の流れ。
これは、情報エントロピーの時間とは別物です。
ここは、僕も同じ考えです。
ただ、だからと言って、コンピュータに意識が生まれないかって言うと、それも、また別だと思います。
僕は、情報エントロピーとは別の方法で、時間の概念を定義すべきって考えています。
そして、それをやろうとしてるのが、僕らが、今、作ってるマインド・エンジンです。
じゃぁ、どうやって時間を定義してるのか。
これが、今回のテーマです。
意識が感じる時間は、コンピュータで再現できるのか?
それでは、始めましょう!

まずは、脳から考えてみます。
最初に取り上げるのは、盲視です。
盲視というのは、脳の一部が損傷して、目が見えなくなるという障がいです。
盲視患者にリンゴをみせて、「これが何かわかりますか?」って聞いても、「見えないので分かりません」って答えます。
次に、レーザーポインターで黒板を照らして、「光の点を指差してください」って言うと、「見えないのでできません」って言います。
それでも、「当てずっぽうでもいいので指差してください」って言います。
すると、ちゃんと、指差しできるんです。

目からの情報は、後頭部の視覚野に送られて、そこから「何の経路」と「どこの経路」の二つに分かれて処理されます。

「何の経路」は、物の色や形を分析して、「どこの経路」は、位置や動きを分析します。
盲視患者は、このうち「何の経路」だけが損傷して、「どこの経路」は生きています。

さて、今、皆さんは、物が見えてますよね。
物が見えるって感じてるのは意識です。
「何の経路」が損傷すると、物が見えないって感じるってことは、どうも、「何の経路」の先に意識があるようです。

光の点を指差しできたので、指差しとか、外界に対する行動は「どこの経路」が担ってるようです。
でも、本人は、光の点がどこにあるのか見えないって言ってました。
意識では見えてないんです。
ということは、外界に対する行動は、意識がなくてもできるようです。

次に、レーザーポインターを消して、「今、光の点はどこにありましたか?」って聞きます。
すると、今度は、途端にでたらめなとこを指差すようになるんです。
どうも、一瞬前の事すら、覚えることができないようなんです。
つまり、「どこの経路」には過去がないみたいです。
今、現在しか存在しないようです。
つまり、時間が流れてないんです。

時間が流れないって話、他でも聞いたことあります。
それは、脳科学者、ジル・ボルト・テイラーの話です。
ジルは、左脳が脳卒中になって、右脳で見る世界を体験しました。
自分の体の境界がだんだん分からなくなって、体が世界に溶け出すのを感じたそうです。
そして、最後には、自分と世界とが一体となった感覚を感じたそうです。
これが、右脳で感じる世界です。
そのとき、こうも言っていました。
そこには、時間の感覚がなかったって。
そこにあるのは、今、この瞬間だけだって。
今、現在が過去へ過ぎ去る、時間が流れるって感覚。
それを感じれなかったそうなんです。

ここまでの話から、全体の構造を考えてみます。
「どこの経路」につながってるのは、指差しできる現実の世界です。
でも、意識は現実世界は認識できません。
意識が認識するのは、「何の経路」の先にある世界です。
これを仮想世界と呼ぶことにすます。
どうも、世界とは、現実世界と仮想世界の二つがあるようです。

ジルの話から、意識が認識する仮想世界は左脳にあるようです。
ジルは、左脳が損傷することで、仮想世界を介さずに、現実世界を直接認識したんでしょう。
そして、「どこの経路」とジルの経験から、現実世界には時間が流れていないようです。
現実世界にあるのは、今、現在という瞬間だけです。
意識が感じる時間は、どうも、仮想世界にだけ流れてるようです。
この仮想世界について、もう少し、考えて行きます。

「どこの経路」が動作するのは、現実世界に対してです。
だから、現実世界で、光の点が消えると、指差しできなくなるわけです。
消える前の光の位置を指差しするには、光の位置を覚えておく必要があります。
位置を覚えておくには、世界そのものを保持する必要があります。
だから、仮想世界が必要なんです。

仮想世界を作り出して、意識は、それが現実だと思ってるわけです。
まさか、本当の現実世界が、別に存在するなんて、夢にも思ってないわけです。
そして、時間は、仮想世界につくられたものです。
つまり、意識や主観が感じる時間って、現実世界に存在するんじゃないんです。
仮想世界につくりだされたヴァーチャルなんです。
わかってきましたか?

さて、今度は、時間を、次元って観点から考えてみます。
三次元とか四次元の次元です。
じつは、上の次元って、下の次元をずらすことで生まれるんです。

これだけじゃ、分かりにくいと思うので、丁寧に説明していきます。
まず、0次元です。

0次元というのは、ただの点です。

今度は、この点をずらしたとします。

そうしたら、どうなります?
線になりますよね。
線、これは1次元です。
0次元の点をずらすと、次元が一つ上がって1次元になったわけです。

それじゃぁ、次は、線をずらしてみます。

線をずらすとどうなりましたか?
面になりましたよね。
面は2次元です。
1次元の世界をずらすと、次元が一つ上がって2次元の世界となったわけです。

じゃぁ、今度は面をずらします。

面をずらすと、どうなりましたか?
立体になりましたよね。
これが三次元です。
これが、僕らが感じてる三次元世界です。

さて、次は四次元です。
これは、三次元世界を、どうずらしたらいいでしょう?
もう、空間ではずらすことはできませんよね。
そこで、空間軸にずらすんじゃなくて、時間軸でずらすわけです。

(後ろの楕円はグラデーションなしで)

こんな感じです。
宇宙そのものを、時間軸に沿ってずらすわけです。
これが、時間が流れるってことです。

僕らは、こう言った時間の流れを認識できますよね。
時間を認識できるってことは、今、この瞬間の三次元世界を過去や未来にずらしてるわけです。
現実に存在するのは、今、この瞬間の世界だけです。
過去や未来の世界は現実には存在しません。
過去や未来の世界を想像できるってことは、世界そのものをつくり出してるわけです。

つまり、今、現在とは違う仮想世界をつくって、それを認識する仕組みがあるってことです。
この仕組みがあって、初めて、意識は、時間の流れを感じれるわけです。

次は、これをコンピュータでどうやって実現するかについて考えていきます。
つまり、意識プログラムが、いかにして、時間を感じるかです。
三次元の仮想世界は、たとえば3DCGでつくることができます。
3DCGは、3Dオブジェクトでつくります。
このオブジェクトを扱うのが意識です。
前回、仮想世界はオブジェクト指向プログラミングでつくるって話をしました。
ここ、勘違いしてる人が多いので、丁寧に説明します。

どこを勘違いしてるかと言うと、システム自体をオブジェクト指向プログラミングでつくってるって思ってる人が多いんですよ。
そうじゃないんですよ。
いや、もちろん、僕らが作ってるマインド・エンジン自体も、オブジェクト指向プログラミングで作ってますよ。
でも、重要なのは、そこじゃないんですよ。

いいですか。
仮想世界を認識してるのは、意識プログラムですよ。
意識プログラムは、仮想世界のオブジェクトを扱うわけです。
ということは、オブジェクト指向プログラミングを使うのは、意識プログラムなんです。
僕ら、開発者じゃないんです。

マインド・エンジンで説明しますよ。
たとえば、意識プログラムが、「太郎がいます」って文を読んだとします。
「人がいる」ってのは、人オブジェクトを生成するってことです。
これをプログラムで書くと
Let A = new human()
ってなります。
Aが変数で、変数Aに人間オブジェクトを割り当てたわけです。
オブジェクトは、名前とか年齢とかってプロパティを持ってます。
そこで、次は、太郎って名前を設定します。
A.name = “太郎”
ってなります。
これがプログラムです。

今、「太郎がいます」って日本語の文を読んで、プログラムに変換しましたよね。
このプログラムが、オブジェクト指向プログラムです。
そして、このオブジェクト指向プログラムを読むのが、意識プログラムなんです。
僕ら、開発者が読むためにプログラムに変換したんじゃないんですよ。
意識プログラムが読むために変換したんですよ。
だって、意識プログラムは、オブジェクト指向プログラムしか読めないですから。
というか、意識プログラムは、オブジェクト指向プログラムで考えるんです。
人が、文章を読んだり、言葉を使って考えるみたいに、意識プログラムは、オブジェクト指向プログラムを読んだり、オブジェクト指向プログラムを使って考えるんです。
わかってきましたか?

さて、プログラムというのは書いて終わりってじゃないです。
プログラムは、実行するためにあります。

実行するっていうのは、オブジェクトを生成したり、変更することです。
さっきの
Let A = new human()
を実行すると、メモリに人間オブジェクトが生成されます。
意識がオブジェクトを認識するって言うのは、メモリに生成されたオブジェクトを認識するってことですよ。
「リンゴがあります」って文をコンピュータが理解するってとき、僕は、よく、こんな3Dモデルを見せて説明します。

でも、これは、みんながイメージしやすいように表示してるだけで、3Dモデルを生成するかどうかは重要じゃないんですよ。
重要なのは、オブジェクトをメモリに生成するってことです。

そして、意味を理解するってのは、オブジェクトを読み書きできるってことです。
「太郎君は10歳です」って言われたら、太郎オブジェクトの年齢プロパティに10歳って設定すること。
これが文章の意味を理解してるってことです。

次は、「太郎君が20歳になりました」って文を読みました。
そしたら、太郎オブジェクトに20歳って設定します。

つぎは、10歳の太郎オブジェクトと20歳の太郎オブジェクトを両方を格納できる箱を用意します。
意識プログラムは、それを認識するとします。
意識プログラムは、この二つのオブジェクトは、同じオブジェクトだってことを分かっています。
同じ太郎オブジェクトで、年齢プロパティが変化しただけだってことを理解してるわけです。
さて、年齢が違う同じ人物を格納できる箱、これっていったい何でしょう。
わかりますか?
これこそが、時間なんですよ。
時間って概念、その物です。

こんな時間の箱を持ってるシステム、それが、時間を理解できるシステムです。
時間の箱は、本当は二つだけじゃなくて、無限に並んでるんですよ。
過去から未来に無限に並んだ箱、これが時間の箱です。
時間を理解するっていうのは、この箱に、オブジェクトや世界を、時間順に入れるってことです。

意識プログラムは、オブジェクトを生成して、世界に物があるって感じます。
そして、オブジェクトを時間の箱に入れることで、時間を感じます。
時間を感じる意識は、こうやってコンピュータで作ることができます。
それを実際につくってるのが、マインド・エンジンです。

この考えの根本となる意識の仮想世界仮説については、この本に詳しく書いてありますので、良かったら読んでください。
今回の動画が面白かったらチャンネル登録、高評価お願いしますね。
それじゃぁ、次回も、おっ楽しみに!