【要約】AutoAugment vs TrivialAugment、CIFAR-10で比較したら差がほぼゼロだった話【Keras】 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
機械学習エンジニアは、モデルの汎化性能を高めるために高度なデータ拡張の導入を検討する。しかし、手法の選択が計算リソースや学習効率に与える影響を正確に把握できていない場合がある。具体的には以下の課題が挙げられる。
- ・高度な手法ほど学習時間が大幅に増加する。
- ・データセットの解像度に適合しない手法は、情報の破壊を招く。
- ・学習エポック数が不足すると、拡張による難易度上昇が収束を妨げる。
// Approach
筆者は、CIFAR-10データセットを用いて、データ拡張の有無による精度と学習時間の変化を比較検証した。Kerasを用い、以下の3つのパターンで実験を実施している。
- ・なし:データ拡張を適用しないベースライン。
- ・AutoAugment:強化学習で最適化されたポリシーを適用する。
- ・TrivialAugment:変換の種類と強度をランダムに選択する。
// Result
実験の結果、高度なデータ拡張はCIFAR-10のような小規模環境では精度向上に寄与しないことが判明した。定量的な結果は以下の通りである。
- ・精度差は最大0.23%に留まり、誤差範囲内であった。
- ・学習時間は「なし」に対し、TrivialAugmentで3.8倍、AutoAugmentで6.4倍に増大した。
- ・32×32の低解像度では、変換が有害なノイズとなった。
- ・エポック不足により、学習の難化が収束を遅らせた。
Senior Engineer Insight
> 「最新手法なら必ず精度が上がる」という盲信は、実務では計算コストの無駄を招く。本件が示す通り、データセットの解像度や学習予算との相性は極めて重要だ。小規模な実験やリソース制約下では、複雑な手法を避け、Flip等の軽量な手法に留めるべきである。本番環境への適用時は、ImageNet級の規模か、十分な学習時間を確保できるかを事前に評価せよ。