← 記事一覧に戻る

連載「定説を実測する」

公開順に読み進められる連載です。

  1. 「脳とニューラルネットは似ている」を実装で確かめたら、精度は同じままヘブ則の重みだけが2万3000倍に発散した

    ニューラルネットワークの起源であるパーセプトロンと、生物学的なヘブの学習則を実際にPythonで実装・比較し、「脳と似ている」という話がどこまで本当なのかを、重みの発散やXOR問題を通して確かめてみた

  2. Dropoutは「暗黙のアンサンブル」なのか。同じパラメータ予算で本物のアンサンブルと殴り合わせたら、相関係数0.13だった

    「ドロップアウトは暗黙のアンサンブル」という通説を検証した記録。明示的な小規模ネットワークのアンサンブルとMCドロップアウトを総パラメータ数をほぼ揃えて比較すると、予測分散の相関はr=0.13しかなかった。

  3. 学習率のwarmupは本当に訓練を安定させるのか。崩壊寸前のLRで20シード×3条件、実際に数えてみた

    学習率のウォームアップは本当に必要かをアブレーション実験で検証した記録。不安定な高学習率でwarmupあり・なしを複数seedで比較したところ、崩壊率は10/12/11とほとんど変わらなかった。

  4. アンサンブルの「多様性」は本当に効くのか。seed違いの浅い多様性とbagging+幅の多様性を対決させたら不一致率が3.1倍だった

    同じtwo-moons・同じMLP・総パラメータ330で固定し、seedだけ違う浅い多様性とbootstrap+幅を変えた本物の多様性を8回ずつ比較した。精度ゲインはAがほぼゼロ、Bは+0.0091で8試行全勝(p=0.0044)、予測不一致率もBが3.1倍だった。

  5. 「AdaBoostは過学習しない」は本当か。ラベルノイズ10%で1,000回回したらテスト誤差が2倍になった

    「AdaBoostは過学習しにくい」という通説をnumpy自作AdaBoostで実測検証した。クリーンなラベルでは1,000回回しても壊れないのに、ノイズ10%でテスト誤差は最小値の2倍に悪化。全体の10%の誤ラベル点がサンプル総重みの39%を占めるまでを追った。

  6. 宝くじ仮説の枝刈りをnumpyで自前実装したら、当たりくじの優位はスパース率98%から先だけだった(99%で62%対48%)

    sklearn同梱の8×8手書き数字とnumpy自前実装の2層MLPで、反復的マグニチュード枝刈りの「当たりくじ」「ランダム再初期化」「ランダムマスク」を5シードで比較。スパース率95%までは差が1〜2ポイントしかなく、初期値の優位は98%以降で一気に11〜14ポイント開いた。

  7. 中心極限定理は「n=30」で十分? 7つの分布で標本平均のズレを測った

    標本サイズ30で正規近似は使えるのか。7種類の分布で標本平均を2万回ずつ作り、歪み・離散性・裾の違いを比較しました。KSの目安と検定の可否を区別し、実務で何を確認すべきかまで解説します。

  8. 主成分分析で「累積寄与率80%まで残す」を実測したら、捨てた寄与率1.88%の成分だけで精度0.95が出た

    PCAの累積寄与率80%を分類データで検証。人工データでは残した成分の精度0.486に対し、捨てた第2主成分だけで0.952。寄与率と予測力の違いを実データとも比較します。

  9. クイックソートに「並べ替え済みの配列」を食わせたら、比較回数がバブルソートと1回も違わなかった

    先頭ピボットのクイックソートを含む8手法を5種類の入力で比較。整列済み2000要素では比較が199万9000回に。比較回数と実行時間、3分割方式とPythonのsortedの違いも測ります。

  10. じゃんけんのナッシュ均衡は1/3ずつと決まっている。学習させたら均衡から3,050倍遠ざかり、最後は手が完全に読めるようになった

    じゃんけんの学習では、各時点の戦略が均衡から離れる一方、時間平均は1/3ずつに近づきました。学習率による違いを測り、均衡の存在と学習の収束を区別します。