関数脳の作り方

今回の結論: 関数脳を作りたいなら、SF(特にイーガンと山本弘がおすすめ)を読みながら、関数型言語をいじろう。


以下の要約: 人が感じ取れる限りの世の中の全ては、写像(mapping)だった。だから全ては写像関数。それに気付いたら「写像を簡単には扱えない(または扱いにくい)プログラミング言語」は遠ざけておきたくなる。かも。


以下の文章は、非常に回りくどいです。
あとで書き直したいところ。


人間(の心)が現実世界の状態を知るには、五感に頼るしかない。
視覚、聴覚、嗅覚、味覚、触覚。
だけれども、目に入ってくる光は、そのままでは乱雑な光のまたたきにすぎない。
耳に入ってくる音は空気の振動でしかない。
鼻に入ってくる匂いは微細な粒子にすぎない。
指先が触れる物の感覚は、外からは神経が反応している以上の事は分からない。
舌で感じる食べ物の味も、それに類するものだろう、多分。


こうして、言葉にしてみれば、「だから何?」と言われるような、当たり前の事ですが。
この事は、例えばロボットのような、現実世界を認識するようなシステムを作ろうとした事のある人なら、痛感できる事だと思います。
目に入ってくる光は二次元情報にマッピングできるとしても、それを素早く「ある物体を特定方向から見た姿」だと認識するには、どうすればいい?
音の周波数はデータ化できるとしても、そこから再生される「音楽」を解釈するにはどうすればいい?
等々。
だけど、人間は、目で見れば物がそこにある事を「感じとれ」るし、音楽を聴いて「感動し」たりするし、部屋中がニンニク臭い事を「感じ」るし、猫をなでればフサフサで暖かい事を「感じ」る。
しかし、ロボットは、五感(の代替品)を使って、同じ量の情報を与えられたとしても、ここまで「感じ」てはいない。
この違いは何なのか?


もう少し分かりやすい例を出します。
目の前に椅子が置いてあります。
あなたは後ろを向きます。そして後ろを見てはいけません。
さて、あなたの後ろに椅子はあるでしょうか?
……まあ、通常はありますね。
では、あなたは、「あなたの後ろに椅子がある」事を感じ取れるでしょうか?
これへの答えは、「感じる」の定義によって変わってくると思いますが、とりあえず自分自身の後ろに椅子がある状況を思い浮かべるぐらいは誰でもできると思います。とりあえずは、それをもって「感じる」という事にします。つまり、言い換えると「あなたの後ろに椅子があると思う?」という事です。
では、あなたはこのまま椅子に座ろうとします。
だけれども、実は、他の誰かがイタズラで椅子をずらしてしまっていて、あなたは転んでしまいました。
つまり、あなたが「感じて」いた世界の状態と、実際の世界の状態にズレがあった訳です。
この事は、次のように要約できると思います。

  • 現実世界は、大体は自分が「感じて」いる通りだが、時々、そうでない事もある。

しかしこの事は、次のような事実の一面です。

  • 自分が毎日生活し、暮らしていて、色々と「感じ」たりしている「この世界」は、「現実世界」とは完全一致しない。
  • つまり、「自分の生きている世界」と「現実世界」は、似ている部分はあるけれど、存在としては完全に独立している。


「何を馬鹿な事を」とか思われそうですが、もう少しつきあってください。
例えば、今、あなたは、あなたの居る部屋を「確かに存在している」と「感じて」います。
ところで、あなたの居る部屋の、今あなたの向いている反対方向は見えていませんよね?(鏡とか写り込みとかは、ちょっと無しでお願いします)
にも関わらず、あなたは、部屋の全体像を「感じて」いると思います。
少なくとも、見えていない部分が全く存在していない状態を感じたりはしていないと思います。
勿論、そんな状態は通常は有り得ないですが、論理的には、さっきの椅子の例と同じ事が言えます。
つまり、自分の感覚とは裏腹に、実はベッドの下に誰か潜んでいたり、隠しておいた筈のエロ本が勝手に捨てられて存在しなくなっている可能性もある訳です。


これを逆に考えると、以下のような事も言えると思います。

  • 現実は非情なものですが、人の心の持ちようによっては、少しは楽になるかも。

