Articles

画像分類のための畳み込みニューラルネットワークモデルの革新

さえずりシェアシェア

Last Updated on July5,2019

LeNet、AlexNet、VGG、Inception、ResNet畳み込みニューラルネットワークの革新

畳み込みニューラルネットワークは、二つの非常に単純な要素、すなわち畳み込み層とプーリング層で構成されています。

単純ですが、与えられたコンピュータビジョンの問題に対してこれらの層を配置する方法は無限に近い方法があります。,

幸いなことに、これらの層を構成するための一般的なパターンと、非常に深い畳み込みニューラルネットワークを開発するために使用できるアーキテクチャ 最先端の画像分類タスク用に開発されたこれらのアーキテクチャ設計上の決定を研究することは、独自の深い畳み込みニューラルネットワークモデル

このチュートリアルでは、困難な画像分類問題に畳み込みニューラルネットワークを使用するための重要なアーキテクチャマイルストーンを発見します。,

このチュートリアルを完了すると、次のことがわかります。

  • たたみ込みニューラルネットワークを実装するときに、フィルターの数とフィルターサイズをパター
  • よく実行されるモデルを開発するために、均一なパターンで畳み込み層とプーリング層を配置する方法。
  • はるかに深い畳み込みネットワークを開発するために開始モジュールと残差モジュールを使用する方法。

ステップバイステップのチュートリアルとすべての例のPythonソースコードファイルを含む、私の新しい本Deep Learning for Computer Visionでプロジェクトをキックスタートします。

始めましょう。,

  • 更新Apr/2019:LeNetのフィルタサイズの説明を修正しました(huangに感謝)。

チュートリアルの概要

このチュートリアルは六つの部分に分かれています。

  1. Cnnのアーキテクチャ設計
  2. LeNet-5
  3. AlexNet
  4. VGG
  5. インセプションとGoogLeNet
  6. 残留ネットワークまたはResNet

Cnnのアーキテクチャ設計

畳み込み層やプーリング層などの畳み込みニューラルネットワークは、理解するのが比較的簡単です。,

実際に畳み込みニューラルネットワークを使用することの難しい部分は、これらの単純な要素を最もよく使用するモデルアーキテクチャを設計する

を利用した有の学習の設計に有効convolutional神経ネットワークアーキテクチャの研究に成功。 これは、ImageNetの大規模な視覚認識チャレンジ、またはILSVRCのために2012年から2016年までのCnnの激しい研究と適用のために特に簡単です。, この課題は、非常に困難なコンピュータビジョンタスクのための最先端の急速な進歩と畳み込みニューラルネットワークモデルのアーキテクチャにおける一般的な革新の開発の両方をもたらした。

ILSVRCの前にCnnの最初の成功した重要なアプリケーションとしてしばしば記述されているLeNet-5から始め、ILSVRC用に開発された畳み込みニューラルネットワーク、すなわちAlexNet、VGG、Inception、およびResNetのための四つの異なる勝利のアーキテクチャ革新を見ていきます。,

これらのマイルストーンモデルとそのアーキテクチャまたはアーキテクチャの革新を高レベルから理解することにより、コンピュータビジョンにおけるCNN

コンピュータビジョンのための深層学習で結果をしたいですか?

今すぐ無料の7日間の電子メールクラッシュコースを受講してください(サンプルコード付き)。,

クリックしてサインアップし、コースの無料のPDF Ebookバージョンも入手してください。

無料のミニコースをダウンロード

LeNet-5

おそらく畳み込みニューラルネットワークの最初の広く知られていて成功したアプリケーションは、Yann LeCunらによって記述されたLeNet-5であった。 彼らの1998年の論文では、”Gradient-Based Learning Applied to Document Recognition”(get THE PDF)と題されています。

このシステムは、手書き文字認識問題に使用するために開発され、MNIST標準データセットで実証され、約99を達成しました。,2%の分類精度(または0.8%の誤り率)。 ネットワークとしての中央技術により幅広いシステムとグラフトランスネットワーク。

これは長い論文であり、おそらく焦点を当てるべき最良の部分はセクションII.Bです。LeNet-5アーキテクチャについて説明しています。 このセクションでは、MNISTデータセット内の画像のサイズである32×32の形状を有する入力グレースケール画像を有する七つの層を有するネットワークについ

