2007年7月24日

「考え方」と「インターネットの実装のされ方」: その3

「あなーたをー、感じてーいーたーいー」

しまった、これは坂井泉水さんの歌だったのか…。どうやら森高千里とZARDが一部混ざっているらしい…。



まずはこれを書いている段階で、もらった答を一つ紹介しましょう。
匿名 さんは書きました...

問3の答え:
小学校時代に読んだ本の中に書かれていたガウスの逸話を思い出して、そこに書かれていた解法をなぞりました。
「なぜ思い出したか」に対しては「1から100までの数」「合計」という語から私の脳において連想記憶が働いたのだと思います。

ふむ、微妙な答ですね。

入力を「1から100までの数」と「合計」を入れると、black box があってそれが「連想記憶」というシステムで解き方を引き出してくれたわけですか。

この答には4つのさらなる質問が発生します。

1) その「連想記憶」という black box はどういう実装になっているのでしょうか?

2) その「連想記憶」というメカニズムを「使おう」という意思判断はどのようにして実装されているのでしょう?

3) その検索されてきた「解き方」が正しい(つまり間違った答を引っ張ってきたのではない)
かどうかはどうやって判断したのでしょうか? また、計算結果はどのようにして検算したのでしょう?

4) そもそも、あなたの頭の中に「連想記憶」システムがあると言うことはどうやって検証したの?

意地悪? そうかもしれない。でも「考える」という動作を分解していくと必ずこうなります。


1つのブラックボックスは、かならず「入力」と「出力」を持ちます。ブラックボックスを分解しようとすると、2つ以上の「入力と出力を持つブラックボックス」の組み合わせが出てきます。しかし、「最小単位」が判らない限り、「ブラックボックス」はどこまでもブラックボックスに分解できてしまうという性質を持ちます。しかも、あるところにブラックボックスを想定すると、そのブラックボックスを使おうとしたメカニズムも必要になります。

「電子回路ならトランジスタに帰着するじゃないか」というのは原因と結果を取り違えています。「トランジスタに帰着する」のではなく、

「トランジスタを使って、論理回路の最小セットを作り上げ、
それで十分であることを数学的に証明した人がいる」

のです。その上で、論理回路の組み合わせを考えて、等価な出力を得るために必要なトランジスタ数を減らしていく、という努力(時には、トランジスタ数を増やして出力を得るまでの時間を短くする、という努力だったりもしますが)の結果が、今の電子回路なのに過ぎません。電子回路はあくまでも演繹によってもたらされたものであって、帰納的分解法の結果ではないのです。

ブラックボックスをトップダウンで分解していくと、Atomic 回路を定義しない限り、どこかで nand 回路になり、nand 回路は not 回路と and 回路になり、not 回路も and 回路も nand 回路で表現でき…と、どこまでも分解できます。意味の無い分解ではありますが、どこまでも分解できるのです。従って、ブラックボックスモデルは、回答へ導いてくれるわけではないのです。


きちんと証明できるわけではありませんが、思考というのは言葉で説明できる中間状態その中間状態を繋ぐ、言葉で説明できないネットワークでできているのだ、と言うことができます。我々が共有できるのは 言葉で説明できる中間状態 だけであって、中間状態を繋ぐ言葉では説明できないネットワーク は説明もできなければ共有もできないのです。

「どうやってその結論に至ったのですか?」

という質問に対して、「中間状態の羅列」で答えてくる人しかいない事がこのモデルの一面の正しさを物語っています。


しかし、「考え方」というのは、実は 言葉で説明できる中間状態 のことではなく、ネットワークの方です。

中間状態 A から中間状態 B へと遷移するのと同じように、中間状態 A' から 中間状態 B' へと遷移することで結論Z'へと到着する、という考え方のパターンは「中間状態」で説明できるものではありません。逆にネットワーク的には中間状態 A → B → C →… →W→X→Y→Z という経由さえたどっていれば、各矢印の部分がどのように作られていようと「等価である」とする以外ありません。

しかし、それではたまに存在する天才がいきなり A → Z へとジャンプしてみせる場合の考え方を説明することはできません。この人が、BからYまでのどこを経由したのかすら、知ることはできないのです。


これは The Internet におけるパケットの伝達と似ています。IP パケットは発信源からスタートして、複数の router を経由して目的地に到着します。router がいくつあって、それぞれがどういう IP アドレスなのかは、traceroute などの技術を使うと追跡することが(ある程度は)可能です。

しかし、発信源から router、router から router、router から目的地へと、パケットがどのように伝達されるべきなのか、Internet は定義しません。Ethernet だろうが Token Ring だろうが、伝書鳩だろうが、何であっても構わないのです。まさに Internet は「network が存在する」事を大前提として、それらを繋ぐ方法を提供しているのであって、

networkを実装する方法

を提供しているのではありません。しかし、「このパケットはどうやってここからそちらに届くの?」という質問が本当に尋ねているのは、network の実装方法であって、Internet が network をどうやって繋いでいるのか、ではありません。それは似て非なる問題をミスリードして解いているのに過ぎない。


network が非現実的な性能しか出せないなら Internet に価値が無いのと同様、いくら中間状態を説明できても、その中間状態同士をどうやって繋ぐのか判らないのでは、「考え方」は学習できません。いくら中間状態を教えても、それだけでだと

運よく中間状態同士を繋げた人だけ

しか考え方は判らないのです。その意味において、考え方は「見せる」ことはできません。


いや、それだけではありません。中間状態同士の接続が正しいかどうか検証できないのですから、「実行してみることなしに」検証することもできません。しかも実行してみるとなると、turing の定理が悪さをします。そう「正しさ」を検証するすべは無く、運が良くても「あなたは間違っている」事が判る程度なのです。今回、こんなに長い時間が経由してから「あなたを感じていたい」は 森高千里の歌ではない、という事を発見した私のように…