【要約】SEブロックとResidual接続を組み合わせたら予想外の結果に【Keras×CIFAR-10実験】 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
モデルの精度向上を狙い、SEブロックとResidual接続を併用する設計が一般的である。しかし、本実験では以下の課題が浮き彫りになった。
- 併用時に単体利用よりも精度が低下する現象。
- 浅いネットワークにおける勾配とAttention重みの最適化の干渉。
- 学習中のval_lossが跳ね上がるなどの不安定な挙動。
- 併用時に単体利用よりも精度が低下する現象。
- 浅いネットワークにおける勾配とAttention重みの最適化の干渉。
- 学習中のval_lossが跳ね上がるなどの不安定な挙動。
// Approach
筆者は、CIFAR-10を用いて、SEブロックとResidual接続の組み合わせが精度に与える影響を検証した。
- 4つの実験パターン(Baseline, Residualのみ, SEのみ, SE+Residual)を定義。
- Kerasを用いて、SEブロックをConv2D層の後に挿入する実装を実施。
- テスト精度、パラメータ数、学習ログの3点から比較分析。
- 4つの実験パターン(Baseline, Residualのみ, SEのみ, SE+Residual)を定義。
- Kerasを用いて、SEブロックをConv2D層の後に挿入する実装を実施。
- テスト精度、パラメータ数、学習ログの3点から比較分析。
// Result
実験の結果、SEブロック単体での利用が、最も優れたコストパフォーマンスを示すことが判明した。
- SEのみの構成は、精度がベースライン比で+5.40pt向上した。
- パラメータ増加量は+1.8%と極めて低く抑えられた。
- 併用パターンは、SE単体より精度が約4.6ポイント下回った。
- SEのみの構成は、精度がベースライン比で+5.40pt向上した。
- パラメータ増加量は+1.8%と極めて低く抑えられた。
- 併用パターンは、SE単体より精度が約4.6ポイント下回った。
Senior Engineer Insight
> 本知見は、モデル設計における「安易な機能追加」への警鐘である。SEブロックのパラメータ効率は極めて高いが、Residual接続との干渉はネットワークの深さに依存する。浅いモデルではSE単体、深いモデルではSE-ResNetという使い分けが、実戦的な最適解となる。