
なぜこのブログを始めたのか — 「知っているつもり」を測り直す場所
生成AIが普及して、コードもアプリも誰でも作れる時代になりました。調べ物も、以前とは比べものにならない速さで片が付きます。
そのぶん、「知っているつもり」になるのも速くなったというのが、始めたときに感じていたことでした。
「標本サイズは30あればいい」「クイックソートが一番速い」「累積寄与率80%まで残せば十分」。どれも何度も見聞きしていて、根拠を聞かれたら説明できる気がしている。でも自分の手で確かめたことは、一度もない。
このブログは、そういう話をコードを書いて測り直す場所として始めました。
やってみて分かったこと
始めてしばらく経って、はっきりしてきたことがあります。
予想が当たった実験は、あまり面白くない。
「焼きなまし法は局所最適から抜けられる」を確かめた回は、そのとおりの結果が出ました。数字はきれいだし、説明もできる。でも読み返すと、教科書に書いてあることをなぞっただけです。
面白いのは外れたときでした。
- マンデルブロ集合の境界は2次元だと証明されているのに、測ったら1.09にしかならなかった。しかも測り方は正しかった
- 囚人のジレンマで最強と言われる「しっぺ返し」は、10戦略の総当たりで4位だった。1位は「二度までは許す」
- 敵対的サンプルは、攻撃を強くするほど効かなくなった。反転率は45%で頭打ち
- クイックソートの最悪ケースは、変な入力ではなくいちばん行儀のいい入力だった。並べ替え済みの配列を渡すと、比較回数がバブルソートと1回も違わない
外れると、どこに条件が付いていたのかが分かります。 「n=30」には歪度の条件が、「クイックソートが最速」には入力の条件が、それぞれ最初から付いていた。伝わるうちに条件が落ちて、数字だけが残っていた、というだけの話でした。
決めていること
3つあります。
答えの分かっている例で、先に測り方を確かめる。 マンデルブロの回では、円(答えは1)とコッホ雪片(答えは1.2619)で較正してから本番を測りました。これを飛ばすと、出てきた数字が本物か分からなくなります。
予想と違っても、そのまま書く。 都合のいい結果に寄せたら、測る意味がありません。うまくいかなかった回、途中で方法を間違えた回も、そのまま残しています。
コードを全文公開する。 実験のコードはGitHubに置いています。手元で回せば同じ数字が出るはずです。出なければ、それは私の間違いです。
読んでくださる方へ
数字の誤りの指摘は歓迎します。お問い合わせからどうぞ。
初めての方は、予想が外れた5記事からがおすすめです。このブログで一番面白いのはそこなので。


