GoogLeNet(別名:Inception-v1)は、深層畳み込みニューラルネットワークの一種であり、2014年Googleの研究者Christian Szegedyらによって発表された。同年のImageNet Large Scale Visual Recognition Challenge(ILSVRC)で優勝し、トップ5エラー率6.67%を達成した。その最大の特徴は「Inceptionモジュール」と呼ばれる並列畳み込み構造にあり、異なるサイズの畳み込みとプーリングを同一層内で組み合わせることで、複数スケールの特徴を効率的に抽出する。これにより22層(プーリング層を含めると27層)の深いネットワークを実現しつつ、計算コストを抑えることに成功した。また、補助分類器を中間層に配置することで勾配消失問題に対処している。

1 背景と動機

1.1 従来のアーキテクチャの限界

ILSVRC 2012でAlexNetが畳み込みニューラルネットワーク(CNN)の有効性を示して以降、ネットワークの深層化が進んだ。しかし、単純に層数を増やすとパラメータ数が爆発的に増加し、過学習や計算負荷の増大、勾配消失・爆発といった問題が顕在化した。また、固定サイズの畳み込みカーネル(例:3×3や5×5)では、画像内の物体のスケール変動に対して十分な特徴抽出が難しいという限界もあった。

1.2 効率的で深いネットワークの目標

GoogLeNetの設計目標は、計算資源を有効活用しながらネットワークの深さと幅を増やし、高精度を達成することである。具体的には、スパース構造を密な計算に落とし込む「Network in Network」のアイデアを発展させ、異なるスケールの特徴を同一層内で同時に学習するInceptionモジュールを考案した。これにより、層数を増やしてもパラメータ数や計算量の増加を抑え、実用的な深層ネットワークを実現した。

2 アーキテクチャ

2.1 全体構造

GoogLeNetは22層(重みのある層)からなり、プーリング層を含めると27層の深さを持つ。入力は224×224×3の画像で、最初に通常の畳み込み層とプーリング層で特徴マップのサイズを縮小した後、9個のInceptionモジュールが積層される。各Inceptionモジュールの出力チャネル数は段階的に増加し、最後にグローバル平均プーリングで1×1のベクトルに集約され、全結合層を経て1000クラスのソフトマックス出力を得る。また、ネットワークの中間部(第3ブロックと第4ブロックの出力)に2つの補助分類器が配置されている。

2.2 Inceptionモジュール

2.2.1 基本のInceptionモジュール

Inceptionモジュールは、入力特徴マップに対して並列に4つの経路を計算する。すなわち、1×1畳み込み、3×3畳み込み、5×5畳み込み、そして3×3最大プーリングである。これらの出力はチャネル方向に連結され、次の層に渡される。この構造により、ネットワークは局所的な細かい特徴(1×1)から広い範囲の特徴(5×5)までを同時に学習できる。

2.2.2 1×1畳み込みによる次元削減

Inceptionモジュールでは、3×3畳み込みと5×5畳み込みの前段に1×1畳み込みを挿入し、チャネル数を削減することで計算量を大幅に低減している。また、プーリング経路の後にも1×1畳み込みを配置し、チャネル数を調整する。この「次元削減」テクニックが、深いネットワークでありながらパラメータ数を抑える鍵となっている。

2.3 グローバル平均プーリング

ネットワークの最終段では、従来の全結合層の代わりにグローバル平均プーリング(GAP)を用いる。各特徴マップの空間平均を計算して1次元ベクトルを得た後、ソフトマックス層に接続する。これによりパラメータ数が劇的に減少し、過学習を抑制するとともに、入力画像の空間シフトに対するロバスト性が向上する。

2.4 補助分類器

中間層に設置された2つの補助分類器は、それぞれソフトマックス損失を計算し、最終損失に重み付きで加算される(重み0.3)。この工夫により、深いネットワークでも下層の勾配が消失する問題を軽減し、正則化効果も得られる。テスト時には補助分類器は取り除かれ、メインの分類器のみが使用される。

3 訓練と実装

3.1 データ前処理と拡張

訓練データにはImageNetの120万枚の画像を使用し、ランダムクロップ、水平反転、色調変動などのデータ拡張を施した。入力サイズは224×224にリサイズし、平均画素値でセンタリングを行った。

3.2 最適化手法

最適化には確率的勾配降下法(SGD)を用い、モーメンタムは0.9、学習率は初期0.01で始め、検証誤差が停滞するたびに1/10ずつ減衰させた。バッチサイズは32、エポック数は100程度で収束した。

3.3 正則化(ドロップアウト、バッチ正規化の導入)

全結合層の前にドロップアウト(比率0.4)を適用して過学習を抑制した。なお、バッチ正規化はInception-v2以降で導入された手法であり、GoogLeNet(Inception-v1)ではまだ使用されていない。

4 派生モデルと発展

4.1 Inception-v2/v3(バッチ正規化、分解畳み込み)

Inception-v2はバッチ正規化を導入し、学習を高速化した。Inception-v3ではさらに、大きな畳み込みカーネル(5×5や7×7)を複数の小さなカーネル(3×3や1×7+7×1など)に分解することで計算効率を向上させ、ラベル平滑化などの正則化も追加された。

4.2 Inception-v4 と Inception-ResNet

Inception-v4はネットワーク構造をより単純かつ深くし、残差接続(ResNetのアイデア)を組み合わせたInception-ResNetも提案された。これらのモデルはILSVRC 2015以降で高い性能を示した。

4.3 他のアーキテクチャとの比較(AlexNet、VGG、ResNet)

AlexNetは8層、VGGは16~19層、ResNetは50~152層である。GoogLeNetは22層でありながら、パラメータ数は約500万とVGGの1/10以下であり、計算コストと精度のバランスに優れていた。ResNetはこれよりも深い層で高い精度を達成したが、Inceptionモジュールの設計思想は後のモデルにも影響を与えた。

5 性能と影響

5.1 ILSVRC 2014 の成果

ILSVRC 2014の分類タスクにおいて、GoogLeNetはトップ5エラー率6.67%を記録し、第2位のVGG(7.32%)を上回って優勝した。検出タスクでも良好な結果を残した。

5.2 深層学習への貢献

GoogLeNetは「深くても効率的なネットワーク」の設計原理を示し、Inceptionモジュールのコンセプトはその後多くのアーキテクチャに応用された。また、補助分類器やグローバル平均プーリングの導入は、後のネットワーク設計における標準的なテクニックとなった。

5.3 コンピュータビジョンでの応用

GoogLeNetは画像分類、物体検出、セマンティックセグメンテーションなど様々なタスクのベースモデルとして利用された。また、モバイルや組み込み向けの軽量モデル(MobileNetなど)の設計にも影響を与えた。

6 参考文献

  • Szegedy, C., Liu, W., Jia, Y., Sermanet, P., Reed, S., Anguelov, D., ... & Rabinovich, A. (2015). Going deeper with convolutions. In *Proceedings of the IEEE conference on computer vision and pattern recognition* (pp. 1-9).
  • Ioffe, S., & Szegedy, C. (2015). Batch normalization: Accelerating deep network training by reducing internal covariate shift. In *International conference on machine learning* (pp. 448-456).
  • Szegedy, C., Vanhoucke, V., Ioffe, S., Shlens, J., & Wojna, Z. (2016). Rethinking the inception architecture for computer vision. In *Proceedings of the IEEE conference on computer vision and pattern recognition* (pp. 2818-2826).