バグは、私がどれだけ必死に探したかだった

しばらくのあいだ、私は自分の本気度を、探索の規模で測っていた。あるストラテジーについて、何億通りもの設定を試し、それでも足りないと感じると、今度は何十億通りを試した。私はその数字を誇りに思っていた。それは厳密さのように感じられた——どんな可能性も未検証のまま残していない、という感覚だった。

実際にはむしろ、厳密さの正反対に近かった。探索のとてつもない規模は、エッジを見つける助けにはなっていなかった。それは蜃気楼を製造していて、規模を大きくすればするほど、その蜃気楼はますます説得力を増していった。

警告であるべきだった誇り

私は以前、自分の探索の規模を、働いた時間数を口にするのと同じ調子で語っていた——努力の、徹底ぶりの、問題に本気で取り組んでいることの証拠として。評価した組み合わせは何億通り。それからさらに増やした。これほど大きな数字を指さして、いわばこれほど徹底的に探したのだと言うことには、本物の満足感がある。

その満足感こそが問題だった。私は知らないうちに、探索の規模を結果の質と取り違えていた。そしてその二つは、単に無関係なだけではない——ある一点を越えると、互いに逆方向へ引っ張り合うのだ。

巨大な探索が実際にやっていること

ここに、居心地の悪い仕組みがある。歴史の中の任意の固定された一区間を取り、それに対して十分に多くの異なるストラテジーを試してみると、そのうちのいくつかは見事なものに見える——それらが優れているからではなく、何百万もの試みのうち、いくつかは純粋な運によって、過去の特定の偶然と必ず一致してしまうからだ。試す設定が多いほど、こうしたまぐれの一つを見つけることはより確実になり、最も運の良かったまぐれはより極端に見えるようになる。

だから巨大な探索は、最良の本物のストラテジーを確実に浮かび上がらせはしない。それが確実に浮かび上がらせるのは、最もよく適合した偶然だ——あなたが探索した、まさにそのデータのランダムな癖に、最も精密に形を合わせた設定。そしてその偶然を、あなたがこれまで見た中で最も美しい結果をまとって、提示してくるのだ。

この罠には名前がある

これはどれも新しい話ではない。統計学の全分野の中で最も使い古された罠の一つであり、ちょっとした名前の博物館を持っている——多重比較、データ漁り、p-hacking。その核心はいつも同じだ。一つの仮説を検定すれば、強い結果は情報を持つ。同じデータに対して十億の仮説を検定すれば、偶然だけで一見並外れた結果を見つける確率は——そこに本物が何かあるかどうかにかかわらず——非常に高くなり得る。十分な試行回数があれば、「運だけで並外れている」はもはや一か八かではなくなる。

私は十億仮説の実験を走らせ、その勝者を、たった一つの苦労して得た発見であるかのように読んでいた。そうではなかった。それは、とても広い部屋の中で最も大きな雑音だった。

なぜそれが過剰最適化の正反対のように感じられたか

残酷なのは、それがどれほど美徳のように感じられたかだ。「石は一つ残らずひっくり返せ」は、良い助言であるはずだ。だが、一つの固定されたデータセットに対して石を一つ残らずひっくり返すことは、いずれ偶然によってたまたま宝物の形をした石をひっくり返してしまうことを保証する、最も確実な方法の一つなのだ。一つのサンプルに対する徹底ぶりは、厳密さと同じではない。それはしばしば、自分を騙される機会をどんどん買い増しているだけで、そしてそのうちの一つが報われたときに感心しているだけなのだ。

私は慎重にやっているつもりだった。私は、事態を悪化させる唯一の方向に慎重だったのだ。

兆候——勝者は決して接触を生き延びなかった

その署名は、一度それを探すことを覚えてしまえば、たいてい同じだった。巨大な探索を勝ち抜いた設定は、それが選び抜かれる相手となったデータの上では信じられないほど良く見え、そして、選ばれる際には使われていないデータと出会うと、その直後に崩れ去った。その崩壊は、単なる不運ではないかもしれない。それは、探索が偶然を見つけたという、よくある警告のサインだ——イン・サンプルでは強く、なぜならイン・サンプルこそが、それが適合するよう最適化された当の対象だからであり、アウト・オブ・サンプルではより弱く、なぜならその偶然は確実には再現しないかもしれないからだ。(条件の本当の変化や、ただのバグも崩壊を引き起こし得る。巨大な探索に対する選択は、単に第一の容疑者にすぎない。)

緩和策——探索を制約し、検証データを守る

その修復には二つの側面があった。一つ目は、探索の規模を美徳として扱うのをやめること——データを採掘して適合するものなら何でも掘り出すような、広大で当てずっぽうの一掃ではなく、ある設定が機能すると期待できる何らかの理由に駆動された、より小さく、より意図的な探索を走らせることだ。二つ目は、そしてより重要なのは、いかなる勝者にも、それが選ばれている間は決して見ることを許されなかったデータの上で頑健さの証拠を示すよう要求することだ——きれいなホールドアウトでさえ、あまりに頻繁に参照されれば、徐々にきれいではなくなることを知った上で。

その二つ目のルールが、ゲームの大半を占める。重要な問いは「過去の中で私が見つけられる、最も見栄えの良いものは何か?」ではない。十分な計算資源があれば、誰でも過去の中に見栄えの良いものを見つけられる。過去は有限であり、十分に大きな探索は、いずれその偶然に適合してしまう。重要な問いは「私が見つけた最良のものは、それが形を合わせることなど決してできなかった一区間のデータを生き延びるか?」だ。私の巨大な探索が掘り出したもののほとんどすべてが、その問いに不合格となり、そしてその不合格は、それらが生み出した中で最も有用な結果の一つだった。

より多くの計算は、より多くの真実ではない

私が手放さずにいる教訓は、この分野ではほとんど抗いがたく感じられる一つの本能への、静かな訂正だ——もしエッジが見つからないなら、ただもっと必死に探せばいい、もっと多くの設定を、もっと多くの計算を、もっと多くの力任せを、という本能だ。ある種の問題に対しては、その本能は正しい。ノイズの多いデータの中で本物の、持続するエッジを見つけるという問題に対しては、それはしばしば、むしろ逆に近い。より多くの力任せは、必ずしもあなたを真実に近づけはしない。それはときに、ノイズに、コンテストへのエントリーをより多く与えるだけだ——そしてノイズは、十分なエントリーを与えられれば、たいてい何かしらを勝ち取ってしまう。

探索がこれまで私にしてくれた最も誠実なことの一つは、とてつもない数の試行のあとで、生き延びるものが何もないまま戻ってきたことだ。これが探索の失敗ではないと理解するのに、私は恥ずかしくなるほど長い時間がかかった。それは探索が、ついに、私に真実を告げていたのだ。

— シグナルなし、リターンなし、投資助言ではない。