logo

VGG-16 | CNNモデル

畳み込みニューラル ネットワーク (CNN) アーキテクチャは、画像などの構造化されたグリッド状データを処理するために設計された深層学習モデルです。これは、畳み込み層、プーリング層、全結合層などの複数の層で構成されます。 CNN は、その階層的な特徴抽出機能により、画像分類、オブジェクト検出、画像セグメンテーションなどのタスクに非常に効果的です。

VGG-16

VGG-16 モデルは、オックスフォード大学の Visual Geometry Group (VGG) によって提案された畳み込みニューラル ネットワーク (CNN) アーキテクチャです。 13 の畳み込み層と 3 つの全結合層を含む 16 層で構成される深さが特徴です。 VGG-16 は、そのシンプルさと有効性だけでなく、画像分類やオブ​​ジェクト認識などのさまざまなコンピューター ビジョン タスクで優れたパフォーマンスを達成できることで有名です。モデルのアーキテクチャは、畳み込み層のスタックとそれに続く最大プーリング層を特徴とし、深さが徐々に増加します。この設計により、モデルは視覚的特徴の複雑な階層表現を学習できるようになり、堅牢で正確な予測が可能になります。 VGG-16 は、最近のアーキテクチャに比べてシンプルであるにもかかわらず、その多用途性と優れたパフォーマンスにより、依然として多くの深層学習アプリケーションで人気のある選択肢です。



ImageNet Large Scale Visual Recognition Challenge (ILSVRC) は、チームがオブジェクトの位置特定や画像分類などのタスクに取り組むコンピューター ビジョンの年次コンテストです。 2014 年に Karen Simonyan と Andrew Zisserman によって提案された VGG16 は、200 のクラスから物体を検出し、画像を 1000 のカテゴリに分類することで、両方のタスクでトップランクを達成しました。


coomeetのようなウェブサイト

VGG-16 アーキテクチャ



このモデルが実現するのは、 92.7% 上位 5 位以内 を含む ImageNet データセットの精度をテストします。 14 1000 のクラスに属する数百万の画像。

VGG-16 モデルの目的:

ImageNet データセットには、固定サイズの画像が含まれています。 224*224 RGBチャンネルもあります。したがって、次のテンソルがあります。 (224, 224, 3) 私たちのインプットとして。このモデルは入力画像を処理し、次のベクトルを出力します。 1000 値:

hat{y} =egin{bmatrix} hat{y_0} hat{y_1} hat{y_2} . . . hat{y}_{999} end{bmatrix}



このベクトルは、対応するクラスの分類確率を表します。画像がクラス 0 に属することを確率で予測するモデルがあるとします。 1 クラス1 確率的に 0.05 クラス2 確率的に 0.05 、 クラス 3 確率的に 0.03 クラス780 確率的に 0.72 、 クラス 999 確率的に 0.05 そして他のすべてのクラスは 0

したがって、この分類ベクトルは次のようになります。

hat{y}=egin{bmatrix} hat{y_{0}}=0.1 0.05 0.05 0.03 . . . hat{y_{780}} = 0.72 . . hat{y_{999}} = 0.05 end{bmatrix}

これらの確率が確実に加算されるようにするには、 1 , ソフトマックス関数を使用します。

ダイアナ・メアリー・ブラッカー

このソフトマックス関数は次のように定義されます。

hat{y}_i = frac{e^{z_i}}{sum_{j=1}^{n} e^{z_j}}

この後、最も可能性の高い 5 つの候補をベクトルに取り込みます。

C =egin{bmatrix} 780 0 1 2 999 end{bmatrix}

そして、グラウンド トゥルース ベクトルは次のように定義されます。

G = egin{bmatrix} G_{0} G_{1} G_{2} end{bmatrix}=egin{bmatrix} 780 2 999 end{bmatrix}

次に、Error 関数を次のように定義します。

E = frac{1}{n}sum_{k}min_{i}d(c_{i}, G_{k})

ハッシュセットとハッシュマップ

各グラウンド トゥルース ク​​ラスと予測された候補の間の最小距離が計算されます。ここで、距離関数 d は次のように定義されます。

  • d=0の場合c_i=G_k
  • それ以外の場合は d=1

したがって、この例の損失関数は次のようになります。

egin{aligned} E &=frac{1}{3}left ( min_{i}d(c_{i}, G_{1}) +min_{i}d(c_{i}, G_{2})+min_{i}d(c_{i}, G_{3}) ight ) &= frac{1}{3}(0 + 0 +0) &=0 end{aligned}

グラウンド トゥルースのすべてのカテゴリが予測上位 5 行列に含まれるため、損失は 0 になります。

VGG 建築:

VGG-16 アーキテクチャは、画像分類タスク用に設計されたディープ畳み込みニューラル ネットワーク (CNN) です。これは、オックスフォード大学の Visual Geometry Group によって導入されました。 VGG-16 は、そのシンプルさと均一なアーキテクチャを特徴としており、理解しやすく実装しやすくなっています。

カット・ティンフの妹

