SENet (G検定)

SENet

1. 定義と概要

SENet(Squeeze-and-Excitation Networks)とは、2017年に発表されたCNNの拡張手法です。畳み込み層は複数のチャンネル(畳み込み層が持つ1つのフィルタから出力される1枚の二次元データを1チャンネルと数える単位)から成る特徴マップ(チャンネルごとの二次元データ)を出力します。「SENet」は、このチャンネルごとの重要度を学習して重み付けするSqueeze-and-Excitationブロック(SEブロック)を、既存のCNNアーキテクチャに組み込む構成をとります。

SEブロックは既存のCNNに差し込むだけで性能を底上げできる汎用モジュールとして設計されています。組み込み先の代表例がResNet(層をまたいで情報を直接伝える経路を持つことで非常に深い層でも学習を安定させるCNNアーキテクチャ)やInceptionです。このSEブロックを組み込んだSENetは、2017年のILSVRC画像分類部門で優勝し、トップ5エラー率(モデルが出した予測上位5候補の中に正解が含まれない割合を示す指標)2.251%を記録しました。この結果は、前年2016年の優勝モデルから相対的に約25%の誤り率改善に当たります。

CNNは従来、畳み込み層が出力する複数チャンネルの特徴マップを均等に扱い、そのまま次の層へ渡す構成が主流でした。しかしチャンネルごとに認識への寄与度は本来異なり、重要度の低い特徴も等しく伝播させることは、表現力の面で無駄が生じます。

SENetはこの課題に対し、チャンネル間の相互依存関係を明示的にモデル化し、重要なチャンネルの信号を強め、重要度の低いチャンネルの信号を弱める仕組みを導入しました。この仕組みはチャンネルアテンション(画像のチャンネルごとに重要度をつけて強弱を調整する仕組み)と呼ばれ、自然言語処理(人間の言葉をコンピュータに扱わせる技術分野)でよく使われる系列データ上の注意機構とは対象が異なる別の仕組みです。

2. 試験対策ポイント

まず整理しておきたいのは、SEブロックを構成するSqueeze・Excitation・Scale処理という3段階です。まず、それぞれの段階で何が行われ、何が出てくるのかを一覧で押さえておくと混同しにくくなります。

段階 行う処理 出力
Squeeze グローバルアベレージプーリング(GAP)で特徴マップをチャンネルごとに平均する チャンネル数と同じ長さのベクトル
Excitation 2層の全結合層に通し、ReLU関数とシグモイド関数を順に適用する チャンネルごとの重み(0から1の値)
Scale 算出した重みを元の特徴マップの対応するチャンネルへ掛け合わせる 重み付けされた特徴マップ

最初のSqueeze(各チャンネルの特徴マップを1つの数値に圧縮する処理)で使うグローバルアベレージプーリング(GAP)とは、特徴マップの全ピクセルの値をチャンネルごとに平均して1つにまとめる処理です。これでチャンネル数と同じ長さのベクトルができます。

次のExcitation(圧縮した値から各チャンネルの重要度を計算する処理)は、Squeeze処理で得たベクトルを2層の全結合層(前の層のすべてのノードと次の層のすべてのノードを結びつける層)に通し、チャンネルごとの重みを算出します。1層目でベクトルの次元を一度縮小し、ReLU関数(入力が0以下なら0、0より大きければそのまま出力する活性化関数)を適用します。続く2層目で元のチャンネル数まで拡張し、シグモイド関数(出力を0から1の範囲に変換する活性化関数)を適用することで、各チャンネルの重要度を0から1の値として出力します。

最後のScale(算出した重みを元の特徴マップの各チャンネルに掛け合わせる処理)では、Excitation処理で得た重みを、元の特徴マップの対応するチャンネルにそれぞれ掛け合わせます。これにより重要なチャンネルの特徴が強調され、重要度の低いチャンネルの特徴が抑制されます。

SEブロックはResNet・Inception・VGGなど既存のCNNアーキテクチャに組み込める汎用モジュールという位置づけも論点です。追加するパラメータ(モデルが学習によって調整する数値)の数と計算コストの増加はわずかで済みます。SENetが2017年のILSVRCで優勝した実績と合わせて見ておきます。

3. 関連概念との比較・相違点

SENetは、組み込み先のアーキテクチャや内部で使う要素技術と混同されがちです。それぞれが指す範囲を並べると、違いがつかみやすくなります。

