GoogLeNet (G検定)

GoogLeNet

1. 定義と概要

GoogLeNetとは、Googleの研究チーム(クリスチャン・セゲディらが中心)が開発したCNNモデルです。2014年のILSVRC画像分類部門で優勝しました。インセプションモジュールと呼ばれる構成要素を積み重ねた22層のネットワーク構造を持ち、top-5エラー率(モデルが予測した上位5候補の中に正解が含まれていない割合を示す評価指標)は6.67%を記録しています。

このモデルは論文「Going Deeper with Convolutions」(2014年発表)で公表されました。名称は初期のCNNであるLeNetへの敬意を込めて名付けられています。

2012年のAlexNet以降、ネットワークを深く・大きくすることで精度を高める方向性が研究の主流でした。しかし単純に層を増やすと計算コストとパラメータ数(モデルが学習によって調整する数値の総数)が膨らみ、過学習(学習データに適応しすぎて新しいデータへの対応力が落ちる現象)のリスクも高まる課題がありました。

GoogLeNetは、インセプションモジュールを中核の部品として積み重ねる構成を採用し、モジュール内で1×1畳み込みによりチャンネル数を絞ってから後続の畳み込みを行うことで、計算量を抑えながら層を深くすることに成功しています。この結果、22層と当時としては深いネットワークでありながら、パラメータ数は約500万個にとどまり、8層のAlexNet(約6000万個)や同年ILSVRC準優勝の16層VGGNet(約1億3800万個)よりも大幅に少ない構成を実現しました。

2. 試験対策ポイント

まず整理したいのは、GoogLeNetの全体設計です。インセプションモジュールを部品として積み重ねた22層のネットワーク構造という位置づけが基本になります。モジュールの内部構成そのものよりも、複数サイズの畳み込みを並列に束ねた部品を積み重ねる全体像として捉えておきたいところです。

あわせて、1×1畳み込みが後続の畳み込み層の前段でチャンネル数を削減する役割を持つ点は中心的な論点のひとつになります。この工夫により、パラメータ数と計算量を抑えながら層を深くすることが可能になりました。

次に押さえておきたいのが、最終層の設計です。GoogLeNetは全結合層(前の層のすべてのユニットと結びつき、最終的な分類判断を行う層)をほぼ使わず、グローバルアベレージプーリング(各特徴マップの値をすべて平均して1つの数値にまとめる処理)を採用しました。この工夫によりパラメータ数をさらに削減し、過学習を抑える効果を得ています。

また、学習時のみ使う補助分類器(学習を安定させるためにネットワークの途中に追加する判定の仕組み)をネットワーク中間に配置しています。これにより勾配消失(層を伝わるうちに学習の手がかりとなる信号が弱まり、深い層まで学習が届きにくくなる現象)を緩和し、深いネットワークの学習を安定させました。

これら3つの工夫は、置かれる場所と狙いをセットにして整理すると混同しにくくなります。

設計上の工夫 置かれる場所 狙い
1×1畳み込み 後続の畳み込み層の前段 チャンネル数を絞り、パラメータ数と計算量を抑える
グローバルアベレージプーリング 最終層(全結合層の代わり) パラメータ数をさらに削減し、過学習を抑える
補助分類器 ネットワークの中間(学習時のみ) 勾配消失を緩和し、深い層の学習を安定させる

AlexNetからVGGNet、GoogLeNetへと続く系譜の中では、単純にフィルタを直列に重ねて深くする方向と、部品単位で工夫して効率よく深くする方向という設計思想の違いも取り違えやすい点です。

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

系譜に並ぶ3つのモデルは、層数とパラメータ数、そして深くするための方向性という軸で並べると違いが見えやすくなります。

モデル 層数 パラメータ数 深くするための方向性
AlexNet 8層 約6000万個 ネットワークを深く・大きくして精度を高める
VGGNet 16層 約1億3800万個 3×3の小さいフィルタを直列に重ねる
GoogLeNet 22層 約500万個 複数サイズの畳み込みを並列に束ねた部品を積み重ねる

