連載「最適化のライフレッスン」
公開順に読み進められる連載です。
- 「経験が浅いうちほどルールに頼るべき」は本当か。15点のデータで多項式の次数を上げたら、テスト誤差が40億まで爆発した
過学習と正則化を、15点のデータと多項式回帰で実験した記録。次数を上げるとテスト誤差が40億まで爆発し、L2正則化を入れると抑えられる過程を数値で追った。機械学習の入門でつまずきやすい概念を、実際の数字で確かめている。
- 「前の経験は新しい挑戦の助けになる」を転移学習で検証したら、まっさらから学習したほうが速くて正確だった
手書き数字0-4で事前学習したニューラルネットの重みを5-9の分類に転移させる実験をしたら、まっさらな状態から学習させた方が精度も収束速度も勝るという意外な結果になった。原因を探ると「死んだユニット」の存在が見えてきた
- 焼きなまし法(シミュレーテッドアニーリング)と勾配降下法を200箇所から競走させたら、勾配降下は0箇所しか正解に届かなかった
局所最適解と焼きなまし法(シミュレーテッドアニーリング)をnumpyで実装して比較した記録。ランダムな200箇所から勾配降下すると正解は0箇所、焼きなまし法なら200箇所すべてが大域最適に到達した。
- 焼きなまし法でDatasaurusを再現したら、平均も分散も相関も同じまま恐竜がサーモンに変わった
Datasaurus(平均・分散・相関が同じで形だけ違うデータ)を焼きなまし法で自作した記録。統計量を小数2桁まで固定したまま恐竜をサーモンの形に変形させ、要約統計量だけを見る危うさを可視化した。
- 「破局的忘却」を実際に起こしてみたら、Task A精度は0.9834から0.0000まで消えた。10%のリハーサルでも一度は9.9%まで沈んでから戻ってきた
破局的忘却(catastrophic forgetting)を実際に起こした実験記録。ニューラルネットに新しいタスクを学習させると、前のタスクの精度が0.9834から0.0000まで消えた。リハーサル(過去データの再学習)をどれだけ混ぜれば防げるかも比較している。
- 「もっと経験を積む」は「型にはめる」に勝てるか。データ拡張と正則化を同じ15点で戦わせたら、正則化が0.895 vs 0.870で僅差の勝利だった
過学習の記事に続き、two moonsのわずか15点の訓練データに対してデータ拡張(ジッター+回転)と正則化を比較した。テスト精度はベースライン0.834→正則化のみ0.895、拡張のみ0.870、両方0.883。拡張の強さは強めるほど良いわけではなく、m=0.4でピーク0.857をつけたあとm=1.0では0.821とベースラインより悪化した