用語 指しているもの SENetとの関係
ResNet 残差接続を持ち、非常に深い層でも学習を安定させる構造そのもの SEブロックの組み込み先。組み合わせたものがSE-ResNet
グローバルアベレージプーリング(GAP) 特徴マップをチャンネルごとに1つの値へ圧縮する処理 SENetのSqueeze処理で使われる要素技術

「ResNet」との最大の違いは、両者が指す対象の範囲です。残差接続(スキップコネクションとも呼ばれ、層をまたいで情報を直接伝える経路)を持つことで、「ResNet」単体は非常に深い層でも学習を安定させる構造そのものを指します。一方「SENet」は、そのResNetにSEブロックを差し込んでチャンネルごとの重み付けを追加する拡張という関係にあり、両者を組み合わせた「SE-ResNet」という呼び方も試験対策のポイントになります。

グローバルアベレージプーリング(GAP)との最大の違いは、扱う処理範囲の広さです。GAPはSqueeze処理で使われる要素技術で、特徴マップをチャンネルごとに1つの値へ圧縮する処理を指します。SENetは、そのGAPの出力を全結合層に通してチャンネルごとの重みを算出し、元の特徴マップに掛け直すScale処理までを含む、より広い枠組みという関係にあります。

4. ビジネス・実務での活用シナリオ

製造業の外観検査では、製品画像に写る微小な傷や欠陥に関連するチャンネルの特徴を強調し、背景など無関係なチャンネルの影響を抑えることで、既存の検査モデルにSEブロックを追加するだけで検出精度を底上げできます。ゼロからモデルを設計し直す必要がなく、既存システムへの追加コストを抑えながら精度向上を図れる点が実務上の利点です。

医療画像診断の分野では、CT画像やエックス線画像を分類するモデルにSEブロックを組み込み、病変に関連する特徴チャンネルを強調することで、限られた学習データでも診断精度の向上を図る取り組みが進んでいます。読影の手がかりとなる特徴に重みを与える仕組みは、症例数が少ない領域ほど有効に働きます。

モデル開発・研究の現場では、新しい画像認識モデルを設計する際、既存のCNNアーキテクチャにSEブロックをわずかな追加コストで組み込み、精度向上と改修コストのバランスを検討する動きが広がっています。ゼロから新しいアーキテクチャを設計するよりも、既存資産にSEブロックを足す方が開発期間を短縮できる場合があります。

5. 要点まとめ

  • SENetは、特徴マップのチャンネルごとの重要度を学習して重み付けするSqueeze-and-Excitationブロック(SEブロック)を組み込んだCNNの拡張手法です。
  • SEブロックはSqueeze処理(GAPによる圧縮)、Excitation処理(全結合層2層で重みを算出)、Scale処理(元の特徴マップに重みを掛け直す)という3段階で構成されます。
  • SEブロックはResNetなど既存のCNNに少ない追加コストで組み込める汎用モジュールで、SENetが2017年のILSVRCで優勝しトップ5エラー率2.251%を記録しました。

6. 確認問題

問1SENetのSEブロックは、Squeeze処理・Excitation処理・Scale処理という3段階でチャンネルごとの重要度を学習し、特徴マップに重み付けを行う。

解答・解説をみる

○ 正しい

SEブロックの定義そのままの記述です。グローバルアベレージプーリング(GAP)による圧縮(Squeeze処理)、全結合層による重み算出(Excitation処理)、元の特徴マップへの重み付け(Scale処理)という3段階の構成が核となります。

問2Excitation処理では、Squeeze処理で得たチャンネルごとの値を1層の全結合層のみに通し、シグモイド関数だけを適用してチャンネルの重みを算出する。

解答・解説をみる

× 誤り

正しくは2層の全結合層を用いる構成です。1層目でベクトルの次元を縮小してReLU関数を適用し、2層目で元のチャンネル数まで拡張してシグモイド関数を適用することで、各チャンネルの重みを0から1の値として出力します。

問3SEブロックはResNetなど既存のCNNアーキテクチャに少ない追加コストで組み込める汎用的なモジュールであり、SENetが2017年のILSVRCの画像分類部門で優勝した。

解答・解説をみる

○ 正しい

SEブロックは既存モデルへの組み込みコストが小さい汎用モジュールとして設計されています。あわせて、SENetが2017年のILSVRCでトップ5エラー率2.251%を記録して優勝した実績も押さえておきたいポイントです。