AlexNetとの最大の違いは、層の深さとパラメータ数の関係にあります。AlexNetの8層に対してGoogLeNetは22層と層数が大幅に増えました。しかし、1×1畳み込みによる次元削減とグローバルアベレージプーリングの工夫により、パラメータ数はむしろ10分の1以下にとどまっています。層を深くするほどパラメータが増えるとは限らない組み合わせが、GoogLeNetの特徴です。

VGGNetとの最大の違いは、深くする際の設計思想にあります。VGGNetは3×3の小さいフィルタを直列に重ねてシンプルに層数を増やす設計です。これに対してGoogLeNetは、複数サイズの畳み込みを並列に束ねたインセプションモジュールを積み重ねる設計を採用しています。同じ「深いネットワークで精度を高める」目標に対して、直列に重ねるか部品単位で並列に工夫するかという方向性の違いが表れる点です。

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

医療画像診断の分野では、少ないパラメータ数で高い分類精度を出せるGoogLeNet系の設計思想が、計算資源が限られる医療機関の画像診断支援モデルの土台として応用されています。大規模な計算基盤を持たない施設でも、軽量な設計であれば導入や運用の負担を抑えながら画像診断支援を実現できます。

EC・小売の分野では、商品画像の自動カテゴリ分類やビジュアル検索に、GoogLeNet系の画像認識技術を用いた比較的軽量で高精度なCNNが活用されるようになりました。膨大な商品点数を扱う現場ほど、処理速度とコストのバランスを保ちながら分類精度を確保できる設計が実務上の価値を持ちます。

モバイル・組み込み機器の分野では、パラメータ数を抑えて層を深くする設計思想が、スマートフォンやエッジデバイス(クラウドを介さず、機器そのものでデータを処理する末端の機器)向けの軽量な画像認識モデルの発想源です。限られた電力や計算資源の中で高い精度を狙う設計の考え方は、現在の軽量モデル開発にも受け継がれています。

5. 要点まとめ

  • GoogLeNetは2014年のILSVRCで優勝した22層のCNNで、インセプションモジュールと呼ばれる部品を積み重ねた構成を持ちます。
  • 1×1畳み込みによる次元削減とグローバルアベレージプーリングの採用により、層数を増やしながらもパラメータ数はAlexNetやVGGNetより少ない約500万個に抑えられています。
  • VGGNetが3×3フィルタを直列に重ねる設計であるのに対し、GoogLeNetは複数サイズの畳み込みを並列に束ねる設計という、CNNアーキテクチャの系譜の中での位置づけを整理しておきたいところです。

6. 確認問題

問1GoogLeNetは、2014年のILSVRC画像分類部門で優勝した、インセプションモジュールを積み重ねた22層の畳み込みニューラルネットワークである。

解答・解説をみる

○ 正しい

GoogLeNetは2014年のILSVRCで優勝し、top-5エラー率6.67%を記録した22層のCNNで、インセプションモジュールを積み重ねた構成を持っています。名称は初期のCNNであるLeNetへの敬意を込めて名付けられました。

問2GoogLeNetは層数がAlexNetより大幅に多いにもかかわらず、1×1畳み込みによる次元削減などの工夫により、全体のパラメータ数はAlexNetより少ない。

解答・解説をみる

○ 正しい

GoogLeNetのパラメータ数は約500万個で、8層のAlexNet(約6000万個)より大幅に少なくなっています。1×1畳み込みによるチャンネル数削減とグローバルアベレージプーリングの採用が、この少なさに寄与しています。

問3GoogLeNetは最終層に全結合層を多用することで分類精度を高めており、グローバルアベレージプーリングは採用していない。

解答・解説をみる

× 誤り

正しくは、GoogLeNetは最終層で全結合層をほぼ使わず、グローバルアベレージプーリングを採用してパラメータ数を抑えています。全結合層を多用する記述は逆向きで、誤りです。