このモデルは、サブサンプリング層と呼ばれる平均プーリング層に続く畳み込み層のパターンを提案する。, このパターンは、出力フィーチャマップが平tened化され、解釈と最終予測のために多数の完全に接続されたレイヤに供給される前に二回半繰り返されます。 ネットワークアーキテクチャの図は、論文で提供され、以下に再現されています。

手書き文字認識のためのLeNet-5畳み込みニューラルネットワークのアーキテクチャ(1998年の論文から取られた)。,

畳み込み層とプーリング層のブロックのパターンは、二十年以上後、今日の畳み込みニューラルネットワークの設計と使用において共通のパターンのままです。

興味深いことに、このアーキテクチャは、最初の隠れ層として少数のフィルタ、特に5×5ピクセルのサイズを持つ六つのフィルタを使用しています。, プーリング(サブサンプリング層と呼ばれる)の後、別の畳み込み層にはさらに多くのフィルターがあり、再びサイズは小さいが以前の畳み込み層、特に16個のフィルターのサイズは5×5ピクセルであり、その後にプーリングが続く。 畳み込み層とプーリング層のこれら二つのブロックの繰り返しでは、傾向はフィルタの数の増加である。

現代のアプリケーションと比較して、フィルタの数も少ないが、ネットワークの深さに伴ってフィルタの数を増やす傾向は、技術の現代の使用において共通のパターンのままである。,

フィーチャマップの平tening化、および完全に接続されたレイヤによる抽出されたフィーチャの解釈と分類も、今日でも一般的なパターンのままです。 現代の用語では、アーキテクチャの最後のセクションはしばしば分類器と呼ばれますが、モデルの前の畳み込み層とプーリング層は特徴抽出器と呼ばれ

現代のモデルに関連するアーキテクチャの重要な側面を次のように要約することができます。

  • 固定サイズの入力画像。
  • 畳み込み層とプーリング層をブロックにグループ化します。,
  • アーキテクチャにおける畳み込みプーリングブロックの繰り返し。
  • ネットワークの深さによってフィルタの数が増えます。
  • アーキテクチャの異なる特徴抽出と分類子部分。

AlexNet

おそらくニューラルネットワークへの新たな関心を引き起こし、多くのコンピュータビジョンアプリケーションにおける深い学習の優位性の始まりと信じることができる研究は、Alex Krizhevskyらによる2012年の論文であった。 タイトルは”深い畳み込みニューラルネットワークによるImageNet分類。,”

この論文では、ImageNetの大規模視覚認識チャレンジまたはILSVRC-2010コンペティションに対処するために設計された”AlexNet”と呼ばれるモデルについて説明します1,000異なるカテゴリのいずれかにオブジェクトの写真を分類するための競争.

ILSVRCは、コンピュータビジョンの分野における革新を促進するために設計された2011年から2016年まで開催された競争でした。 以前の開発AlexNet、タスクの考えた非常に難しく、遥かに超える機能の現代のコンピュータビジョンの方法。, AlexNetはドメイン内の畳み込みニューラルネットワークモデルの能力を実証することに成功し、さらに多くの改善と革新をもたらした火を燃やし、その後の より広義には、当時普及していた教師なしのプレトレーニング技術を使用せずに、困難な問題に対して深く効果的なエンドツーエンドモデルを開発することが可能であることを示した。

AlexNetの設計において重要なのは、新規または成功した一連の方法でしたが、当時は広く採用されていませんでした。, 現在、画像分類にCnnを使用する場合の要件となっています。

AlexNetは、それまで一般的であったロジスティックやtanhなどのS字型関数の代わりに、各畳み込み層の後の非線形として、整流線形活性化関数(ReLU)を利用しました。 また、出力層ではsoftmax活性化関数が使用され、現在はニューラルネットワークによるマルチクラス分類の定番となっています。,