VGG-16 構成は通常、13 の畳み込み層と 3 つの完全接続層を含む 16 層で構成されます。これらの層はブロックに編成され、各ブロックには複数の畳み込み層が含まれ、その後にダウンサンプリング用の最大プーリング層が続きます。

VGG-16 アーキテクチャ マップ

提供された詳細に基づく VGG-16 アーキテクチャの内訳は次のとおりです。

  1. 入力レイヤー:
    1. 入力寸法: (224, 224, 3)
  2. 畳み込み層 (64 フィルター、3×3 フィルター、同じパディング):
    • それぞれ 64 個のフィルターと 3×3 のフィルター サイズを備えた 2 つの連続した畳み込み層。
    • 空間寸法を維持するために同じパディングが適用されます。
  3. 最大プーリング層 (2×2、ストライド 2):
    • プール サイズ 2×2、ストライド 2 の最大プーリング層。
  4. 畳み込み層 (128 フィルター、3×3 フィルター、同じパディング):
    • それぞれ 128 個のフィルターと 3×3 のフィルター サイズを備えた 2 つの連続した畳み込み層。
  5. 最大プーリング層 (2×2、ストライド 2):
    • プール サイズ 2×2、ストライド 2 の最大プーリング層。
  6. 畳み込み層 (256 フィルター、3×3 フィルター、同じパディング):
    • それぞれ 256 個のフィルターと 3×3 のフィルター サイズを備えた 2 つの連続した畳み込み層。
  7. 畳み込み層 (512 フィルター、3×3 フィルター、同じパディング):
    • それぞれ 512 個のフィルターと 3×3 のフィルター サイズを備えた 3 つの連続した畳み込み層の 2 セット。
  8. 最大プーリング層 (2×2、ストライド 2):
    • プール サイズ 2×2、ストライド 2 の最大プーリング層。
  9. 畳み込み層のスタックと最大プーリング:
    • 前のスタックの後にさらに 2 つの畳み込み層が追加されます。
    • フィルターサイズ:3×3。
  10. 平坦化:
    • 出力特徴マップ (7x7x512) をサイズ 25088 のベクトルに平坦化します。
  11. 完全に接続された層:
    • ReLU アクティベーションを備えた 3 つの完全に接続された層。
    • 最初のレイヤーの入力サイズは 25088、出力サイズは 4096 です。
    • 入力サイズ 4096、出力サイズ 4096 の 2 番目のレイヤー。
    • 入力サイズ 4096、出力サイズ 1000 の 3 番目のレイヤーは、ILSVRC チャレンジの 1000 クラスに対応します。
    • ソフトマックス アクティベーションは、分類のために 3 番目の全結合層の出力に適用されます。

このアーキテクチャは、ReLU アクティベーション関数の使用や、ソフトマックス アクティベーションを使用した 1000 クラスの最終完全接続層出力確率など、提供された仕様に従っています。

VGG-16 構成:

VGG-16 構成 C と D の主な違いは、一部の畳み込み層でのフィルター サイズの使用にあります。どちらのバージョンも主に 3×3 フィルターを使用しますが、バージョン D では、代わりに 1×1 フィルターが使用される場合があります。このわずかな違いによりパラメータ数が異なり、バージョン D はバージョン C に比べてパラメータ数がわずかに多くなります。ただし、どちらのバージョンも VGG-16 モデルの全体的なアーキテクチャと原則は維持されています。

異なる VGG 構成

画像内のオブジェクトの位置特定:

ローカリゼーションを実行するには、クラス スコアを境界ボックスの位置座標に置き換える必要があります。境界ボックスの位置は、4 次元ベクトル (中心座標(x,y)、高さ、幅) で表されます。ローカリゼーション アーキテクチャには 2 つのバージョンがあり、1 つは境界ボックスが異なる候補間で共有されるものです (出力は 4 パラメータ ベクトル)、もう 1 つはクラス固有のバウンディング ボックスです(出力は 4000 パラメータ ベクトル)。この論文では、VGG -16 (D) アーキテクチャで両方のアプローチを実験しました。ここでは、損失を分類損失から回帰損失関数 (たとえば、 MSE ) 予測損失のグラウンドトゥルースからの逸脱にペナルティを課します。

結果: VGG-16 は、ILSVRC チャレンジ 2014 で最もパフォーマンスの高いアーキテクチャの 1 つであり、分類タスクでは上位 5 位の分類エラーで次点となりました。 7.32% (分類エラーが発生した GoogLeNet の後ろのみ) 6.66% )。ローカリゼーションタスクでも優勝しました 25.32% ローカリゼーションエラー。

VGG 16 の制限:

  • トレーニングには非常に時間がかかります (元の VGG モデルは Nvidia Titan GPU で 2 ~ 3 週間トレーニングされました)。
  • VGG-16 でトレーニングされた imageNet の重みのサイズは次のとおりです。 528 MB。そのため、かなりのディスク容量と帯域幅が必要となり、非効率になります。
  • 1 億 3,800 万のパラメータにより、勾配爆発の問題が発生します。

さらなる進歩: VGG-16 で発生した勾配爆発の問題を防ぐために Resnet が導入されました。