これを言い換えると、以下のようになります。重要なので括弧付き。
『現実世界はただ一つですが、その現実世界を見る人によって、人それぞれの世界の姿があり、誰であろうと、その人自身が持っている世界以外を感じ取る事はできない(現実世界も例外ではない)。』
鬱な人は、きっと鬱な世界に住んでいる事でしょう。
楽観的な人は、きっと楽観的な世界に住んでいる事でしょう。
(ちなみに、この考え方だと簡単に唯我論がどこから来るのか理解できます。どうでもいい事ですが。)


なんだか騙されているような気がしますか?
では、くどいですが、もう少し説明します。
あなたの目の前にパソコンがあるとします。
では、あなたはどうやって、「パソコンの存在」を「感じ」ているんでしょう?
勿論、「目で見て」でしょうが、あなたが後ろを向いても、「パソコンの存在」が消えたりはしませんよね?
さて、現実世界は五感でしか感じ取れない筈のに、パソコン(仮)は後ろにある。
これに理由を付けるなら「さっきまで、そこにあったから」辺りになるでしょうか。つまり、記憶由来という事です。
要するに、このパソコン(仮)は、現実世界にあるパソコンではなく、自分の記憶の中にある、「現実世界のパソコン」の影、という事になります。
ですが、実際に目で見ている時と、後ろにある時で、特に差があるようには感じられません。同一の物のように感じられます。
もし、自分の感覚通り、この二つが同一の物だとするなら、「確かに自分の目で見ている」と思っている時のパソコンも、実は、パソコン(仮)である、と考えるのが自然でしょう。
これを、あらゆる物に延長していくと、「今、自分が暮らしている『この世界』は、現実物質世界の写像世界だ」という結論になります。きっと。


まだ納得できませんか?
目に入る光が、どうしてパソコンや部屋の風景に見えるのでしょう?
空気の振動が、どうして音楽に聴こえるのでしょう?
現実世界では確かに光がまたたき、空気は振動している筈ですが、その意味の解釈は、人の脳味噌の内部で起こっている筈です。
だから、ロボットは、それを認識するのが難しい。ロボットとまで行かなくとも、動物も人の音楽を人並みには理解できない(何か音がしてる、ぐらいは理解できても)。
現実物質世界では、ディスプレイの発光やスピーカーの振動は確かに存在していますが、ディスプレイに表示される風景や音楽は存在していないも同然です。
それらは、(脳や神経が何らかのコンバートを行った結果として)それを見る/聴く人の内部に生成されるものという事です。
そして、そういう風に、映像や音楽が再生されて「感じる」事のできる世界にこそ、私達(の意識)は暮らしている、という事なのです。
少なくとも、私達の意識は現実物質世界では暮らしてはいません。身体はともかくとして。


少しまとめます。

  • 現実物質世界は一つだが、それを観測する人(人以外でも実はok)の数だけ、写像世界が存在する。それらはどれも現実物質世界を元にしているが、不完全であったりマッピングミスがあったりする。
  • 現実物質世界へのアクセスは五感のみが可能。しかし写像世界へは、五感に頼らない(ハッシュテーブル的な)アクセスが可能。
  • 五感は、現実物質世界→写像世界への情報更新ソースに特化しており、写像世界内では五感を意識する事は無い、普段は(凄く眩しいとか、そういう状況を除いて)。
  • 多くの人は、自分の持つ写像世界と現実物質世界を混同している(が、大抵の場面では別に混同していても別に問題は無い)。
  • それぞれの人の写像世界同士は平行的に存在しているので、それらが何らかの接触を行うには、現実物質世界を通して、何らかのプロトコルを用いて通信を行う以外の手段は無い。通常は、自然言語ジェスチャーによる会話とか本とか、そんなの。


……と、ここまで述べた内容に、結構な歳月を生きてきた後にやっと気付きました(人によってはとっくの昔に気付いている方も多いでしょう)。
とにかく、『この世界』も、人の心も、「写像」として機能しているのです。
写像」を英語で言うと、map。つまり、関数型言語によく出てくるアレです。
だから、その辺を大事にしたいと思うなら、関数型言語やってみませんか?
……というのが、今回の結論です。かなり乱暴な部分もありますが。


ちなみに、リンク先で言われている「状態」は、「写像」に含める事ができるので、「写像」があれば「状態」は無くても何とかなります。λλλ。