【要約】Bottleneck構造あり vs なし|1×1 Convの役割をCIFAR-10で実験検証【Keras】 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
CNNの層を深く設計する際、エンジニアはパラメータ数の増大に直面する。モデルの表現力と計算コストの両立が重要だ。特に、1x1 Convを用いた構造に注目する。浅い層での副作用は、理論と実践で乖離が生じやすい。モデルの設計ミスは、精度の低下を招く。
- ・深層化に伴うパラメータ数の増大
- ・計算リソースの消費増による学習時間の長期化
- ・モデルの軽量化と精度のトレードオフ
// Approach
筆者はKerasを用い、CIFAR-10で比較実験を行った。1x1 Convによるチャンネル圧縮の有効性を検証した。実験では、条件を厳密に制御している。
- ・BasicBlockとBottleneckを比較
- ・中間チャンネル数を1/4に圧縮する構成を採用
- ・スキップ接続を除外し、ブロック構造のみの影響を抽出
- ・Adamを用い、30エポックの学習を実施
- ・他の構成要素はすべて同一に固定
// Result
実験の結果、精度と効率のトレードオフが示された。浅い層では、情報の圧縮が精度低下を招く。この結果は、設計指針に重要な示唆を与える。
- ・BasicBlock:精度77.85%、パラメータ数398,474
- ・Bottleneck:精度67.84%、パラメータ数51,114
- ・Bottleneckはパラメータ数を約1/8に削減
- ・学習時間を41秒短縮
- ・Bottleneckは50層以上の深層モデルで真価を発揮する
Senior Engineer Insight
> Bottleneck構造は、浅いモデルに適用すべきではない。情報の圧縮による損失が、表現力の不足に直結するためだ。設計者は、モデルの深さに応じた構造選択を行うべきである。
- ・モデルの「深さ」に応じた構造選択が不可欠
- ・ResNet50以上の深層モデルでのみ真価を発揮する
- ・リソース制約下では、精度とコストのバランスを評価せよ