連載「学習が壊れるとき」
公開順に読み進められる連載です。
- ニューラルネットは陰陽を学べるか。450エポックの間、目玉の正解率は0%だった
陰陽(Yin-Yang)模様の2クラス分類をニューラルネットに学ばせ、決定境界がS字の渦を描くまでを観察した。隠れユニット2個では直線のまま、4個でS字が現れ、8個で片目、32個で両目を発見する「表現力の階段」が綺麗に出た。さらに学習過程を追うと、本体の渦は数十エポックで学べるのに、目玉(全体の3.6%の例外)は450エポックもの間、正解率0%のまま完全に無視され、その後突然発見される——例外が学ばれるまでの長い沈黙を実測した記録
- Grokking: 訓練精度が満点になってから27,400ステップ、何も起きなかった。そこから突然「わかった」
Grokking(突然の汎化)をmod加算タスクで再現した実験記録。訓練精度が満点になってから27,400ステップ何も起きず、その後テスト精度が突然1.0まで立ち上がる。weight decayの強さを振った比較と、AdamWの分離型weight decayを1行間違えて学習不能にした失敗談つき。
- 二重降下を実験で再現した。補間閾値でテスト誤差が76.8倍に跳ね上がり、そこから64分の1まで下がったが、シンプルな次数5モデルには最後まで届かなかった
二重降下(double descent)を再現した実験記録。モデルのパラメータを増やすほどテスト誤差が一度悪化し、さらに増やすと再び改善する現象を、実際に条件を振って観測した。
- 敵対的サンプル(FGSM)を自作分類器に実装したら、εを2.5まで上げても反転率は45%で頭打ちだった
敵対的サンプル攻撃(FGSM)をtwo-moons分類器に実装して検証した記録。境界際の点はε=0.01で反転する一方、全体の反転率はε=2.5まで上げても45%で頭打ちになり、295点中111点は一度も反転しなかった。
- 重みの初期化の標準偏差を0.01と1.5にしただけで、50層のMLPは活性化が10^61倍潰れるか10^45倍膨張した
幅64・50層のhand-rolled numpy MLPで活性化と勾配の標準偏差を実測した記録。初期化の標準偏差0.01では活性化が61桁潰れ、1.5では45桁膨張したが、層の幅に応じてスケールするHe初期化だけは50層を通じて狭い範囲に収まっていた。
- Hopfieldネットワークの記憶容量を実測。理論値141枚のはずが、文字パターンは3枚で崩壊した
1,024ニューロンのHopfieldネットワークに白黒パターンを記憶させ、想起成功率を1〜300枚で実測した。ランダムパターンは理論容量0.138N≒141枚付近で崖のように崩壊し、崖の下では複数の記憶が混ざった偽アトラクタだけが残る。一方、カタカナや漢字の文字パターンはわずか3枚で全員が同じ「幽霊」に崩壊した。
- 勾配消失を24層のネットワークで実測したら、sigmoidだけテスト精度0.49(当てずっぽう)まで崩壊し、勾配が15桁消えていた
活性化関数(ReLUとsigmoid)の俗説を24層のネットワークで検証した記録。sigmoidだけがテスト精度0.49まで崩壊し、1層目の勾配が10⁻²から10⁻¹⁷まで15桁消える勾配消失を実測した。