❦
ものの空間は、ずいぶん巨大な空間だと思うかもしれない。現実よりもはるかに大きい。現実には実在するものしか含まれないが、ものの空間には、存在しうるものがすべて含まれるからだ。
実際には、私は、密度・体積・質量のように相関する属性も含め、ありうるすべての属性に次元を持たせるよう、ものの空間を「定義」した。そのため、定義が曖昧すぎて、大きさと呼べるものがないかもしれない。だが、それでもものの空間を思い描けることは重要だ。スズメの群れを見て、ものの空間にある点の集まりではなく、羽ばたいて鳴くものの雲しか見えないなら、その群れを本当に理解しているとは言えないだろう。
しかし、ものの空間がどれほど広大でも、概念空間の大きさには足元にも及ばない。
機械学習における「概念」は、事例を含めるか除くかを決める規則だ。{2:+, 3:-, 14:+, 23:-, 8:+, 9:-}というデータを見れば、概念は「偶数」だろうと推測するかもしれない。予想どおり、データから概念を学ぶ方法については膨大な文献がある。無作為な事例が与えられる場合、選ばれた事例が与えられる場合、分類に誤りがありうる場合、そして最も重要なのが、可能な規則の空間が異なる場合である。
たとえば、「テニスをするのによい日」という概念を学びたいとしよう。日が持ちうる属性は、
| 空模様: | {晴れ, 曇り, 雨} |
| 気温: | {暖かい, 寒い} |
| 湿度: | {通常, 高い} |
| 風: | {強い, 弱い}. |
そして、次のデータが与えられる。+は概念に当てはまる正の事例、−は負に分類された事例を示す。
| + | 空模様: 晴れ; | 気温: 暖かい; |
| 湿度: 高い; | 風: 強い. | |
| − | 空模様: 雨; | 気温: 寒い; |
| 湿度: 高い; | 風: 強い. | |
| + | 空模様: 晴れ; | 気温: 暖かい; |
| 湿度: 高い; | 風: 弱い. |
アルゴリズムはここから何を推論すべきだろうか?
機械学習器は、このデータに合う概念の一つを、次のように表せる。
{空模様: ?; 気温: 暖かい; 湿度: 高い; 風: ?}.
この形式では、概念が事例を受け入れるか拒むかを決めるために、要素ごとに比較する。?は何でも受け入れるが、具体的な値は、その値だけを受け入れる。
つまり、上の概念は、気温 = 暖かいかつ湿度 = 高いという日だけを受け入れる。一方、空模様と風は、どの値でもよい。これは、これまでのデータの正の分類にも負の分類にも合う。ただし、合う概念はこれだけではない。
上の概念表現は、次のように簡略化もできる。
{?, 暖かい, 高い, ?}.
詳しくは立ち入らないが、古典的なアルゴリズムはこうなる。
- データに合う最も一般的な仮説の集合を保持する。事実に合う範囲で、できるだけ多くの事例を正に分類する仮説だ。
- データに合う最も限定的な仮説の集合も、別に保持する。事実に合う範囲で、できるだけ多くの事例を負に分類する仮説だ。
- 新しい負の事例を見るたびに、最も一般的な仮説の条件をすべて、必要最小限だけ厳しくする。新しい集合が、事実に合いながら、また可能なかぎり一般的になるようにする。
- 新しい正の事例を見るたびに、最も限定的な仮説の条件をすべて、必要最小限だけ緩める。新しい集合が、事実に合いながら、また可能なかぎり限定的になるようにする。
- 仮説が一つだけになるまで続ける。対象の概念がそもそも仮説空間に含まれていたなら、これが答えとなる。
上の場合、最も一般的な仮説の集合は、
{{?, 暖かい, ?, ?},{晴れ, ?, ?, ?}},
となり、最も限定的な仮説の集合には、{晴れ, 暖かい, 高い, ?}という要素が一つだけ含まれる。
データに合うほかの概念はすべて、最も一般的な仮説のどれかより厳密に限定的であり、最も限定的な仮説より厳密に一般的となる。
(詳しくは、この例のもとにしたトム・ミッチェルの『Machine Learning』を勧める。1)
さて、上の形式では、ありうるすべての概念を表せないことに気づくかもしれない。たとえば、「晴れているか、気温が暖かいときにテニスをする」。これはデータに合うが、上で定義した概念表現には、この規則を記述する四つ組の値はない。
明らかに、この学習器はそれほど汎用的ではない。最大限柔軟に学べるよう、すべての可能な概念を表せるようにしてはどうか?
日は四つの変数からなる。一つは3種類の値を取り、残り三つは2種類の値を取る。したがって、出会いうる日は3 × 2 × 2 × 2 = 24通りだ。
ここで示した概念の表現形式では、変数にこれらの値のどれかを要求するか、値を指定しないでおける。だから、この表現には4 × 3 × 3 × 3 = 108個の概念がある。最も一般的な仮説と最も限定的な仮説を使うアルゴリズムを動かすには、「どんな事例も決して正に分類しない」という最も限定的な仮説から始める必要がある。それを加えると、概念は合計109個になる。
可能な日より、可能な概念のほうが多いのは怪しいだろうか? そんなことはない。結局、概念は日の集まりとみなせる。正に分類する日の集合、あるいは同型な表現として、負に分類する日の集合とみなせるのだ。
したがって、日を分類するすべての可能な概念の空間は、日のすべての可能な部分集合からなる集合であり、その大きさは224 = 16,777,216となる。
この完全な空間には、これまで論じたすべての概念が含まれる。だが、「{晴れ, 暖かい, 高い, 強い}と{晴れ, 暖かい, 高い, 弱い}だけを正に分類し、残りはすべて拒む」とか、「{雨, 寒い, 高い, 強い}だけを負に分類し、残りはすべて受け入れる」といった概念も含む。何を許し、何を許さないかの一覧でしか表せず、簡潔な表現を持たない概念も含まれる。
これが、「完全に汎用的な」帰納学習器を作ろうとすることの問題だ。事例空間のすべての可能な事例を見るまで、概念を学べない。
日に、水の温度や明日の予報など、もっと属性を加えれば、可能な日の数は属性の数に対して指数関数的に増える。だが、制限された概念空間なら、これは問題ではない。大きな空間でも、対数個程度の事例を使って絞り込めるからだ。
日に水: {暖かい, 冷たい}という属性を加えたとしよう。可能な日は48通り、概念は325個になる。観察する日は通常、その時点でありそうな概念のおよそ半分から正に、残り半分から負に分類されるとする。すると、その事例の実際の分類を知れば、両立する概念の空間を半分にできる。だから、325個の可能な概念を一つに絞るには、わずか9事例で済むかもしれない(29 = 512)。
日に二値の属性が40個あっても、可能な概念を一つに絞るには、扱える量のデータで済むはずだ。各事例が残った概念の半分から正に分類されるなら、64事例である。もちろん、実際の規則がそもそも表現できるものだと仮定してのことだ!
すべての可能性を考えたいなら、まあ、頑張ってほしい。すべての可能な概念の空間は、属性の数に対して超指数的に増える。
二値の属性が40個あるデータを扱うころには、可能な事例は一兆を超える。だが、可能な概念は、2の一兆乗を超える。この超指数的な概念空間を絞り込み、何が含まれ、何が除かれるかを言えるようになるには、一兆を超える事例を見なければならない。実際、すべての可能な事例を見る必要がある。
二値の属性が40個だけで、こうなるのだ。40ビット、つまり5バイトを、単に「はい」「いいえ」に分類するだけだ。40ビットからは240の可能な事例が生じ、それらを正または負に分類する概念は2240個となる。
だから、この現実世界では、物体の記述に5バイト以上かかり、しかも一兆もの事例は手に入らず、しかも訓練データには雑音があるので、きわめて規則的な概念についてしか、考えさえしない。人間の心も、観測可能な宇宙全体でさえも、ほかの仮説すべてを考慮するには、まるで足りない。
この観点から見ると、学習は帰納バイアスに依存しているだけではない。そのほとんどすべてが帰納バイアスなのだ。証拠によって除外される概念の数と、先験的に除外される数を比べれば。
だが、これが言葉の適切な使い方とどう関係するのか、と尋ねるかもしれない。
これこそ、言葉が外延だけでなく内包も持つ理由のすべてなのだ。
前のエッセイで、私はこう結論した。
現実をその節目で切り分けるには、異例に高い確率密度が集中する領域を、境界で囲めばよい。
この、少し手直しした主張では、重要な条件をわざと省いた。今までは説明できなかったからだ。もっとよい言い方は、こうなる。
現実をその節目で切り分けるには、ものの空間で、異例に高い確率密度が集中する領域を、単純な境界で囲めばよい。
そうでなければ、ものの空間を恣意的に区割りするだけになる。観察した事例を集める、ひどく奇妙で、つながってもいない境界を作るのだ。その事例は、観察そのものより短いメッセージでは記述できない。そして、「これが今まで見たものであり、今後ももっと見ると予想するものだ」と言うことになる。
現実世界では、分子より上のレベルで、何かがまったく同じに繰り返されることはない。ソクラテスの形は、ドクニンジンに弱かったほかの人間たちとよく似ているが、まったく同じ形ではない。だから、ソクラテスは「人間」だという推測は、ものの空間にある人間の集まりを、単純な境界で囲むことに依存している。「[5メガバイトの形状記述1]とまったく同じ形をして[ほかの特徴多数]を持つもの、または[5メガバイトの形状記述2]とまったく同じ形をして[ほかの特徴多数]を持つもの、……は人間だ」というのではない。
経験の周りに単純な境界を引かなければ、それを使って推論できない。だから、芸術であるもの、ないものの長い一覧を指さすだけでなく、「何らかの複雑な感情を、それを起こすこと自体を目的として起こそうとするもの」のような内包的定義で、「芸術」を記述しようとする。
実のところ、上の「現実をその節目で切り分ける方法」の主張には、鶏と卵のようなところがある。すでに多少切り分けていなければ、実際の観察の密度は評価できない。そして確率分布は、境界を引くことから生まれるのであって、逆ではない。確率分布をすでに持っていたなら、推論に必要なものはすべてあるのだから、なぜわざわざ境界を引くのか?
ここから、「言葉は好きなように定義できる」という主張を疑う、さらに別の――そう、また別の――理由が見えてくる。概念空間の超指数的な大きさを考えれば、ある特定の概念だけを取り出して考慮するのは、かなり大胆な行為だと明らかになる。私たちだけでなく、計算能力が有限な、どんな心にとってもそうだ。
「黒髪で緑の目をした人」と定義した「ウィギン」という言葉を、その特定の概念を意識的な注意の対象に持ち上げる理由もなく提示するのは、刑事がこう言うようなものだ。「さて、あの孤児たちを誰が殺したのか、肯定するにせよ否定するにせよ、手がかりは一片すらない。直感さえないのだが……ノークル通り1234番地のジョン・Q・ウィッフルハイムを、容疑者として検討しただろうか?」
Tom M. Mitchell, Machine Learning (McGraw-Hill Science/Engineering/Math, 1997). ↩︎