畳み込みニューラルネットワークの畳み込みステップは何をしますか?


16

コンピュータービジョンへの応用のため、畳み込みニューラルネットワーク(CNN)を研究しています。私はすでに標準のフィードフォワードニューラルネットワークに精通しているので、ここの一部の人々がCNNを理解するための追加のステップを手伝ってくれることを望んでいます。CNNについて私が考えることは次のとおりです。

  1. 従来のフィードフォワードNNでは、各要素が「入力レイヤー」でNNに入力する特徴ベクトルで構成されるトレーニングデータがあるため、画像認識では、各ピクセルを1つの入力にすることができます。これらは私たちの特徴ベクトルです。または、他の(おそらく小さい)特徴ベクトルを手動で作成することもできます。
  2. CNNの利点は、画像の歪みと位置により不変な、より強力な特徴ベクトルを生成できることです。次の図に示すように(このチュートリアルから)、CNNは機能マップを生成し、それが標準のニューラルネットワークに送られます(実際、これは巨大な前処理ステップです)。

ここに画像の説明を入力してください

  1. これらの「より良い」機能を得る方法は、畳み込みとサブサンプリングを交互に行うことです。サブサンプリングの仕組みを理解しています。各機能マップについて、ピクセルのサブセットを取得するか、ピクセルの値を平均化できます。

しかし、私が主に混乱しているのは、畳み込みステップの仕組みです。私は確率理論(2つのランダム変数の合計の密度)からの畳み込みに精通していますが、CNNでどのように機能し、なぜ効果的ですか?

私の質問はこれに似ていますが、特に、最初の畳み込みステップが機能する理由がわかりません。

回答:


16

まず、CNNの背後にある直感を共有してから、リストした特定のトピックにコメントしてみます。

CNNの畳み込み層とサブサンプリング層は、一般的なMLPの隠れ層と違いはありません。つまり、それらの機能は入力から特徴を抽出することです。これらの機能は、さらに複雑な機能を抽出するために次の非表示レイヤーに与えられるか、最終的な予測を出力するために標準分類器に直接与えられます(通常はSoftmaxですが、SVMまたは他のものも使用できます)。画像認識のコンテキストでは、これらの機能は、下層のストロークパターンや上層のオブジェクト部分のような画像処理です。

自然画像では、これらの特徴はすべての場所で同じである傾向があります。画像の中央にある特定のストロークパターンを認識することは、境界の近くでそれを認識するのと同じくらい便利です。では、入力画像のすべての領域で非表示レイヤーを複製し、その複数のコピーを接続して、同じフィーチャをどこでも検出できるようにしませんか?それはまさにCNNが行うことですが、効率的な方法です。複製(「畳み込み」ステップ)の後、サブサンプルステップを追加します。これはさまざまな方法で実装できますが、サブサンプルにすぎません。理論的には、このステップは削除することもできますが、実際には、問題を扱いやすくするために不可欠です。

したがって:

  1. 正しい。
  2. 上記で説明したように、CNNの隠しレイヤーは、通常のMLPの場合と同様に特徴抽出機能です。交互の畳み込みとサブサンプリングのステップは、トレーニングと分類の間に行われるため、実際の処理の「前」に行われるものではありません。MLPの隠された層がそう呼ばれないのと同じように、私はそれらを「前処理」と呼びません。
  3. 正しい。

3×35×5

ここに画像の説明を入力してください

9

後続の畳み込みとサブサンプリングのステップは同じ原理に基づいていますが、元の画像の生のピクセルの代わりに、前のレイヤーで抽出された特徴に対して計算されます。


説明をありがとう。あなたが言及したそのチュートリアルをチェックします。
ComputerScientist 14

本当に素敵なイラストグラフィック。参照作業を参照してください:M. Egmont-Petersen、D。de Ridder、H。Handels。ニューラルネットワークによる画像処理-レビュー、パターン認識、Vol。35、No。10、pp。2279-2301、2002
マッチメーカーEE

4年後、今ではほぼ毎日CNNで仕事をしています。@Saul Berardoからのこの投稿は、私が正しい軌道に乗るのを本当に助けてくれました:)
ComputerScientist

1

「なぜ最初の畳み込みステップが機能するのか」という意味がわかりません。CNNを成功させるには、多くのレイヤーが必要です。CNNやその他の多くのディープラーニングアプローチの背後にある基本的な考え方の1つは、大まかな信号は、スパースに表現できる小さな部分の空間相関によって識別できるということです。つまり、画像は複雑に見えるかもしれませんが、いくつかの基本的な部分の組み合わせから作られています。コンピュータービジョンの場合、画像のベースライン構造は通常、エッジとコーナーで構成されます。CNNは、共通のローカライズされた構造を探すことにより、画像内の構造の疎さを悪用しようとします。それが、CNNの最初の層が決定しようとしていることです。畳み込みは、特定のテンプレートに一致する信号を探している一致フィルターと考えてください。どの程度うまく機能するかは、手元のデータに依存します。幸いなことに、世界は小規模な繰り返しに満ちているため、CNNはコンピュータービジョンタスクに適しています。


ええ、それが一般的な考え方だと思います。私は元の質問では明確ではありませんでしたが、数学がなぜ機能したのか、つまり畳み込みプロパティ自体最初のレイヤーでそれらの小さな部分を見つけることができる理由を疑問に思っていました。
ComputerScientist 14

1
畳み込みと整合フィルタリングの詳細をご覧ください。畳み込みカーネルが信号と一致すると、最大のリターンが得られます。
SimpleLikeAnEgg 14

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.