過剰な適合
一昔前の軍事訓練に、こんな小話がある。パートナーとひとつのモデルガンを使い、攻撃側に回った一方がガンを構えて、それを守備側を担当するもう一方が素早く奪う。奪えなかったら守備側は両手を上げてジ・エンド。攻守交替でもう1セット。これを延々と繰り返す。野球で言うところの素振りみたいなものだ。
ある兵隊が実戦訓練で敵を追い詰めた。銃を突きつけ、敵は両手を上げる。すると兵隊は、おもむろに銃を相手に渡した。攻守交替! 本当の戦地だったらこの笑い話も後世に伝わっていない。
どんなものでも練習は大切で、繰り返すことで身につく部分は必ずある。しかし、それが過剰になってしまうと、兵士が銃を手渡したような「エラー」が起こる。未知の状況に対応するには、過去の練習だけではなく、そのときどきの判断が求められるのに、過剰な学習のせいで柔軟性が失われてしまったのだ。
機械学習では「オーバーフィッティング」と呼ばれている。訳すなら「過学習」だ。訓練データ、つまり過去のデータについては十分学習され、過去の事象すべてを完璧に説明できるが、こと未知データに対しては適合できていない状態。
オーバーフィッティングが起こるのは、データが制限されていてノイズ(役に立たない情報)があるとき、そして情報と結果の基本的な関係についての知識が乏しいときだ。兵士がしっかりと理解していなかったのは後者である。なぜこの訓練が必要なのか、目の前の情報と結果の関係性は何なのか。ここを考慮せずに、漫然と繰り返した結果、柔軟な対応ができなくなった。これは、人間が陥りやすい「学習の罠」である。
競艇に関する様々な知識を詰め込んだとする。そうすると、予想はだんだんと細かくなっていき、次第には「どんな展開でも想像できる」ようになってしまう。自分の知識が全出目に適合するようになると、予想としての有用性はゼロだ。そこから絞るためにさらなる知識を……という悪循環も生まれる。
自分がどの程度まで知識を増やせば十分なのか。この検証には膨大な時間がかかる。目標値も見えないため、事態は混沌とする。人工知能であれば、標本を分けて検証(クロスバリデーション)するような手段もとれるが、人力でそれを行うのは現実的ではない。困った。これでは安心して賭けることができない。
ギャンブルを真剣にやり続けている限り、自覚症状の有無にかかわらず、この状態はいずれ訪れる。「考えすぎて頭がパンクしそう!」という状態すらもギャンブルは悦びに変換してくれるので、実は期待値を下げる行為だとしても、人はそれを実力の向上と誤認する。
どんな状態であれ、完璧とは程遠いところでギャンブルをするしかない。大切なのは、自分がどのような罠に陥りやすいか、それを客観的に見通せるような視野を持つことだ。
不要な情報を拾いすぎていないか、そしてその情報に適合する不要な知識を持ってしまっていないか。これは十分考えなければいけないテーマである。
例はいくらでも思いつく。本当はそんなことを考える必要がないのに――
知識がない人ならどこかで思考がストップする。その結果どこを買うことになるかはそれぞれだが、どの予想が優秀かは、等しく「とれる期待値次第」なのだ。そこは謙虚になるべきところである。しかし、思考の層が多い人ほど、過剰な自信を抱きやすい。単なるオーバーフィッティングかもしれないのに、そこには気づかない。
知識を貯めこめば貯めこむほど、自分の描いたものに近い知識を引き出せるようになってしまう。言い換えるなら「ありき」で考えてしまうのだ。
生物学的に言うなら、人間には「様々な危険に対応するための防衛本能」が備わっていない。その代わりに、起こったことをパターン分けし、そのパターンにおいてどういう行動をとるべきかを学んでいく。そこで止まればいいのだが、私たちは次第に「自分がとりたい行動」から逆算し、その行動に適合するように「目の前の出来事が当てはまるパターンを考える」のだ。
○○選手の蒲郡の5コース。それはあなたが「買いたいだけ」かもしれない。自分が求めるものに適合する知識を、わざわざ迎えにいっているのだ。きちんと調べずに、蒲郡の5コースで「これまでどの程度の成績を残したか」という記録だけに着目し、自分の考えに対する自信度を上げてしまう。極端な話、その選手の内側が全員遅れたケースだって、戦績には[1着]と記録されるのだ。そんな曖昧な数字に惑わされてしまうのは、ひとえにあなたが人間だからで、ものの見事にオーバーフィッティングしてしまっているからだ。
このジレンマに気づき、冷静に判断することこそ、上級者に求められる素養である。