LeNet-5で使用されている平均プーリングは最大プーリング法に置き換えられましたが、この場合、オーバーラッププーリングは現在一般的に使用されている非オーバーラッププーリングよりも優れていることがわかりました(例えば、プーリング操作のストライドはプーリング操作と同じサイズ、例えば2×2ピクセルです)。 オーバフィッティングに対処するために,新しく提案したドロップアウト法をモデルの分類器部分の完全結合層間で用い,汎化誤差を改善した。

AlexNetのアーキテクチャは深く、LeNet-5で確立されたいくつかのパターンに拡張されています。, 論文から取られた下の画像は、モデルアーキテクチャをまとめたもので、この場合は、時間のGPUハードウェア上で訓練するために二つのパイプラインに分割

オブジェクト写真分類のためのAlexNet畳み込みニューラルネットワークのアーキテクチャ(2012年の論文から撮影)。

モデルは、モデルの特徴抽出部分に五つの畳み込み層を有し、モデルの分類器部分に三つの完全連結層を有する。

入力画像は、三つのカラーチャンネルで224×224のサイズに固定されました。, 各畳み込み層で使用されるフィルタの数に関しては、LeNetで見られる深さのフィルタの数を増やすパターンがほとんど付着しており、この場合、96、256、384、384、256のサイズ 同様に、深さでフィルター(カーネル)のサイズを小さくするパターンが使用され、11×11のサイズが小さくなり、5×5に減少し、より深い層では3×3に減少した。 5×5や3×3などの小さなフィルターの使用が標準になりました。,

モデルの特徴検出部分の開始と終了で、畳み込み層の後にプーリング層のパターンを使用しました。 興味深いことに,畳み込み層のパターンに続いて第二の畳み込み層が使用された。 このパターンも現代の標準となっています。

このモデルは、データ拡張によって訓練され、訓練データセットのサイズを人為的に増加させ、モデルに異なる方向で同じ特徴を学習する機会をより多く与えました。,

我々は、次のように現代のモデルに関連するアーキテクチャの重要な側面を要約することができます:

  • 出力層のための畳み込み層とsoftmaxの後にReLU活性化関数
  • 平均プーリングの代わりに最大プーリングを使用します。
  • 完全に接続された層間のドロップアウト正則化の使用。
  • 畳み込み層のパターンは、別の畳み込み層に直接供給されます。
  • データ増強の使用。,

VGG

コンピュータビジョンタスクのための深い畳み込みニューラルネットワークの開発は、AlexNetの後に少し暗い芸術のように見えました。

深い畳み込みネットワークのアーキテクチャ設計を標準化し、その過程でより深く、より優れたパフォーマンスモデルを開発した重要な研究は、Karen SimonyanとAndrew Zissermanによる2014年の論文”Very Deep Convolutional Networks for Large-Scale Image Recognition”である。

彼らのアーキテクチャは、一般的に彼らの研究室、オックスフォードのVisual Geometry Groupの名前の後にVGGと呼ばれています。, 彼らのモデルは同じilsvrc競争、この場合はILSVRC-2014バージョンの挑戦です。

デファクトスタンダードとなった最初の重要な違いは、多数の小さなフィルターを使用することです。 具体的には、3×3と1×1の大きさのフィルターは、LeNet-5の大きなサイズのフィルターとは異なり、AlexNetの小さいが比較的大きなフィルターと大きなストライドとは異なる。,

最大プーリング層は、AlexNetの例から学んだほとんどの、すべてではないが畳み込み層の後に使用されますが、すべてのプーリングはサイズ2×2と同じストライドで行われ、それも事実上の標準となっています。 具体的には、VGGネットワークは、最大プーリング層が使用される前に一緒に積み重ねられた二、三、さらには四つの畳み込み層の例を使用します。 理論的根拠は、より小さなフィルタを有する積み重ね畳み込み層が、より大きなサイズのフィルタを有する一つの畳み込み層の効果に近似すること, 3×3フィルターを持つ三つの積み重ねた畳み込み層は、7×7フィルターを持つ畳み込み層を近似します。

もう一つの重要な違いは、使用されるフィルタの数が非常に多いことです。 フィルターの数はモデルの深さとともに増加しますが、比較的多数の64から始まり、モデルの特徴抽出部分の最後に128、256、および512のフィルターまで増加

