ロボマインド・プロジェクト、第383弾!
こんにちは、ロボマインドの田方です。
ロボマインドは、コンピュータで心を作ろうとしています。
目的は、人と普通に会話できるシステムを作ることです。
それを実現するのにコンピュータを使うわけです。
ここは、他のAI 研究者と同じです。
ただ、一つ違うのは、途中で考えが変わってきたってことです。
最終目標は変わってません。
じゃぁ、何が変わったかというと、コンピュータの使い道です。
コンピュータって、単に、目的達成の手段じゃないってことに気づいたんです。
どういうことかって言うと、心や意識って、脳科学でもまだ解明されてませんよね。
だから、どうやって心や意識を作るかなんて誰にも分からないわけです。
だから、未だにコンピュータに意識を発生させることができないんです。
でも、僕は、重要なことに気づいたんです。
それは、コンピュータって、人間の心や意識に近づくように進化してるってことです。
もしそうなら、脳を真似るより、コンピュータを真似た方が意識や心を手っ取り早く作れるんじゃないかってことに気づいたんです。
これだけじゃ、何を言ってるか、分からないですよね。
もう少し丁寧に説明します。
ここで言ってるのは、コンピュータの進化というより、正確にはプログラム言語の進化のことです。
プログラム言語って、プログラマーがプログラムしやすいように進化してきました。
プログラムしやすいってことは、プログラマーの頭の中で考えてることを、そのままプログラムで表現できるようになったってことです。
つまり、最近のプログラムは、人が頭で考えるのと同じ構造をしてると言えるんですよ。
じゃぁ、その最近のプログラムっていうのは具体的に何かって言うと、それは、オブジェクト指向言語です。
オブジェクト指向言語というのは、あらゆるものをオブジェクトというデータのまとまりで管理するプログラム言語です。
それに対して、以前のプログラムは手続き型言語と呼ばれていました。
それじゃぁ、この二つを分かりやすい例で説明します。
たとえば、肥満度を計算するBMIって数式があります。
BMI=体重÷(身長)²
です。
BMIが40以上だと太りすぎで、16未満だとやせ過ぎです。
これをプログラムで書くとすれば、まずBMI関数というのを作ります。
そして、このBMI関数に体重と身長を入力すると、BMI値が出力されます。
この関数を使って、太り過ぎかやせすぎかを判断します。
これが手続き型言語の考え方です。
じゃぁ、これのどこが問題かというと、これだとイメージしにくいんですよ。
肥満度って抽象的な値ですよね。
でも、僕らがイメージするときって、人の体形をイメージするじゃないですか。
太郎くんは太ってるとか、次郎君はやせてるとかって、人物をイメージするでしょ。
でも、抽象的なBMI値だけを取り出して、BMI45の人は太り過ぎといわれてもピンとこないでしょ。
ピンとこないっていうことは、人間の思考方法と違うってことです。
つまり、人間は、手続き型言語で考えてないと言えるわけです。
それじゃぁ、オブジェクト指向言語はどうでしょう?
オブジェクト指向言語っていうのは、オブジェクトを中心にデータを設計します。
オブジェクトっていうのは、何らかのものを一まとまりのデータとして表現したものです。
たとえば、人オブジェクトなら、名前とか身長、体重、それからBMIってデータをひとまとめにするんです。
つまりBMIだけ取り出すんじゃなくて、太郎君のBMIとしてとりだすわけです。
つまり、必ずオブジェクトとペアにしてイメージするんです。
僕らが、「太郎君って太ってるよねぇ」っていうとき、太郎オブジェクトのBMIプロパティを参照してるって感じです。
さて、今のプログラム言語がオブジェクト指向言語に落ち着いたってことは、言い換えたら、人が頭で考えるとき、オブジェクト指向で考えてるって言えるんです。
僕は、コンピュータで人間の意識を作ろうとしてたんですけど、計らずとも、コンピュータ・プログラムの方も、人間の意識に近づくように進化してきてたといえるんです。
僕は、このことに気づいたんですよ。
これは、ものすごく重要な気づきでした。
さて、こっからが本題です。
意識とコンピュータ・プログラムの関係って、オブジェクト指向言語だけじゃないってことに気づいたんですよ。
今回は、新たに気付いた別の例を取り上げます。
第375回でフッサールの現象学を取り上げました。
フッサールは言いました。
「意識の本質は、何かについての意識である」と。
これが意識の志向性です。
たとえばリンゴがあって、「何色ですか」って聞いたとします。
このときリンゴの色に注目しますよね。
これが志向性です。
意識はリンゴの色に注意を向けたわけです。
そして、「赤色です」って答えますよね。
これが意識の本質だってフッサールは言うんです。
でも、こんなことって、コンピュータ業界では、随分昔からやってます。
それは、データベースです。
データベースもプログラム言語と同様、進化してきました。
そして、現在、最も一般的に使われるのがリレーショナルデータベース、RDBです。
最も使われるってことは、これも、直観的に理解しやすいってことです。
そして、リレーショナルデータベースへの問い合わせには、専用の言語があります。
それをクエリとかSQL文とかって言います。
つまり、リンゴの色は何色かってことに注目するのは、リンゴに関する情報を蓄えたデータベースに対して、SQL文を発行してるのと同じと言えます。
もっと言えば、意識の志向性とは、SQL文の発行と言えるんです。
ねぇ、コンピュータ技術の進化って、意識がやってることに近づいてきてるって言えるでしょ。
これが今回のテーマです。
意識の志向性をコンピュータで実現してみた
それでは、始めましょう!
まずは、なんで、こんなことを考えるようになったかって話をします。
今、リベットの実験をシステムで再現しようとしています。
リベットの実験というのは、自由意志を否定した脳科学の有名な実験です。
この実験で画期的だったのは、今まであいまいで、科学で扱えなかった意識とか主観を科学の土俵に載せたことです。
どうやったかっていうと、脳波から測定した脳で感じてるタイミングと、意識が感じたタイミングを比較したんです。
脳波は、客観的なデータなので科学で扱えますよね。
でも、意識が感じることって、主観なので、科学じゃ扱いにくいです。
でも、それを感じたタイミングという同じ種類のデータとすることで、両者を比較できるようにしたんです。
これで、「主観的な感じ」というものを科学で扱えるようにしたんです。
もう少し具体的に説明します。
脳の中に感覚野って部位があります。
感覚野には体がマッピングされてて、たとえば手の位置を刺激したら、手に刺激を感じます。
そこで、右手に相当する感覚野と、実際の左手の両方に電気刺激を与えたらどっちを先に感じたかって質問して答えてもらうんです。
これが第一の実験です。
もう一つの実験が、有名な自由意志を否定した実験です。
今度は、自分の意志で好きな時に手首を動かしてもらいます。
その時、高速で回転するタイマーを見てもらって、手首を動かそうと思ったときのタイミングをタイマーの位置で確認します。
それと同時に、脳波も測定します。
なんで、この実験で自由意志が否定されたかというと、手首を動かそうと思ったタイミングより前に脳波が出てたからです。
意識が「動かそう」と決定する前に脳波が出てるってことは、意識は、別の何かに操られてるんなじゃないかってことです。
詳しい内容は、第39回~42回で語ってますので、よかったらそちらも見てください。
今回は、自由意志が有るとか無いとかの話じゃなくて、もっと細かい話です。
この実験をシステムで再現しようとしたとき気付いたことです。
それが何かというと、意識が気づいたってことの確認の仕方です。
たとえば、第一の実験では、「右手と左手とどちらが早く刺激を感じましたか」って質問しますよね。
第二の実験では、「手首を動かそうと思ったとき、タイマーはどの位置にありましたか」って質問しますよね。
本当は、脳波とか機械で測定したいんですけど、意識がいつ気づいたかは、本人に聞くしか確認のしようがないから、本人に質問するわけです。
そして、その質問というのは、「どっちが早いか」とか、「どの位置にあったか」です。
そう質問されると、本人は「どっちか」とか「どの位置か」に注目するわけですよね。
これって、何かに関する意識ですよね。
つまり、フッサールの言う意識の志向性です。
ここに意識の志向性が現れてきたんですよ。
さて、これをシステムで実現するとします。
まず、「右手と左手のどっちが早く感じましたか?」って質問です。
答えとしてあり得るのは、「右手の方が速く感じた」「左手の方を早く感じた」「同時に感じた」の三つです。
これは時間軸を想定していますよね。
つまり、「どっちが早いか」って質問は、時間軸の中で、A,B二つのタイミングを問う質問と言い換えることができます。
もう一つ、「タイマーの針はどの位置だったか?」はどうでしょう。
これは回転するタイマーで、針の指す位置を問うているわけです。
何が言いたいかというと、「何かに注目せよ」というのは、何らかの答えを引き出す質問と同じといえるってことです。
ここで、冒頭の話にもどります。
これって、コンピュータ科学だとデータベースと同じなんです。
例えば友達の苗字と名前を書いた表があるとします。
名前表
田中
一郎
山田
太郎
吉田
花子
そして、「山田くんの名前は何と言いますか?」って質問したとするでしょ。
そしたら、表から「太郎」って答えるわけです。
ここで「山田くんの名前は?」って質問は、データベースだとクエリとかSQL文とかになります。
具体的には、この場合だと、
SELECT 名前 FROM 名前表 WHERE 苗字=山田
こんな感じになります。
直訳すると、名前表の中で、山田って苗字の子の名前を取り出しなさいってことです。
SQLというのはデータベースに問い合わせる一種のプログラム言語です。
このSQL文を解釈して実行するのがDBMSとかデータベース管理システムです。
DBMSは、受け取ったSQLから表を検索して答えを返します。
それを受け取って、「山田くんの名前は太郎だ」ってわかるわけです。
なんでデータベースの仕組みを説明したかっていうと、これって、まさに、意識と無意識の関係と同じなんです。
つまりね、問いを発するのが意識です。
問いというのはSQL文のことです。
そして、それを実行するのが無意識です。
データベースだと、DBMSに当たります。
そして、意識は答えを受け取って「太郎」だって思い浮かぶわけです。
意識とデータベースで何が一緒かって言うと、意識は、友達の苗字と名前をどうやって管理してるかとか、どうやって思い出すとかは知らないわけです。
ただ、「山田君の名前は?」って問いかけるだけです。
そしたら、無意識のDBMSが表を検索して、「太郎」って返してくるわけです。
それが、「太郎」って名前が思い浮かぶことです。
SQL文はもっと複雑な質問にも答えてくれます。
たとえば、「昨日の晩御飯は何を食べたか」とかです。
これも、昨日の出来事とかどんな表で管理してるのかわかりません。
おそらく、いくつかの表に分かれて記録されてるんでしょう。
DBMSは、そんな複数の表を連結して答えを返すんでしょう。
中身は分からないですけど、問い合わせると、「カレー」とかって答えが思い浮かぶんです。
でも、うまく思い出せないこともありますよね。
そんな時、「昨日、花子ちゃんが遊びに来てて、一緒にご飯食べたよね」とかって言われたとします。
そしたら、花子ちゃんに関する出来事の表を連結して、「あっ、いっしょにカレー食べたんや」って思い出せたりするんですよ。
分かってきましたか?
これ、まさに人間の記憶と一緒でしょ。
そして、これは記憶だけじゃないんです。
今現在、起こってることも同じです。
それが、「右手と左手どっちが早いか?」とか、「タイマーはどの位置だったか?」って問いです。
そして、この時の問い合わせ先は過去の出来事のデータベースじゃなくて、現実世界です。
そう考えると、現実世界も一種のデータベースと考えられますよね。
表形式のデータベースとはちょっと違って、三次元空間とか時間軸の中にデータが格納されたデータベースです。
「どっちが早い」って問いは、その中の時間軸に対する問いなんですよ。
「どの位置」ってのは、三次元空間の位置に対する問いなんですよ。
そう考えたら、意識の志向性というのは、SQL文と言えますよね。
そして、SQL文を解釈実行して答えを返すDBMSが無意識です。
こうして見てみると、コンピュータの仕組みって、人間の意識とか主観を解明するのに、じつにうまくできてるって言えるでしょ。
フッサールがいうには、意識の本質は、何かについての意識です。
つまり、意識は志向性を持ってるわけです。
哲学なら、これだけの説明で十分かもしれません。
でも、意識の志向性を実際にコンピュータで作ろうとしたら、これじゃぁ、あいまい過ぎて作れないです。
ところが、すでに、コンピュータ業界は、志向性を実現していたんです。
それは、データベースに対する問い合わせ言語、SQL文です。
つまり、意識が何かに注目するとは、それは、無意識のDMBSに対する問い合わせです。
何に対する問い合わせかというと、世界に対してです。
世界とは、今見てる現実世界であってもいいし、過去の思い出であってもかまいません。
何らかの世界に対して、データを問い合わせる仕組みがあるわけです。
そういう仕組みを人間は持ってるわけです。
それが、フッサールの言う志向性です。
哲学で曖昧にしか定義できてなかった志向性が、コンピュータ業界では、すでに当たり前に使われていたんです。
意識とコンピュータって、思った以上に近い関係にあるようです。
はい、今回はここまでです。
面白かったらチャンネル登録、高評価、お願いしますね。
それから、よかったら、こちらの本も読んでください。
それじゃぁ、次回も、おっ楽しみに!