2014年のILSVRCを制した画像認識モデルがGoogLeNetです。「深くするだけでなく幅も広げる」というInceptionモジュールの発想と、深いネットワークを学習させるための補助損失(Auxiliary Loss)という2つの工夫が試験の中心テーマです。同年準優勝のVGGと並べて問われることも多い、CNN史の重要モデルです。

📖 ひと言でいうと

GoogLeNetとは、Googleの研究チームが開発し2014年のILSVRCで優勝した22層のCNNで、異なるサイズのフィルタを並列に並べた「Inceptionモジュール」を積み重ねた構造が最大の特徴です。

例えるなら、1種類の網目のふるいで砂をふるうのではなく、目の粗さが違う複数のふるいを同時にかけて、大きな粒も小さな粒も一度に選り分けるイメージです。1×1、3×3、5×5という異なるサイズのフィルタを並列にかけることで、大きな特徴も細かい特徴も同時に捉えられます。

🖼 1枚でわかるGoogLeNet

GoogLeNet
  • 実績 — 2014年ILSVRC優勝(Google開発・22層)
  • 核心 — Inceptionモジュール(1×1・3×3・5×5のフィルタを並列配置)
  • GAP — Global Average Poolingで全結合層を削減し過学習を抑制
  • 補助損失 — 中間層のAuxiliary Lossで勾配消失を緩和
  • 影響 — 「深さ」だけでなく「幅・多様性」の重要性を示した
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

GoogLeNetは、2014年のILSVRC(ImageNet Large Scale Visual Recognition Challenge)で優勝した画像認識モデルである。このモデルは、Googleの研究チームによって開発され、従来の畳み込みニューラルネットワーク(CNN)と比較して、より深い層構造を持つ。具体的には、22層の深さを持ち、Inceptionモジュールと呼ばれる独自のアーキテクチャを採用している。Inceptionモジュールは、異なるサイズのフィルター(1×1、3×3、5×5)を並列に配置し、入力データから多様な特徴を同時に抽出することを可能にする。これにより、モデルの表現力が向上し、計算コストを抑えつつ高精度な画像認識を実現している。また、GoogLeNetはGlobal Average Pooling(GAP)を導入し、全結合層を削減することで過学習のリスクを低減している。さらに、Auxiliary Lossと呼ばれる補助的な損失関数を中間層に設けることで、勾配消失問題を緩和し、学習の安定性を高めている。GoogLeNetの登場により、深層学習モデルの設計において、層の深さだけでなく、幅や多様性を考慮したアーキテクチャの重要性が認識されるようになった。その後のモデル開発にも大きな影響を与え、Inceptionシリーズとしてさらなる改良が加えられている。

この説明には、GoogLeNetの3つの発明がすべて含まれています。①Inceptionモジュール(複数サイズのフィルタの並列化)、②Global Average Pooling(全結合層の削減)、③Auxiliary Loss(中間層の補助損失)です。それぞれが「表現力の向上」「過学習の抑制」「勾配消失の緩和」という別々の課題に対応している、という対応関係を押さえるのが理解の近道です。

🔍 しっかり理解する

Inceptionモジュール——深さだけでなく「幅」で勝負

2012年のAlexNet以降、CNNは層を深くするほど性能が上がることが分かってきましたが、深くするだけでは計算量が膨らみ、学習も難しくなります。GoogLeNetは「1つの層の中で複数の処理を並列に走らせる」という幅方向の工夫を持ち込みました。Inceptionモジュールでは、1×1、3×3、5×5の畳み込み(およびプーリング)を同じ入力に並列に適用し、結果を連結して次へ渡します。画像の中の特徴には大小さまざまなスケールがあるため、複数サイズのフィルタで多様な特徴を同時に抽出することが表現力の向上につながるのです。

また、3×3や5×5の畳み込みの前に1×1の畳み込みを挟んでチャンネル数を圧縮する工夫により、並列化しても計算コストを抑えられるように設計されています。「多様な特徴を捉えつつ計算量は増やさない」——これがInceptionモジュールの巧妙さです。

GAPと補助損失——深いネットワークを実用にする工夫

