2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

チャンネルの重要度を計算するCNN【SENet】

Posted at

原論文
Squeeze-and-Excitation Networks
https://arxiv.org/pdf/1709.01507.pdf

結論

CNNにチャンネルの重要度をつける.その重要度は,画像によって異なる,動的なパラメータを使用する.

概要

画像認識モデルにCNNモデルがあるが,CNNモデルは入力画像が変化しても同じ値の重みを使用したカーネルを使用して計算する(静的なパラメータ).これは,入力画像に対して,柔軟に適応できない状態である.

例えば,ある画像では,色が重要であったり,形状,テクスチャなど重要な要素が異なる.そのため,その入力画像にあった重みが大切である.入力画像によって異なる重みを持つことが動的なパラメータである.この動的なパラメータをCNNに付与する.

モデル構造

SENetは,特徴量のチャンネルの重要度を決定する役割を持つ(色は重要度).
チャンネルの重要度は,空間情報にGlobal Average Pooling(GAP)($H \times W$の平均値)をすることで($H \times W \times C$)の特徴量を($1 \times 1 \times C$)に圧縮する.

圧縮後にF(ちょっとした計算)をしてチャンネルの重要度を決定する.各チャンネルの重要度を入力特徴量にかけて,入力特徴量のチャンネルの重要度を決定する.(上ルートの茶色の値が0の場合,そのチャンネルは重要でないので,入力特徴量の茶色の値は0になる.)

スクリーンショット 2024-02-07 10.55.01.png

F()の中身

以下の図2の右の図の右ルートがF()の構造であり,最初にGAP(Global pooling)し,FC層,,,,,sigmoidで右ルートの値を0~1に変換して,その値を入力特徴量の各チャンネルの重要度として計算している.つまり,F()は2層のFC層の後にsigmoidで0~1に値を変換している.

図2と図3は,論文で提案されているモデル構造例で,図2はSENet.図3は,SE-ResNetであり,ResNetのスキップ接続を付与している.この2つのモデルは,よく使用される.

スクリーンショット 2024-02-07 10.55.30.png

実験

他にも色々なブロックの形状を試してみたよ.

スクリーンショット 2024-02-07 10.55.45.png

結局シンプルな方がいいのかも.わかりやすいし.

まとめ

今回は,チャンネルの重要度を計算するCNN【SENet】について解説した.CNNの構造に動的なパラメータを持つ機能を付けることで,入力画像に異なる柔軟な重みつけが可能になる.その機能を使用して,各チャンネルの重要度を求める.

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?