[ディープラーニングシリーズ] PaddlePaddleとTensorflowでGoogLeNet InceptionV2/V3/V4を実装する

[ディープラーニングシリーズ] PaddlePaddleとTensorflowでGoogLeNet InceptionV2/V3/V4を実装する

前回の記事では、GoogLeNet InceptionV1のネットワーク構造を紹介しました。この記事では、Inception V2/V3/V4の開発履歴と、そのネットワーク構造とハイライトについて詳しく説明します。


GoogLeNet インセプション V2

GoogLeNet Inception V2 は、「バッチ正規化: 内部共変量シフトの削減によるディープ ネットワーク トレーニングの高速化」に登場しました。注目すべきは、次の役割を果たすバッチ正規化メソッドです。

  • 勾配の爆発や消失などの最適化の問題を気にせずに、大きな学習率を使用します。
  • モデル効果の初期重みへの依存を減らしました。
  • 収束を加速することができます。ある程度、収束速度を低下させる手法であるドロップアウトを使用する必要はありませんが、正規化の役割を果たしてモデルの一般化を向上させます。
  • ReLU を使用しなくても、活性化関数の飽和問題は軽減できます。
  • 現在の層から次の層への分布スケーリング(スケーリング(分散)、シフト(期待値))係数を学習できます。

機械学習では通常、トレーニング サンプルは独立かつ同一に分布 (iid) しており、トレーニング サンプルの分布はテスト サンプルの分布と一致しているという仮定を立てます。実際のデータがこの仮定を満たしている場合、モデルの効果は良好である可能性があり、その逆も同様です。これは学術的には共変量シフトと呼ばれており、サンプル (外部) の観点からは、ニューラル ネットワークでも同じことが言えます。構造的(内部的)な観点から見ると、ニューラルネットワークは複数の層で構成されているため、特徴を抽出しながらサンプルを層間で伝播させます。各層の入力分布に一貫性がなければ、必然的にモデル効果が悪かったり、学習速度が遅くなったりします。学術的には、これを内部共変量シフトと呼びます。

仮定: y yはサンプルラベル、 X = { x 1 x 2 x 3 ... . . . . } X ={x1、x2、x3、......}サンプルx x がニューラルネットワークの複数の層を通過した後の各層の入力です。

理論的には、 p ( x , y ) p(x,y)の結合確率分布は、次のように、セットX X内の任意の入力層の結合確率分布と一致するはずです。 p ( x , y ) = p ( x 1 , y ) p(x,y)=p(x1,y) ;

P x x ⋅p x y = p x ....しかし 神経各層つまりP X 1 P X 2

BN アルゴリズムのプロセス全体は次のとおりです。

  • トレーニングはバッチモードで行われます。m 個のサンプルの期待値と分散を計算した後、トレーニング データがホワイトニングされます。ホワイトニング操作により、特徴の相関関係が除去され、データが球面上にスケーリングされます。これを行う利点は、最適化アルゴリズムを高速化でき、最適化の精度も向上できることです。直感的な説明は次のとおりです。

左側は白色化なしの元の実行可能領域、右側は白色化後の実行可能領域です。

  • モデルの学習にとってより有益な場合に元の入力を復元できる (残差ネットワークと同様):

ここでパラメータγ γσ σを学習する必要があります。

畳み込みニューラルネットワークにおけるバッチ正規化

畳み込みネットワークでは重み共有戦略が採用されており、各特徴マップに対してγσペアを 1 つだけ学習する必要があります。


GoogLeNet インセプション V3

GoogLeNet Inception V3 は、「コンピュータ ビジョンの Inception アーキテクチャの再考」で提案されました (この論文では、著者はネットワーク構造を v2 と呼んでいますが、最終バージョンの v4 を標準として使用しています)。この論文のハイライトは次のとおりです。

  • 一般的なネットワーク構造設計原則を提案する
  • 畳み込み分解を導入して効率を向上
  • 効率的な特徴マップ次元削減の導入

ネットワーク構造設計の原則

前述のように、ディープラーニング ネットワークの探究は実験科学に近いものです。実験では、いくつかの構造設計原則がまとめられていますが、正直に言うと、必ずしも実用的ではないと思います。

  • 特にニューラルネットワークの最初の数層における特徴表現のボトルネックを回避する

ニューラルネットワークには、多層畳み込みなどの特徴を自動的に抽出するプロセスが含まれています。ネットワークの初期段階で抽出された特徴が粗すぎると詳細が失われ、後で構造を洗練しても効果的に表現できないことは直感的かつ常識的に理解できます。極端な例を挙げると、宇宙の惑星を識別するために、通常は近くから遠くへ、家、木、海、大陸プレートから惑星全体、そして宇宙全体へと進みます。最初から宇宙に直接ズームアウトすると、すべての惑星が球体であり、どれが地球でどれが水星であるかを区別できないことがわかります。したがって、レイヤー数が深くなるにつれて特徴マップのサイズは徐々に小さくなるはずですが、特徴を効果的に表現して組み合わせるために、チャネルの数は徐々に増加します。