課題1: 過学習
巨大な全結合層はパラメータの塊
GAPで解決
特徴マップごとに平均1値へ集約し全結合層を削減
課題2: 勾配消失
22層の深さでは誤差が入口まで届きにくい
補助損失で解決
中間層にも出力層を設け勾配を注入

Global Average Pooling(GAP)は、最終段の特徴マップ1枚1枚をそれぞれ平均して1つの数値に集約する処理です。従来のCNNではネットワーク末尾の全結合層がパラメータの大半を占め、過学習の温床になっていましたが、GAPで置き換えることでパラメータを大幅に減らし、過学習のリスクを低減しました。

Auxiliary Loss(補助損失)は、ネットワークの途中に補助的な分類器(出力層)を設け、そこでも損失を計算する仕組みです。誤差逆伝播の際、深いネットワークでは勾配が入力側の層に届く頃には小さくなりすぎる勾配消失問題が起きやすいのですが、中間層から直接勾配を注入することでこれを緩和し、学習を安定させます。なお、この補助分類器は学習のための足場であり、推論時には使いません。

💡 具体例で考える

2014年ILSVRC——GoogLeNetとVGGの対照的なアプローチ

2014年のILSVRCは、優勝したGoogLeNetと準優勝のVGGという対照的な2モデルが登場した年として知られています。VGGが「3×3の畳み込みをひたすら積む」という単純さで深さを追求したのに対し、GoogLeNetはInceptionモジュールで幅と多様性を追求しました。同じ「深いCNN」でも設計思想がまったく違う2つが好成績を収めたことで、アーキテクチャ設計の研究が一気に活性化しました。翌2015年には残差接続を持つResNetが登場し、深さの限界がさらに更新されていきます。

Inceptionシリーズへの発展

GoogLeNetはInception v1とも呼ばれ、その後Batch Normalizationを取り入れた改良や、フィルタの分解による効率化などを経て、Inceptionシリーズとして発展を続けました。「1つのモジュールを設計し、それを積み重ねてネットワークを作る」というモジュール型の設計スタイルは、その後の多くのモデルに受け継がれています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「2014年優勝はVGG」は誤り — 2014年ILSVRCの優勝はGoogLeNetで、VGGは準優勝です。2012年優勝のAlexNet、2015年優勝のResNetとの年代の対応も混同しやすいので注意しましょう。
  • Inceptionモジュールの説明の入れ替え — 「異なるサイズのフィルタを並列に配置」がInceptionです。「残差接続(スキップ結合)」はResNetの特徴で、これを入れ替えた選択肢が定番のひっかけです。
  • 補助損失の目的 — Auxiliary Lossは勾配消失の緩和・学習の安定化のためで、過学習対策はGAP(全結合層の削減)の役割です。2つの工夫と目的の対応を逆にしないようにしましょう。
  • GoogLeNetの表記 — 初期の有名CNN「LeNet」への敬意を込めた綴りで、「GoogleNet」ではなく「GoogLeNet」(Lが大文字)です。

📝 試験でのポイント

💡 ポイント
  • 「2014年ILSVRC優勝・22層・Inceptionモジュール」の3点セットがGoogLeNetを特定する目印です。
  • Inceptionモジュールの定義「異なるサイズのフィルタ(1×1、3×3、5×5)を並列に配置し多様な特徴を同時に抽出」は、そのまま正誤判定に使われる想定です。
  • GAP=全結合層削減による過学習の低減、Auxiliary Loss=勾配消失の緩和と学習の安定化、という「工夫と目的の対応付け」が問われやすいポイントです。
  • AlexNet(2012)・VGG(2014準優勝)・ResNet(2015)との年代・特徴の対応付け問題も頻出の想定です。

📚 まとめ

💡 ポイント
  • GoogLeNetは、2014年のILSVRCで優勝したGoogle開発の22層CNNです。
  • 異なるサイズのフィルタを並列配置するInceptionモジュールで、計算コストを抑えつつ多様な特徴を同時に抽出します。
  • Global Average Poolingで全結合層を削減して過学習を抑え、中間層のAuxiliary Lossで勾配消失を緩和しています。
  • 「深さだけでなく幅・多様性も重要」という設計思想を示し、Inceptionシリーズとして発展を続けました。