❦
説明が複雑であるほど、信念の空間の中でそれを見つけ出すだけでも、多くの証拠が必要になる。(伝統的な合理性では、しばしば「命題が複雑であるほど、それを支持するために多くの証拠が必要だ」という、誤解を招く言い方をする。)説明の複雑さはどう測れるのだろうか。必要な証拠の量は、どう決められるのだろうか。
オッカムの剃刀は、よく「事実に合う最も単純な説明」と表現される。ロバート・ハインラインは、それなら最も単純な説明は「あの通りに住む女は魔女だ。あの女がやったのだ」だと応じた。
英語の文の長さは「複雑さ」を測るよい方法ではない、とわかる。そして事実を単に排除しないだけで「適合する」のでは不十分だ。
英語の文の長さが複雑さの尺度としてまずいのは、正確にはなぜか。文を口にするとき、聞き手も共有している概念のラベルを使っているからだ。受け手は、その複雑さをすでに自分の中に蓄えている。ハインラインの文全体を「Tldtsiawsdi!」と略し、説明全体が一語で伝わるようにしたとしよう。さらに「Fnord!」のような、適当な短いラベルをつけたらどうだろう。これで複雑さは減るだろうか。減らない。「Tldtsiawsdi!」は「あの通りに住む女は魔女だ。あの女がやったのだ」を意味すると、事前に聞き手に教えなければならないからだ。「魔女」そのものも、並外れた主張をいくつかまとめたラベルである。意味を皆が知っているからといって、その概念が単純だとは限らない。
巨大な電気の閃光が空から降りて何かに当たると、北欧の部族の人々は、「非常に強力な行為者が怒って、雷を投げたのかもしれない」と言う。人間の脳は、知られている宇宙の中で最も複雑な構造物だ。怒りが単純に思えるなら、それは、その感情を実現している神経回路のすべてが見えていないからだ。(ユーモアの感覚がない異星種に、なぜサタデー・ナイト・ライブは面白いのか説明しようとするところを想像してほしい。だが優越感は持たないように。あなた自身にはフノードの感覚がないのだから。)雷の行為者トールを仮定した人々は、怒りの複雑さを、そして知性そのものの複雑さを、見過ごしていた。
人間にとっては、マクスウェル方程式を説明するほうが、トールを説明するよりはるかに時間がかかる。怒りについて生まれつき備わっている語彙と同じものが、微積分についても備わっているわけではない。電気の説明に取りかかる前に、使う言語、その言語の背後にある言語、そして数学という概念そのものを説明しなければならない。
それでも、何らかの意味では、マクスウェル方程式のほうが、人間の脳や雷の行為者トールより単純であるはずだと思える。
実際、そうなのだ。トールのように感情を持つ知的な心を模擬するプログラムを書くより、マクスウェル方程式を模擬するプログラムを書くほうが、実は途方もなく簡単なのである。
ソロモノフ帰納法の形式体系では、「記述の複雑さ」を、その記述を出力する最短のコンピュータープログラムの長さで測る。何かをする「最短のプログラム」を論じるには、プログラムの空間を指定する必要があり、そのためには言語とインタープリターが必要だ。ソロモノフ帰納法はチューリング機械、より正確にはチューリング機械を指定するビット列を使う。チューリング機械が気に入らなかったら? 好きなプログラミング言語で渡したコードを解釈する、自分用の万能チューリング機械を設計するのに、定数分の複雑さのペナルティーがかかるだけだ。異なる帰納の形式体系同士のペナルティーは、最悪でも互いに定数倍であり、その形式体系を解釈する汎用インタープリターの大きさに対応する。
私のつつましい意見では、よりよい形のソロモノフ帰納法では、プログラムは決定論的な予測を出すのではなく、文字列に確率を割り当てる。たとえば、公平なコインを説明するには、長さNの2N通りの列すべてに、等しい確率を割り当てるプログラムを書けばよい。これが、観察データに適合するためのソロモノフ帰納法の方法だ。観察データに高い確率を割り当てるほど、そのプログラムはデータによく適合する。確率の合計は1でなければならないので、ある可能性によく「適合する」には、他の可能性から確率質量を奪わなければならず、その分そちらへの適合は悪くなる。表にも100%、裏にも100%を割り当てる、超公平なコインは存在しない。
データへの適合と、プログラムの複雑さの間の兼ね合いを、どう取ればよいのだろう。複雑さへのペナルティーを無視して、適合だけを考えれば、データを決定論的に予測すると言い張り、それに100%の確率を割り当てるプログラムを、いつも好むことになる。コインがhtthhtと出たなら、コインはhtthhtを出すよう細工されていたとするプログラムは、コインが公平だとするプログラムより64倍よくデータに適合する。逆に適合を無視して複雑さだけを考えれば、「公平なコイン」という仮説は、いつも他のどの仮説よりも単純に見える。コインがhthhthhhthhhhthhhhht……と出ても、だ。実際、公平なコインのほうが単純であり、このデータへの適合も、コインを20回投げた他のどの列への適合ともまったく同じだ。それ以上でも以下でもない。だが私たちには、それほど複雑ではなさそうで、データにははるかによく適合する、別の仮説が見える。
プログラムに二進数1ビット分の情報を余分に保存させれば、可能性の空間を半分に絞り、残った空間のすべての点に2倍の確率を割り当てられる。これは、プログラムの複雑さ1ビットにつき、適合の「2倍の改善」を少なくとも相殺するだけの代償を課すべきだと示唆する。htthhtという結果を明示的に保存するプログラムを作ろうとするなら、複雑さで失う6ビットは、適合が64倍よくなることで得られるもっともらしさを、すべて打ち消さなければならない。そうでなければ、遅かれ早かれ、公平なコインはすべて細工されていると結論することになる。
プログラムが賢く働き、データを圧縮しているのでなければ、データからプログラムの記述へ1ビット移すだけで、得をしてはいけない。
ソロモノフ帰納法は、許容されるすべてのプログラムについて足し合わせることで、列を予測する。どんなプログラムでも許せば、ソロモノフ帰納法は計算不能になる。各プログラムには、コード長をビットで数えた値を指数とする(1/2)のべき乗の事前確率が与えられ、さらに、これまでに観察した全データへの適合によって重みづけされる。こうして、将来のビットを予測できる、専門家たちの重み付き混合が得られる。
最小メッセージ長という形式体系は、ソロモノフ帰納法とほぼ同等だ。まず符号を記述する文字列を送り、次にその符号でデータを記述する文字列を送る。メッセージの合計を最短にする説明が最善である。許容される符号の集合をプログラムの空間、符号を記述する言語を万能機械と考えれば、最小メッセージ長はソロモノフ帰納法とほぼ同等になる。(ほぼ、なのは、すべてのプログラムについて足し合わせるのではなく、最短のプログラムを選ぶからだ。)
これで、0101010101という列のパターンを「あの通りに住む女は魔女だ。あの女がやったのだ」で説明することの問題が、はっきりわかる。友人へメッセージを送り、自分の観察した列を説明しようとするなら、こう言わなければならない。「あの通りに住む女は魔女だ。あの女が0101010101という列を出させた」。魔女だという告発によって、メッセージの残りを短くすることはできない。その魔術が生んだデータを、やはり細部まで全部記述する必要がある。
魔術は、観察を定性的に許すという意味では、観察に適合するかもしれない。だがそれは、「フロギストン!」と言うのと同じで、魔術なら何でも許すからだ。だから「魔女」と言ったあとも、観察したデータをすべて細部まで記述しなければならない。魔術についてのメッセージを送っても、観察内容を記述するメッセージの全長を圧縮したことにはならない。無駄な前置きを加えて、全長を増やしただけだ。
本当のごまかしは、「魔女がそれをやった」の「それ」に隠れていた。魔女が何をやったというのか。
もちろん、後知恵バイアス、アンカリング、偽物の説明、見せかけの因果関係、肯定バイアス、動機に左右される認知のおかげで、女が魔女なら、当然コインを0101010101と出させるはずだと、あまりにも明白に思えるかもしれない。だが、その話にはもうすぐ進むことにしよう……。