知性誕生

知性誕生―石器から宇宙船までを生み出した驚異のシステムの起源

知性誕生―石器から宇宙船までを生み出した驚異のシステムの起源

最近の脳の研究の結果を元に、人間の知性のメカニズムを説明しようとする試みの本書。私もこういうネタはすきなのでちょこちょこニュースを見たりしているのですが、頭の中で考えていることを読み取ったりする技術(こわい!)や、頭で考えただけでロボットやコンピュータに命令を送ったりできる(すごい!)ところまで来ているらしいんですよね。でも、そもそも人間の脳って一体なんなのか、なんであんな柔らかそうな豆腐みたいなものが複雑な問題を考えたりできるのか。そのヒントをこの本の中で見つけることが出来ました。

面白いなあと思ったのは、人間を心的なプログラムに沿って行動する一種の機械だと見る視点です。私だけじゃなく、多くの人が「自分は自分の意思で行動している」と思ってる(でしょう?)だから、すべての行動を説明できるはず。「(冷蔵庫に食べ物がなくなったから)スーパーに行く」とか、「(そろそろ寒くなって来たから)あったかい服を買いに行く」とか。でも、時々その説明が出来ないことがある。私はよく部屋の鍵を開けるつもりで地下鉄の定期を出そうとしていることがあります。(逆に改札の前で鍵を出したり)やだーもーこれじゃないよ間違えた。この行動を主体的に見るとただ恥ずかしいだけですが、これを例えば地下鉄の防犯カメラから見たら一人だけ異なる振る舞いをしていると観察できる。本書はこの客観的に見た人間の行動、そしてそれを引き出す心的プログラムがどのように構築されるかを説明しようとしています。で、そういう視点(防犯カメラの視点)で見ると個々の人間の、目的を持った行動というものがある一連の命令の連なり(プログラム)として見えてくる。そうすると地下鉄で一斉に改札に向かう人の群れがそれぞれの自由意志とは関係のない制約で動いているように見えて来て、すごく面白いんですよね。例えば渡り鳥は群れで飛ぶ時には一匹を先頭にして広がるように並んで飛ぶと聞きます。これって別に「俺が先頭だ」っていうリーダーがいるのでもなくそうするらしいんですよね。自分の意思ではなく、何か別の制約、ルールがある。なんだかそういう風に思うと自分のことって半分しか知らないなあと思うんですよね。

で、その制約とはいったい何なのか。人間をそういう心的プログラムによって駆動する生物的機械だとすると、その機械が支配されているのはその機械のメカニズムそのもの、すなわち脳の機能ということになります。今日では技術も進んで脳の構造と機能がより詳細に解明されつつあります。その中でも脳の機能のモジュール化というのが興味深いですね。モジュールというのはそれだけで独立した部分というような意味ですが、脳の中にはそういうモジュールが多数存在する。音を聞くモジュール、ものを視るモジュール、記憶するモジュール、などなど。それらが単独で活動しているのではなく、常に連携しながら活動している。面白いのは、左右別々に異なる言葉が聞こえて来た時に、人はそれを理解できないということ。同じモジュールに多重の入力はできないけど、でも、音楽を聴きながら本を読むことはできる。まあ私は本を読んでる時に音楽を聞いたりはするけど、どっちか一方にしか集中できませんけどね。ちょっと話題が反れますが、少し前まで流行っていたAR(拡張現実)という技術があって、これは人間の視覚情報にさらに別の情報の層を乗せるという技術なんですね。SFネタとしてよく小説でも読んでいたので、こういうのを本当に現実世界に適応したらどうなるかなあと考えたんですが、やっぱり難しいんじゃないかと思うんですよ。例えば車のフロントグラスにリアルタイムで道路状況(北海道の冬道なんかブラックアイスバーンが怖いから滑りやすさとか)が表示されるといいと思うんですが、果たして人間の視覚機能がその膨大な情報処理に追いつけるのかな、と思うんですよね。それは同一モジュールに大きな入力をすることに他ならない。だったら、視覚と聴覚という別のモジュールへの分散した入力として、カーナビみたいに聴覚情報で補う方が効率的なのかなと思いました。(でもSFネタ的にはアイコンとか文字の視覚情報が画面いっぱいに出ている方がすきだけど)

でも、例えば「来週仕事で東京に出張する」という複雑な行動はどうやって起るのかという問題は、この単純なモジュールという考え方だけでは解決できないんですよね。それには「来週仕事で東京に出張する」モジュールが必要だし、来週以降そのモジュールは永遠に使用されないなんて脳の無駄遣いです。じゃあどうやってその行動を起こすのかというと、個々のモジュールから入力された情報をコード化(「それ」だとすぐに分かるように番号や印をつけておくこと)して、過去に記憶しておいたそれと同じあるいは似たコードを記憶のモジュールから引っ張り出してきて、それに結びついている最適な行動を呼び出している、らしんですね。そういえば確かに、直面したことのない問題に当たったりするとどうしていいかわからない(コードのストックがない)から、とりあえず試行錯誤(問題のコード化とそれに結びつく最適な行動を構築)したりしますよね。そうすると、別に「来週仕事で東京に出張する」モジュールなんて要らなくて、過去に大阪に出張した時のコードのストックがあればそれを当てはめて行動しても大きく外れた行動にはならない。
そしてこのコードのストックのことを、一般的には経験と言うんですね。ここですごく面白いのは、情報をコード化するということ。これってコンピュータにはちょっとできないことなんですよ。コンピュータは一度コードとして番号や印(例えばファイル名とか)をつけたもの(文字情報でも画像でも)は人間以上に上手に扱えるけれど、入力をコード化するのってすごく難しいんですよね。*1そのコード化の方法として本書で提示されているのが、認識の囲い地なんですね。脳は何でもかんでも精密に「これはこうだからこういうコード」という風に解釈しているのではなく、これは大事そうなものだから残しておく、というふうにかなりざっくり入力を削ぎ落として、大事なものだけで目の前の問題を構築しているらしいんですね。確かに料理してる時って、大きな目標であるカレーの為に、まずは目の前の野菜の皮をむくことに集中しますよね。視覚情報として醤油やごま油が目の前にあったとしても、カレーをつくるためにはそれらは大事ではないから、この情報は削ぎ落とされているわけです。
(隠し味に入れるなら別ですが)そうやって野菜の皮を剥くという行動があり、次にお肉の下ごしらえ(あ、逆か?)という行動が続き、その小さなコード化された行動の積み重ねとして、カレーを作るという大きな行動を構成しているんですね。
これを一般化すると、なるほど確かに旅行の計画とか人生設計とか目標を立てて行動することができそうだなあと思いました。

そうすると、人間が面白いのはこのコード化された行動のバリエーションの多様さだと思います。一つの問題に対して実に様々な個々の解があるのは、この小さなコードのストック(経験)の組み合わせがほとんど無限にあるからじゃないかな。そう考えると、生物機械として人間がプログラム的にこうも多彩に行動するのは不思議ですごく面白いなあと思いますね。

*1:デジカメの顔認識なんかで使われている機械学習という技術はこのコード化に対するアプローチの一つでまったく出来ないわけでもない