【要約】「AdaBoostは過学習しない」は本当か。ラベルノイズ10%で1,000回回したらテスト誤差が2倍になった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
機械学習エンジニアは、AdaBoostの「過学習しにくい」という通説と「ラベルノイズに弱い」という特性の境界を判断する際に、実務的な指針を欠いている。具体的には以下の課題がある。
- ・マージン理論に基づく「過学習しない」性質が、実データのノイズに対してどの程度脆弱か不明確である。
- ・ノイズ混入時に、ブースティングの回数を増やすことが精度向上に寄与するのか、悪化を招くのかの判断基準がない。
- ・「ノイズに弱い」という特性が、具体的にどの程度のノイズ率で、どのような挙動として現れるかが定量的ではない。
// Approach
筆者は、決定株を用いたAdaBoostをnumpyで自作し、ラベルノイズが精度に与える影響を実験的に検証した。検証の手法は以下の通りである。
- ・ベイズ誤差0となるよう再定義した
two moonsデータセットを使用。 - ・ラベルノイズ率(0%〜30%)とブースティング回数(1〜1,000回)の全組み合わせを実測。
- ・対照群としてRandom Forest(300本)を同一条件で実行。
- ・誤ラベル点のサンプル重みの推移と決定境界の形状を可視化し、メカニズムを分析。
// Result
実験の結果、ノイズ率が一定の閾値を超えるとAdaBoostの性能が急激に劣化することが定量的に示された。得られた成果は以下の通りである。
- ・クリーンなラベルでは、訓練誤差0到達後もテスト誤差はほぼ横ばいで、過学習が抑制される。
- ・ノイズ5%でテスト誤差が2倍に急増し、10%では回数を増やすほど誤差が最小値の2倍まで悪化する。
- ・誤ラベル点の重みが総重みの約4割を占める「高止まり」状態となり、境界が誤ラベルを囲い込む。
- ・適切な早期停止を行えば、高ノイズ下(30%)でもRandom Forestを上回る精度を維持できる。
Senior Engineer Insight
> 実務におけるAdaBoostの採用は、データのラベル品質に強く依存する。ノイズが5%混入するだけで性能が崖のように落ちるため、クリーンなデータが保証されない環境では、安易なブースティングは極めて危険だ。ただし、検証データを用いた厳格な早期停止を徹底すれば、高ノイズ下でもRandom Forestを凌駕する可能性がある。運用上は、ノイズ耐性を過信せず、バギング手法との比較や、検証誤差に基づく停止ルールを設計すべきである。