CNN の古典的なネットワーク モデルに関する GoogleNet 論文の解釈

目次

1.グーグルネット

1.1 インセプションモジュール

1.1.1 1x1 コンボリューション

1.2 補助分類子の構造

1.3 GoogleNet ネットワーク構造図


1.グーグルネット

Inception-v1 としても知られるGoogleNetは、2014 年に Google チームによって提案された深層畳み込みニューラル ネットワーク アーキテクチャであり、画像分類と特徴抽出タスクに特化しています。ILSVRC (ImageNet Large Scale Visual Recognition Challenge) コンペティションで優れた結果を達成し、さまざまなスケールの機能に対するネットワークの認識を強化できるマルチスケール コンボリューション カーネル並列構造である「インセプション」モジュールを導入しました。

1.1 インセプションモジュール

GoogleNet は、さまざまなスケールの畳み込みカーネルを使用してさまざまなスケールの特徴を同時にキャプチャする「インセプション」モジュールを導入しました。これにより、ネットワークがさまざまなサイズのオブジェクトや構造物に適応しやすくなります。各インセプション モジュールには複数の並列畳み込み層とプーリング層が含まれており、それらの出力はチャネル次元で連結されます。

ここに画像の説明を挿入

 左の図は論文で提案されているインセプションの元の構造、右の図はインセプションの構造に次元削減関数を加えたものです。

まず左の図を見てください。開始構造には合計 4 つのブランチがあります。つまり、入力特徴行列はこれら 4 つのブランチを介して並列に 4 つの出力を取得し、これらの 4 つの出力を深さ次元 (チャネル次元) でつなぎ合わせます。最終的な出力を取得します (4 つのブランチの出力を深さ方向にステッチできるようにするには、4 つのブランチによって出力される特徴行列の高さと幅が同じであることを確認する必要があることに注意してください)。

  • ブランチ 1 は、コンボリューション カーネル サイズが 1x1、ストライド = 1 のコンボリューション層です。
  • ブランチ 2 は、畳み込みカーネル サイズが 3x3、ストライド = 1、パディング = 1 の畳み込み層です (出力特徴行列の高さと幅が入力特徴行列と等しくなるようにするため)。
  • ブランチ 3 は、コンボリューション カーネル サイズが 5x5、ストライド = 1、パディング = 2 のコンボリューション層です (出力特徴行列の高さと幅が入力特徴行列と等しくなるようにするため)。
  • ブランチ 4 は、プーリング カーネル サイズ 3x3、ストライド = 1、パディング = 1 の最大プーリング ダウンサンプリングです (出力特徴行列の高さと幅が入力特徴行列と等しくなるようにするため)。

左側の図と比較して右側の図を見ると、畳み込みカーネル サイズが 1x1 の畳み込み層がブランチ 2、3、および 4 に追加されています。目的は、次元を削減し、モデルのトレーニング パラメータを削減し、計算量を減らします。

注: 入力画像サイズを変更しない場合、ステップ サイズが 1 の場合、パディング = (コンボリューション カーネル サイズ - 1)/2 となります。

1.1.1  1x1 コンボリューション

1x1 コンボリューション: 1x1 コンボリューションは Inception モジュールで広く使用されており、チャネル数を削減して計算量を削減するために使用されます。1x1 畳み込みは、さまざまなチャネルからの特徴の線形結合のように機能して、複合特徴表現を作成します。

同様に、深さ 512 の特徴行列は、サイズ 5x5 の 65 個の畳み込みカーネルで畳み込まれます。1x1 畳み込みカーネルが次元削減に使用されない場合、合計 819,200 のパラメータが必要です。1x1 畳み込みカーネルが次元削減に使用される場合は、 、合計 50688 個のパラメーターが必要ですが、明らかにはるかに少ないです。

ここに画像の説明を挿入

 

1.2 補助分類子の構造

勾配消失の問題を解決するために、GoogleNet はいくつかの中間層に補助分類器を追加しています。これらの補助分類子は、トレーニング中の勾配伝播を支援すると同時に、ネットワークの中間層に監視信号を提供して、ネットワークのトレーニングを高速化するのに役立ちます。

2 つの補助分類子があり、その構造は次のとおりです。

ここに画像の説明を挿入

 これら 2 つの補助分類器の入力は、それぞれ Inception (4a) と Inception (4d) から取得されます。

  • 補助分類子の最初の層は、プーリング カーネル サイズが 5x5、ストライド = 3 の平均プーリング ダウンサンプリング層です。
  • 2 番目の層は畳み込み層で、畳み込みカーネルのサイズは 1x1、ストライド = 1、畳み込みカーネルの数は 128 です。
  • 3 番目の層は全結合層で、ノード数は 1024 です。
  • 4層目は全結合層で、ノード数は1000(分類に対応するカテゴリ数)です。

1.3 GoogleNet ネットワーク構造図

各畳み込み層の畳み込みカーネルの数を決定するにはどうすればよいですか? 以下は元の論文に記載されているパラメータ リストです。構築したインセプション モジュールの場合、必要なパラメータは #1x1、#3x3reduce、#3x3、#5x5reduce、#5x5 です。 、poolproj、これら 6 つのパラメーターは、使用されるコンボリューション カーネルの数に対応します。

ここに画像の説明を挿入

 このうち、#1x1はブランチ1の1x1コンボリューションカーネルの数に対応し、#3x3reduceはブランチ2の1x1コンボリューションカーネルの数に対応し、#3x3はブランチ2の3x3コンボリューションカーネルの数に対応し、#5x5reduceはブランチ2の1x1コンボリューションカーネルの数に対応します。 #5x5 はブランチ 3 の 1x1 コンボリューション カーネルの数に対応し、#5x5 はブランチ 3 の 5x5 コンボリューション カーネルの数に対応し、pool proj はブランチ 4 の 1x1 コンボリューション カーネルの数に対応します。

以下に示すように:

ここに画像の説明を挿入

 GoogleNet の全体的なネットワーク構造は次のとおりです。

ここに画像の説明を挿入

 

おすすめ

転載: blog.csdn.net/qq_43649937/article/details/132191289