原論文
Selective Kernel Networks
https://arxiv.org/pdf/1903.06586.pdf
結論
カーネルサイズを自動選択するCNN
概要
画像認識分野のCNNは,カーネルサイズをデフォルトとして,3に設定しているが,受容野を広げるためにサイズを大きくした方が良い意見や,大きくした分,無駄なノイズ情報を考慮して計算してしまう弱点などから,議論されている.そこで,SKNetは,入力特徴量の値を使用して,適切なカーネルサイズを自動で選択してくれる構造を提案する.
具体的には,SENetの派生で,チャンネルの重要度を小さなカーネルと大きなカーネルで計算して,その重要度の偏りによって更新する.
モデル構造
ResNeXtの1x1畳み込みに挟まれる,3x3畳み込みをSK畳み込みに変更する.
SK畳み込み
SK畳み込みは,カーネルサイズを自動選択できる構造を持つ.下図に構造を示す.
はじめに,入力特徴量($h \times w \times C$)を3x3畳み込み$\tilde{U}$と5x5畳み込み$\hat{U}$を並列に計算する.その後,$\tilde{U}$と$\hat{U}$の要素和で$U$($h \times w \times C$)を獲得する.
$U$を空間方向にGAPをして,S($1 \times 1 \times C$).SにLinear層で計算量削減のためにチャンネルを圧縮($1 \times 1 \times c$).次のFC層で3x3畳み込み用aと,5x5畳み込み用bをつくる.
aとbは,各チャンネルで,合計は1になるようにsoftmaxで値を調整する.例えば,aが0.4の場合にbが0.6.これで,aとbの値は0~1に制限される.値を調整したaとbを使用して,それぞれの特徴量にかけ,2つを要素和する.
これにより,各チャンネルで,3x3畳み込みで得た値を優先したり,5x5畳み込みの値を優先したりと調整できる.各チャンネルでより有効なカーネルサイズの情報を取り込む.
下図では,2種類のカーネルサイズで説明したが,3種類でもそれより多くても実現可能である.
実験
ImageNetの画像で,通常が青,中央切り出し(ズームした状態)を赤に示す.右図は,値が大きいほど5x5畳み込みルートが優先で,小さいと3x3畳み込みルートが優先であると可視化している.
ズームした状態(赤)は,通常(青)と比較して5x5畳み込みルートが優勢である.これは,受容野が適応的に大きくなっていることを示唆する.
上段に浅い層,中段に中層,下段に深層のカーネルルートを可視化する.値が大きいと5x5ルートが優勢である.青よりオレンジはズームしている状態である.
浅い層と中層では,5x5と3x3ルートの優勢度合いが異なるが,深層では,ズームした状態の影響をあまり受けない.これは,深層で,カーネルサイズはあまり重要でないことを示唆する.
まとめ
今回は,カーネルサイズを自動選択するCNN【SKNet】した.カーネルサイズを自動で決めてくれるのは,いいですね.けど,全体的に3x3畳み込みが有効ではあるのかなと思います.必要な場面で大きいカーネルサイズが助けてくれる感じですね.