次の図はこの原則に違反しています。最初は直接サンプリングして 35×35×320 から 17×17×320 に縮小しており、多数の特徴の詳細が失われています。後で Inception を使用してさまざまな特徴の抽出と組み合わせを実行しても、役に立ちません。

  • ニューラル ネットワークの特定の層では、より多くの活性化出力ブランチが相互に分離された特徴表現を生成し、高次のスパース特徴を生成して、収束を加速することができます。下の図の 1×3 および 3×1 の活性化出力に注意してください。

  • 次元削減を適切に使用すれば、ネットワークの特徴表現能力が損なわれることなく、収束を高速化できます。典型的な例は、1 つの 5×5 を 2 つの 3×3 に置き換える次元削減戦略です。パディングを考慮せずに、1 つの 5×5 の代わりに 2 つの 3×3 を使用すると、計算コストを 1-(3×3+3×3)/(5×5)=28% 節約できます。

  • また、n×n 畳み込みカーネルは、2 つの 1×n カーネルと n×1 カーネルを順番に接続することで次元を削減するために使用されます (行列分解に少し似ています)。n=3 の場合、計算パフォーマンスは 1-(3+3)/9=33% 向上します。ただし、高性能コンピューティングのパフォーマンスを考慮すると、この分解によって L1 キャッシュ ミス率が増加する可能性があります。

  • ネットワークの幅と深さを適切にバランスさせることにより、ネットワークの計算オーバーヘッドを最適化します (この記述は特に非現実的です)。
  • サンプリング次元削減では、従来のサンプリング方法はプーリング+畳み込み演算です。特徴表現のボトルネックを防ぐために、多くの場合、より多くの畳み込みカーネルが必要です。たとえば、入力はn d×d特徴マップで、k個の畳み込みカーネルがあり、プーリング中のストライド= 2です。特徴表現のボトルネックを回避するために、kの値は2nであることがよくあります。インセプションモジュール構造を導入することで、特徴表現のボトルネックなしで計算の複雑さが軽減されます。これを実現するには2つの方法があります。

スムーズなサンプル注釈

マルチ分類サンプルの場合、注釈は一般的にワンホット([0,0,0,1]など)です。クロスエントロピーに似た損失関数を使用すると、モデルは学習中にグラウンドトゥルースラベルに自信過剰な確率を割り当てます。さらに、グラウンドトゥルースラベルのロジット値が他のラベルと大きく異なるため、過剰適合が発生し、一般化が低下します。 1 つの解決策は、正規化項を追加することです。つまり、サンプル ラベルの確率分布を調整して、サンプル注釈が「ソフト」になるようにします (例: [0.1、0.2、0.1、0.6])。この方法により、実験でトップ 1 とトップ 5 のエラー率が 0.2% 減少しました。

ネットワーク構造


GoogLeNet インセプション V4

GoogLeNet Inception V4/およびResNet V1/V2の3つの構造は、論文「Inception-v4、Inception-ResNet、および残余接続の学習への影響」で提案されました。この論文のハイライトは、より優れたGoogLeNet Inception v4ネットワーク構造を提案し、それを残余ネットワークと統合し、v4に劣らず、トレーニング速度が速い構造を提案していることです。

GoogLeNet Inception V4 ネットワーク構造

GoogLeNet Inception ResNet ネットワーク構造


コーディング練習

  Tensorflow コードは slim モジュールに完全実装されており、PaddlePaddle コードは前回の記事で書いた inception v1 コードを参考に記述することができます。


要約する

この記事はより理論的な内容で、主にGoogLeNetのインセプションモジュールの開発について説明しています。これにはv2で提案されたバッチ正規化、v3で提案された畳み込み階層とより一般的なネットワーク構造基準、v4での残差ネットワークとの組み合わせが含まれます。実際のアプリケーションでは、同じデータを異なるネットワーク構造で実行して結果を確認し、異なるネットワーク構造の損失削減率、精度の向上などを実際に体験できます。

<<:  10社にインタビュー、機械学習のインタビュー内容をまとめました

>>:  アクセラレーションクラウドが新製品を発売、異種コンピューティングアクセラレーションプラットフォームがAIと高性能コンピューティングのビジネスニーズに効果的に対応

ブログ    

推薦する

アリババの音声ロボットが李佳琦の生放送室に登場、その応答速度はSiriの20倍

10月30日、終了したばかりの李佳琦のライブ放送室で、オンラインショッピング客はアリババの音声ロボッ...

目に見えない戦場の技術である人工知能は、サイバー戦争にどのように応用できるのでしょうか?

[[339414]]英国のジェーンズ・ディフェンスのウェブサイトによると、米国防高等研究計画局のピ...

...

...

...

AIの革命的道: OpenAIのGPT-4ツアー

ソフトウェア開発者は OpenAI の GPT-4 を使用して複数のアプリケーションを生成し、時間の...

5Gで「選ばれる」分野!自動運転バスがあなたのところにやって来ます

自動運転タクシー、バス、道路清掃車、物流配送車... 自動運転技術の急速な発展により、これらの無人車...

人工知能とビッグデータを完璧に組み合わせる方法

[[271155]]ビッグデータと AI ツールを組み合わせることで、新しい形式の分析と自動化が可能...

...

「ユーザーを数える」、なぜTikTokはこんなにも中毒性があるのでしょうか?

かわいい子犬や遊び好きな子猫を見るのが好きな人はいないでしょうか?特に、新型コロナウイルス感染症のパ...

ChatGPTを使った学生の不正行為を防ぐため、一部の大学教授は紙ベースの試験と手書きのエッセイへの復帰を検討している。

8月14日、人工知能(AI)の発展は教育に新たな課題をもたらしました。フォーチュン誌の最近の報道に...

アルゴリズムなしでもTikTokを購入する価値はあるでしょうか?技術専門家:購入者がその魔法を再現するのは難しい

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能と自然言語処理技術

人工知能技術の発展に伴い、コンピューターを使って外国の文書を翻訳するなど、私たちの生活の多くのアプリ...

...

AI のゴッドファーザーであるヒントンは、なぜ自らが作り出した人工知能を恐れているのでしょうか?

ジェフリー・ヒントンは、コンピューターに学習方法を教えることに生涯を費やしてきました。今、彼は人工脳...