アーキテクチャのいくつかの変種が開発され、評価されましたが、二つはその性能と深さを考えると最も一般的に言及されています。, それらは層の数のために示されます:それらはそれぞれ16および19の学習された層のためのVGG-16およびVGG-19です。VGG-16およびVGG-19バージョンのアーキテクチャで使用されている構成(フィルタの数)を示す二つの右端の列に注意してください。

オブジェクト写真分類のためのVGG畳み込みニューラルネットワークのアーキテクチャ(2014年の論文から撮影)。,

VGGモデルにおける設計上の決定は、一般的に畳み込みニューラルネットワークの単純かつ直接的な使用の出発点となっています。

最後に、VGGの仕事は、深い学習コンピュータビジョンの研究者の間で傾向につながった寛容なライセンスの下で貴重なモデルの重みをリリースする これは、順番に、新しいコンピュータビジョンタスクの出発点として転送学習でVGGのような事前に訓練されたモデルの大量の使用につながっています。,

現代のモデルに関連するアーキテクチャの重要な側面を次のように要約することができます。

  • 非常に小さな畳み込みフィルタの使用、例えば3×3と1×1
  • 2×2のサイズと同じ寸法のストライドで最大プーリングを使用します。
  • ブロックを定義するためにプーリング層を使用する前に、畳み込み層を一緒に積み重ねることの重要性。
  • 畳み込みプーリングブロックパターンの劇的な繰り返し。
  • 非常に深い(16層および19層)モデルの開発。,

インセプションとGoogLeNet

畳み込み層の使用における重要な革新は、Christian Szegedyらによる2015年の論文で提案されました。 タイトルは”畳み込みでより深く行く。”

この論文では、inception(または拡張機能と区別するためのinception v1)と呼ばれるアーキテクチャと、Ilsvrc challengeの2014バージョンで最高の結果を達成したGoogLeNetと呼ばれる特定

インセプションモデルの重要な革新は、インセプションモジュールと呼ばれます。, これは、異なるサイズのフィルターを持つ並列たたみ込み層のブロックです(例えば1×1, 3×3, 5×5) そして、3×3の最大プーリング層があり、その結果が連結されます。 以下は、論文から取られたinceptionモジュールの例です。

素朴なインセプションモジュールの例(2015年の論文から取られた)。

インセプションモデルの素朴な実装の問題は、特にインセプションモジュールがスタックされているときに、フィルター(深さまたはチャネル)の数が速く,

より大きなフィルターサイズ(例えば3および5)で畳み込みを実行すると、多数のフィルターで計算コストがかかる可能性があります。 これに対処するために、1×1畳み込み層を使用して、開始モデル内のフィルターの数を減らします。 具体的には、3×3および5×5畳み込み層の前およびプーリング層の後。 論文から取られた下の画像は、inceptionモジュールへのこの変更を示しています。

次元削減を伴うインセプションモジュールの例(2015年の論文から取られた)。,

インセプションモデルの第二の重要な設計上の決定は、モデル内の異なる点で出力を接続することでした。 これは、予測を行うために訓練されたメインネットワークから小さなオフシュート出力ネットワークを作成することに 目的は、消失勾配問題に対処するために、深いモデルの異なる点で分類タスクから追加の誤差信号を提供することでした。 これらの小さな出力ネットワークが撤去されます。,

以下は、左の入力から右の出力分類までのインセプションモジュールと、トレーニング中にのみ使用された二つの追加の出力ネットワークを使用して、論文から取ったGoogLeNetモデルのアーキテクチャの回転バージョン(入力から出力の場合は左から右)を示しています。

オブジェクト写真分類のトレーニング中に使用されるGoogLeNetモデルのアーキテクチャ(2015年の論文から撮影)。,

興味深いことに、重複する最大プーリングが使用され、モデルの分類子部分の前にモデルの特徴抽出部分の最後に大きな平均プーリング操作が

我々は、次のように現代のモデルに関連するアーキテクチャの重要な側面を要約することができます:

  • インセプションモジュールの開発と繰り返し。
  • チャネル数を減らすために1×1畳み込みを多用します。
  • ネットワーク内の複数のポイントでのエラーフィードバックの使用。
  • 非常に深い(22層)モデルの開発。,
  • モデルの出力にグローバル平均プーリングを使用します。

