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 の定理が悪さをします。そう「正しさ」を検証するすべは無く、運が良くても「あなたは間違っている」事が判る程度なのです。今回、こんなに長い時間が経由してから「あなたを感じていたい」は 森高千里の歌ではない、という事を発見した私のように…

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

いけない!
一月も更新をサボってしまった。

Ottawa Linux Symposium 2007 とか、帰ってきたらお客様の所での障害がえらいことになっているとか、いくつか要素が固まって、落ち着いて考える暇がなくなってた…というのはいいわけだな。

さて、話を1ヶ月前に戻して。

ちょっとした例を考えよう。

「1から100までの数を全部足した合計を求めなさい」

という問題があったとする。これを解いて欲しい。

一応答を先に行っておくと 答は 5050 なのだが、重要なのは 5050 という数字ではない。
どうやってその 5050 という答にたどり着いたのか、だ。


まずもって、1+2+3+4+....とやった人はそんなに多くはいないだろう。いないだろうが、いるかもしれない。その人は次の質問に答えて欲しい:
問1) もっと早く解く方法があったかもしれないのに、真面目に 1から 100までを足すことに腐心した理由は何?
多くの人は 『1から nまでの和は n*(n+1)/2 で求められる』という公式を使ったと思う。確か中学ぐらいで教わったはずだ。その人は次の質問に答えて欲しい:
問2) その中学のときに教わった公式は、どうやって思い出しましたか?
少なくともこの問題を読むまではこの公式を思い出してなどいなかったはずです。と言うことはこの問題を読んでから、何らかの思考が働いて、この公式を思い出したわけですよね?その思考パスを説明しなさい、という意味です。
中には「一から n*(n+1)/2 の公式を求めた」あるいは、「1+2+3+4+ ....+100 という式と、100+99+98+....+1 という式を縦に並べて、両方足すと 101 が 100個になる。2回同じ式を足しているから2で割った」というやり方をしている人がいるかもしれません。多分、このパターンが一番頭がいいんでしょうが、そういう人は多分この質問の答が難しいことも知っていると思います:
問3) 問題を読んでから、あなたがそのやり方に到着するまでの思考を他人が判るように説明しなさい。

問1から問3までは全て、同じ事を聞いています。
あなたの頭はどのように動作しているのですか? というのが問いです。

もし、この問いの真の答を世の中の平均より少し優れた人から聞くことができたら、それだけで世界中の人々の知性は少しだけ向上するはずです。最高の天才から答が得られたら、世界中の人々の知性は相当に向上するでしょう。芸術家からこの答が得られたなら、芸術のバリエーションは一気に広がるに違いありません。

いや、もっと身近な例でも。親が子供に「ものの考え方」を直接伝達できたなら、子供は学習にかかる手間を相当省けるでしょうし、子供の学力の最低ラインは親によって保証されている、と考えてもいいでしょう。

しかし、実際にはこのようなことは一度も起こっていません。
「考え方」の本質を教わって全人類のレベルが一斉にあがったことなど過去に一度もありません。
天才によるそのような貢献もありません。
芸術家は、自分がどうしてその芸術作品に行き着いたのか、ろくに説明できたためしがありません。

そして、どんな人間も生まれてからこの方、1から物事を学習し、考え方も自分で開発する必要があったために、「鳶が鷹を産む」のの何倍もの確率で 鷹が鳶を生む という状態に陥っています。


そして何よりも悲惨なことに、「考え方」を表現する方法が無いこと自体を理解しない「考え」の持ち主を生み出してしまいます。


さ、真の謎は2つです。

1) 考え方を表現できないのはなぜか?
当然理由があるはずです。

2) 考え方を伝えられないのはなぜか?
プラナリアのような下等生物は、ぶった切ってもそれぞれが個体になって
生き続けることができますが、その際に切る前の個体が持っていた記憶をある程度
継承するそうです。

また、プラナリアに「光と電撃」を条件反射として学習させた後、そのプラナリアをぶつ切りにして
別のプラナリアに食べさせると、「学習したプラナリアを食べたプラナリア」も「光」に反応する…
つまり条件反射が「伝わる」そうです。

ということは、頭の中身を伝える、という機能は少なくともプロトタイプは存在していることに
なります。なぜ、進化の過程でそれが人間に継承されなかったのか? 何か都合が悪いのか?
それともその機能を持った生物が進化するにはもっと時間が必要なのか?
これも楽しそうなテーマです。

というのを楽しみに、問1-3の内、自分が該当するものを解いてみてください。