ロボマインド・プロジェクト、第447弾!
こんにちは、ロボマインドの田方です。
前回でクローアンズ先生の本を読み終わったので、次の本を探していました。
このシリーズ、オリバー・サックスから始まってハロルド・クローアンズと脳関係の本を読み続けてきました。
共通するのは臨床です。
つまり、実際に患者を診てるお医者さんの書いた本ってことです。
僕が知りたいのは意識とか心の仕組みです。
この30年間、脳科学ってものすごく進歩してます。
でも心や意識についてはほとんど解明されてないんですよ。
哲学者デイヴィッド・チャーマーズは、物理的な脳から意識がどうやって生まれるかがわからないって指摘しました。
これが意識のハードプロブレムです。
それに対して、ニューロンの信号の流れから解明できることがイージープロブレムです。
そして、この30年の脳科学が解明したのは、全てイージープロブレムです。
心の中で何を考えてるかとか、文章を読んだとき、脳内でどうやって意味を理解してるかとか、30年前も今も分かってないんですよ。
そう思って、本棚を眺めて見つけたのがこの本です。
『脳からみた心』
作者は、山鳥重(やまどりあつし)。
神経内科のお医者さんです。
臨床医が書いただけあって、この本も患者を中心に書かれています。
失語症で言葉の意味が理解できなくなるのにも、いろんなパターンがあるそうです。
たとえば、えんぴつを指差して「これは何ですか?って聞くと、鉛筆で書く動作をしながら、「えーっと、消しゴム?」って答える人がいます。
別の人は、目の前の机も、普段自分が使ってる机も、どちらも「机」って言うことが理解できなかったりします。
こういう話を聞くと、脳の中で言葉はどんなふうに処理されてるのか、何となくわかってきます。
言語学者が考えた仮説より、失語症患者の話の方がよっぽど参考になります。
これが今回のテーマです。
世にも奇妙な失語症
世界からこうして意味が失われる
それでは、始めましょう!
Aさん(男性60)の前にハサミ、櫛、鉛筆、鏡、歯ブラシが置いてあります。
山鳥先生が鉛筆を指差して「これは何ですか?」って聞きます。
Aさんは、「えーっと・・・」って言いながら、鉛筆をもって書く動作をして、絞り出すように答えました。
「えーっと、け、けしごむ?」
Aさんは、鉛筆が何するものかは分かるようですけど、「えんぴつ」って名前が結びついてないようです。
僕らも、のど元まで出てるのに、言葉が出てこないことってありますよね。
正解を言われると、「そう、それ!」ってなります。
でも、Aさんの場合は、それとはちょっと違うんです。
「消しゴムです」って教えても、「はぁ、そうですか」としかならないんです。
たとえ「鉛筆」って正しく答えても、「正解は消しゴムです」って言えば、あぁ、そうなんですかってなるんです。
さて、これはどう考えたらいいんでしょう?
これを、僕は、オブジェクト指向言語から解明します。
オブジェクト指向言語っていうのはプログラム言語の一種です。
考えたのはコンピュータ科学者のアラン・ケイです。
この人は、ほんとスゴイんですよ。
ウィンドウとかマウスとか、僕らは普通に使ってるじゃないですか。
よく、あれはマイクロソフトがマックからパクったっていいますよね。
でも、それは正確じゃないです。
正確には、ウィンドウとかマウスを考えたのは、当時ゼロックスのパロアルト研究所にいたアラン・ケイです。
パロアルト研究所を訪問したスティーブ・ジョブズがそれを見つけて、マックに取り入れたのが最初です。
現在のパーソナルコンピュータのあらゆる概念は全てアラン・ケイが考えたといわれています。
それが、1972年にアラン・ケイが発表した論文、ダイナブックです。
スティーブ・ジョブズは、それを忠実に再現して、最終的にiPhoneにたどり着いたわけです。
もしアラン・ケイが会社作ってたらとんでもない大企業になってたと思います。
そういえば、ダイナブックって、東芝のノートPCの名前ですよね。
後に、東芝の社員がダイナブックをアラン・ケイにプレゼントしようとしたことがあったそうです。
そのとき、「こんなのダイナブックじゃない!」とか、「勝手に名前を使うな!」って怒られるんじゃないかってビクビクして渡したそうです。
そしたら、アラン・ケイは、「えっ、これ、タダでくれるんすか?」ってニコニコして受け取ったそうです。
ビジネスとか金儲けとか、全く興味ない人だったみたいです。
そのアラン・ケイですけど、プログラム言語も発明してるんです。
それが世界初のオブジェクト指向プログラム言語、smalltalkです。
今でも毎年のように新しいプログラミング言語が生まれてますけど、そのほとんどがオブジェクト指向です。
そう考えたら、アラン・ケイがどんだけすごいかってわかりますよね。
それまでのプログラム言語って、とにかく分かりにくかったんですよ。
アラン・ケイは、もっと、人が自然に書けるようにならないかって考えてました。
そこで思いついたのが、人が頭の中で考えることをそのままプログラムにかけるようにしようってアイデアです。
人は、「もの」単位で認識しますよね。
たとえば、目の前にリンゴがあったらリンゴがあるって認識するでしょ。
でも、脳内では赤いとか丸いって分析してます。
だからといって、リンゴを見て「赤がある」とか「丸いがある」とかって抽象的な概念で認識しないでしょ。
「リンゴがある」って具体的な「もの」を基準に世界を認識しますよね。
この「もの」っていうのがオブジェクトです。
それと同じように、オブジェクト単位でデータを扱おうって考えがオブジェクト指向プログラムです。
そんなの当たり前って思うかもしれませんけど、それまでのプログラムって、色とか形って単位で世界を認識してたんです。
だから分かりにくかったんです。
オブジェクトの特徴は、色とか名前とかって属性を表すプロパティと、動きを表すメソッドを持つことです。
オブジェクトの基になるものをクラスっていいます。
たとえばリンゴクラスは、こんな感じです。
class Apple
{
property name = “リンゴ”;
property color:Color = red;
property shape = sphere;
}
名前が「リンゴ」で、色が赤いってプロパティが設定されてますよね。
これがオブジェクト指向で書かれたプログラムです。
プログラムは、コンピュータが実行できる形に変換してメモリに格納されます。
それをバイトコードっていいます。
さっきのリンゴクラスをバイトコードに変換すると、こんな感じになります。
メモリにはアドレスが振ってあって、そこにプロパティが割り当てられます。
ここでは、[0]番地の名前プロパティに「リンゴ」って名前が格納されてて、[1]番地の色プロパティに「赤」って色が格納されてます。
それから、名前は何番地、色は何番地って情報は別に管理されてて、それをシンボルテーブルっていいます。
コンピュータはこのシンボルテーブルを持ってます。
だから、「名前は何ですか?」って聞かれたら、まず、シンボルテーブルから名前は何番地か調べて、メモリからそれを読み出して「リンゴ」って答えることができるんです。
さて、Aさんは、鉛筆が何かは分かりましたけど、「えんぴつ」って名前が分からなかったですよね。
と言うことは、オブジェクトの名前プロパティの中身が空になってたんだと思います。
だから、名前が分からないし、「えんぴつ」って答えを教えても、「はぁ、そうなんですか」としかならないんです。
僕らが名前が思い出せないってのは、これとはちょっと違います。
それは、シンボルテーブルのメモリアドレスが消えてるパターンです。
だから名前にたどり着けないんですよ。
でも、名前プロパティには名前自体はちゃんと入ってます。
だから、「えんぴつ」って言われたら、「そうや、えんぴつや」ってなるんです。
脳の中でもオブジェクト指向で言葉を管理してるって考えたら、Aさんの頭の中で起こってる問題がきれいに説明できます。
たとえば、Aさんの場合なら、オブジェクトの名前を記憶するニューロンが死んでるとかです。
喉元まで出て思い出せないタイプは、シンボルテーブルと名前プロパティをつなぐニューロンが死んでるとかです。
名前を記憶するニューロン自体は生きてるので、名前を言われると、「あっ、そうや」ってなるんです。
さて、次はBさん(アメリカ人男性50)です。
Bさんは、山鳥先生がアメリカにいたときに診た患者です。
その人に、「椅子はどれですか?」と聞くと、目の前の椅子を指差して、「もしかして、これが椅子ですか?」って言います。
「はい、そうですよ。なぜ、自信がないんですか?」って聞くと、
「いや、僕がいつも使ってる椅子とは違うから」って答えます。
Bさんは、普段自分が使ってる椅子が「椅子」だということは分かってるようです。
でも、それ以外にも椅子があるってことが腑に落ちないようです。
つまり、「椅子」っていう単語を固有名詞みたいに感じてるんです。
「椅子」は世界に一つしかないから、他にも椅子があると戸惑うって感じです。
一般名詞って概念が理解できないみたいなんです。
これもオブジェクト指向言語で考えてみます。
名前を理解できるってことは、オブジェクトには名前プロパティはあるようです。
オブジェクト指向言語の特徴の一つに継承って機能があります。
継承っていうのは、概念の親子関係を管理する機能です。
リンゴは果物概念の子概念で、果物概念の親概念は植物概念とかです。
どうも、Bさんの場合には、この機能が損傷してるみたいなんです。
さて、このBさん、ノートを持ち歩くようになりました。
いろんな言葉の意味を書いた自分専用の辞書として使っています。
ノートに何を書いてるかと言うと「座るのが椅子」「寝るのがベッド」とかって書いてあります。
Bさんに、「これは椅子ですか?」って質問すると、ノートをみて「座るのが椅子」って書いてあるのを確認して「椅子です」ってはっきりと答えるようになりました。
さて、これはどう解釈したらいいんでしょう?
これもコンピュータで考えると分かるんですよ。
さっきのリンゴクラスは動きがなかったので、今度は動きがあるプログラムで考えてみます。
一番簡単な例としてこんな数式を考えます。
Let a = 1 + 2;
これをコンピュータが読めるバイトコードに変換するとこうなります。
簡単に説明すると、これは上半分と下半分の二つに分けられます。
上半分は、ここです。
ここには「1」と「2」と変数の「a」が書いてあります。
下半分はこれです。
これはオペコードといって、コンピュータが実行する動きの部分です。
これを実行すると、上半分に書いてあった1と2を足して、その結果が変数「a」に格納されます。
さて、今は数式で説明しましたけど、これを一般化すると、メモリの上半分は、ある瞬間の世界の状態を表してると言えます。
たとえば椅子オブジェクトがあるとかです。
下半分は、そのオブジェクトを動かす手順ってわけです。
たとえば、上半分に椅子オブジェクトがあるとして、下半分を実行すると、自分が椅子に座るって動きになります。
Bさんがノートに書いてたのはこれと一緒です。
そして、これなら椅子の意味を理解できるわけです。
つまり、「椅子」とは、座るものだってことが理解できるわけです。
だから、目の前にあるのは「椅子」だって自信をもって言えるわけです。
さて、これらのことから何が分かるでしょう?
それは、言葉の意味を定義するのは二種類の方法があるということです。
一つは、オブジェクト指向言語の継承とか概念って機能で定義する方法です。
もう一つは、バイトコードの下の部分、つまり物の動作とか使い方で定義する方法です。
この二番目の方法、これはコンピュータの根本的な仕組みの部分です。
ここでいうコンピュータは、プログラムを一行ずつ順に実行するコンピュータです。
これをノイマン型コンピュータと言います。
発明したのは、コンピュータの生みの親の一人、ジョン・フォン・ノイマンです。
ノイマンの功績はハードウェアとソフトウェアを分離したことです。
それまでのコンピュータは一つの計算しかできなくてプログラムを変更するのが大変でした。
ノイマンは、それをプログラムを変更するだけで簡単に別の計算ができるように改造したんです。
プログラムは文で書かれるので、人間が簡単に読んだり書いたりできます。
人も文を読みますよね。
つまり、人間の脳もコンピュータも同じと言えそうですよね。
もっと言えば、人間の脳は、言葉ってプログラムを解釈して実行するノイマン型コンピュータといえそうです。
厳密には、脳の意識の部分がノイマン型コンピュータです。
意識がノイマン型コンピュータと考えられる理由は他にもあります。
たとえば志向性です。
意識の志向性というのは、意識は、常に、一つのことに向けられるというものです。
たとえば会話しながら本を読むことはできませんよね。
会話も本も文です。
文とはプログラムです。
ノイマン型コンピュータは同時に二つのプログラムは実行できません。
これは志向性があるといえます。
意識がなぜ志向性を持つのかも、意識はノイマン型コンピュータと考えたら説明がつきますよね。
僕は、言葉の意味をどうやって定義できるかってずっと考えていました。
最初は言語学の本を調べてました。
ソシュールとか、チョムスキーの生成文法とか、意味論ならレイコフの認知意味論とかです。
でも、どれもなんか定義になってないんですよ。
人文系の理論って、客観的に定義してるようで、心で無意識に処理してるものが紛れ込んでるんです。
無意識で処理してることって気付きにくいんですけど、コンピュータで実装しようとすると、すぐに分かるんです。
どうやって実装していいかわからないからです。
だから、言語学の理論はあんまり参考にならなかったんですよ。
それよりも参考になったのが、アラン・ケイの考えたオブジェクト指向言語やノイマンの考えたノイマン型コンピュータだったんです。
コンピュータで言葉の意味理解を定義したら、すべて納得できたんです。
この30年の脳科学ではほとんど解明されなかった心の仕組みが、コンピュータにあてはめたらきれいに解明できたんです。
それが本当に正しいのか確認するために、僕は、脳の本を読んでるわけです。
はい、今回はここまでです。
面白かったらチャンネル登録、高評価お願いしますね。
それから、良かったらこちらの本も読んでください。
それじゃぁ、次回も、おったのしみに!