残留ネットワークまたはResNet

私たちがレビューする畳み込みニューラルネットにおける最終的な重要な革新は、Kaiming Heらによって提案された。 2016年の論文では、”画像認識のための深い残留学習”と題されています。”

この論文では、著者らは残差ネットワークまたは略してResNetと呼ばれる非常に深いモデルを提案し、その例はILSVRC challengeの2015バージョンで成功を収めました。

彼らのモデルは印象的な152層を持っていました。, モデル設計の鍵は、ショートカット接続を利用する残留ブロックのアイデアです。 これらは、入力がそのまま(重み付けされていない)保持され、次の層をスキップするなど、より深い層に渡されるネットワークアーキテクチャ内の単なる接

残差ブロックは、ブロックの出力がブロックへの入力、例えばショートカット接続と組み合わされるReLU活性化を伴う二つの畳み込み層のパターンです。 ブロックへの入力の形状がブロックの出力と異なる場合、1×1を介して使用される入力の投影バージョン、いわゆる1×1畳み込み。, これらは、重み付けされていないショートカット接続またはidショートカット接続と比較して、投影され

著者らは、VGGに触発された小さなフィルタ(3×3)を持つ深い畳み込みニューラルネットワークであり、グループ化された畳み込み層の間にプーリングがなく、softmax活性化関数を持つ完全に接続された出力層の前にモデルの特徴検出部の最後に平均プーリングであるプレーンネットワークと呼ぶものから始める。,

平野のネットワークが変更されな残存ネットワークの追加でショートカットの接続を定義するためには残存。 通常、ショートカット接続の入力の形状は、residualブロックの出力と同じサイズになります。

下の画像は論文から取られ、左から右にVGGモデルのアーキテクチャ、プレーン畳み込みモデル、および残差ネットワークと呼ばれる残差モジュールを持つ平,

オブジェクト写真分類のための残留ネットワークのアーキテクチャ(2016年の論文から撮影)。

次のように我々は、現代のモデルに関連するアーキテクチャの重要な側面を要約することができます:

  • ショートカット接続の使用。
  • 残留ブロックの開発と繰り返し。
  • 非常に深い(152層)モデルの開発。

さらに読む

このセクションでは、より深く行くために探している場合は、トピックに関するより多くのリソースを提供します。,

論文

  • 文書認識に適用される勾配ベースの学習,(PDF)1998.
  • 深い畳み込みニューラルネットワークによるImageNet分類,2012.
  • 大規模な画像認識のための非常に深い畳み込みネットワーク、2014。
  • 畳み込みでより深く行く、2015。
  • Deep Residual Learning for Image Recognition,2016

API

  • Keras Applications API

Articles

  • 知っておくべき9つの深層学習ペーパー
  • インセプションネットワークのバージョンへの簡単なガイド、2018。,
  • CNNアーキテクチャ:LeNet、AlexNet、VGG、GoogLeNet、ResNetなど。, 2017.

Summary

このチュートリアルでは、困難な画像分類に畳み込みニューラルネットワークを使用するための重要なアーキテクチャマイルストーンを発見しました。

具体的には、

  • 畳み込みニューラルネットワークを実装するときに、フィルターの数とフィルターサイズをパターン化する方法を学びました。
  • よく実行されるモデルを開発するために、均一なパターンで畳み込み層とプーリング層を配置する方法。,
  • はるかに深い畳み込みネットワークを開発するために開始モジュールと残差モジュールを使用する方法。li>

あなたは何か質問がありますか?
以下のコメントでご質問をして、私は答えるために最善を尽くします。

今日のビジョンのための深い学習モデルを開発!

数分で独自のビジョンモデルを開発します

。..,pythonコードのわずか数行で

どのように私の新しい電子ブックで発見:
コンピュータビジョンのためのディープラーニング

それはのようなトピックに関する自習チュートリアルを提供します:
分類、オブジェクト検出(yoloとrcnn)、顔認識(vggfaceとfacenet)、データ準備とはるかに。..

最後に、あなたのビジョンプロジェクトに深い学習をもたらす

学者をスキップします。 ちょうど結果。

中身を見る

ツイートシェアシェア