たたみ込みニューラルネットワークが機能する理由


22

なぜ畳み込みニューラルネットワークがまだよく理解されていないのかと言う人をよく耳にします。畳み込みニューラルネットワークが、層を上るにつれて常に洗練された機能を学習することになります。それらがそのような機能のスタックを作成した原因は何ですか?これは他のタイプのディープニューラルネットワークにも当てはまりますか?


このビデオの後半でジェレミー・ハワードからグレート説明:youtube.com/watch?v=ACU-T9L4_lI
ダン

2
あなたは誤解していると思います。convnetsは、アルゴリズムのクラスとして動作し、なぜ私たちは絶対にかなりよく理解しています。一方、特定のモデルは、特定の予測をした理由を理解することは、しばしば非常に困難です。これは、私たちが「ブラックボックスモデルをそれらを呼び出す理由である:その推論過程が私たちに不透明であることは、我々は、彼らが効果的である理由について混乱しているという意味ではありません。。
デビッド・マルクス

回答:


19

実際、質問は少し広いと思います!とにかく。

畳み込みネットについて

何で学習されConvNetsた分類タスクに正しく入力を分類するために、コスト関数を最小化しようとします。すべてのパラメータ変更と学んだフィルターは上記の目的を達成するためにあります。

さまざまなレイヤーで学習した機能

彼らは、最初のレイヤーで水平線や垂直線などの低レベルの、時には無意味な機能を学習し、それらを積み重ねて最後のレイヤーで意味を持つことが多い抽象的な形状を作成することでコストを削減しようとします。この図を示します。使用されてきた1、ここでは、考えることができます。入力はバスであり、グリッドは、入力を最初のレイヤーの異なるフィルターに通した後のアクティベーションを示します。ご覧のように、フィルターの有効化である赤いフレームは、そのパラメーターが学習されており、比較的水平なエッジで有効化されています。ブルーフレームは、比較的垂直エッジのために活性化されています。それは可能性がありますConvNets例えばコンピュータビジョンの実践者として、彼らは有用である可能性があることを発見していない、便利な私たちです未知のフィルタを学びます。これらのネットの最良の部分は、彼らは自分で適切なフィルタを見つけようと私たちの制限を発見し、フィルタを使用しないことです。フィルターを学習して、コスト関数の量を減らします。前述のように、これらのフィルターは必ずしも既知ではありません。

**図1。** *低レベルのアクティベーション*

より深い層では、一緒に来て、多くの場合、意味している形を作る前のレイヤで学んだ機能を備えています。で、この論文人間は、他のアクティベーションの間に分散することができるようには、これらの層は、弊社または弊社に意味を持つ概念にとって意味のあるアクティベーションを持っていることが議論されてきました。図 2つの緑色フレーム番組Aの第5層におけるフィルタのactivatinsConvNet。このフィルタは、顔を気に。髪についての赤1の心配事があるとします。これらは意味を持っています。ご覧のように、入力の典型的な顔の位置でアクティブ化された他のアクティブ化があります。緑のフレームはその1つです。ブルーフレームは、これらの他の例です。したがって、形状の抽象化は、1つまたは複数のフィルターによって学習できます。つまり、顔やそのコンポーネントなどの各概念は、フィルター間で分散できます。概念が異なる層に分散している場合、誰かがそれらのそれぞれを見ると、それらは洗練されているかもしれません。情報はそれらの間で配布され、その情報を理解するために、これらのフィルターとそのアクティベーションのすべてを考慮する必要がありますが、それらは非常に複雑に見えるかもしれません。

**図2。** *高レベルのアクティベーション*

CNNsブラックボックスと見なすべきではありません。この驚くべき論文のZeilerらは、これらのネット内で何が行われているのか理解していない場合、より良いモデル開発は試行錯誤に帰着することを議論しました。このホワイトペーパーでは、機能マップをで視覚化しようとします。ConvNets

さまざまな変換を処理して一般化する機能

ConvNetspoolingレイヤーを使用して、パラメーターの数を減らすだけでなく、各フィーチャの正確な位置に影響されないようにすることもできます。また、それらを使用すると、レイヤーはさまざまな機能を学習できます。つまり、最初のレイヤーはエッジや円弧などの単純な低レベルの機能を学習し、より深いレイヤーは目や眉などのより複雑な機能を学習します。Max Poolingたとえば、特別な機能が特別な地域に存在するかどうかを調査しようとします。poolingレイヤーの概念は非常に便利ですが、他の変換間の移行を処理することができるだけです。異なるレイヤーのフィルターは異なるパターンを見つけようとしますが、たとえば、回転した顔は通常の顔とは異なるレイヤーを使用して学習されますCNNs独自に他の変換を処理するレイヤーがありません。これを説明するために、最小限のネットで回転せずに単純な顔を学習したいとします。この場合、モデルはそれを完璧に行うことができます。任意の顔の回転であらゆる種類の顔を学習するように求められたとします。この場合、モデルは以前に学習したネットよりもはるかに大きくする必要があります。その理由は、入力でこれらの回転を学習するためにフィルターが必要だからです。残念ながら、これらはすべて変換ではありません。入力も歪む可能性があります。これらの事件は、マックス・ジャダーバーグらを怒らせた。彼らは、私たちの怒りを彼らのものとして解決するために、これらの問題に対処するためにこの論文を作成しました。

畳み込みニューラルネットワークは機能する

最後に、これらのポイントを参照した後、入力データ内のパターンを見つけようとするために機能します。畳み込み層によって抽象概念を作成するためにそれらを積み重ねます。入力データがこれらの概念のそれぞれを持っているかどうかを密なレイヤーで調べて、入力データがどのクラスに属しているかを調べます。

役立つリンクをいくつか追加します。


12

ConvNetは、機能の局所性を活用するため機能します。彼らはさまざまな粒度でそれを行うので、階層的に高いレベルの機能をモデルすることができます。これらは、プーリングユニットのおかげで翻訳に対して不変です。それらはそれ自体は回転不変ではありませんが、通常は同じフィルターの回転バージョンであるフィルターに収束し、したがって回転入力をサポートします。

ConvNetsと同じ意味で機能の局所性から利益を得る他のニューラルアーキテクチャはありません。


1
RNNはCNNと同様の方法で恩恵を受け、時系列で重みを再利用すると言えます。CNNは、必ずしも翻訳不変ではなく、「次元不変」と考えることもできます(正確な用語または認識された用語であるかどうかはわかりませんが)
ニールスレーター

ご回答有難うございます。次の結論に誤りがある場合は修正してください。機能がレイヤーを洗練するのは偶然ではありません。2.ドメイン情報をニューラルネットワークの設計に含めると、学習効率に大きな違いが生じます。ConvNetsとRNNはまさにそれをしようとしています。
主を

あなたの声明1と2は私にとって正しいようです。
-ncasas

1
私は、カプセルネットワークが同様の方法で活用した特徴の局所性になっていると思います
デヴィッド・マルクス

3

典型的なConvNetの他のコンポーネントを決して忘れないでください。畳み込みフィルターは、エッジや円などの空間不変特徴を選択します。これらの機能は、C層に続くプーリング層で定量化されます。最後に、それらは(通常)完全に接続された複数の層(fc)に供給されます。これらの完全に接続されたレイヤーは、通常のMLPで見つかるものにすぎないため、クレジットを付与する必要があります。


3

畳み込みニューラルネットワークは、標準の深層学習アルゴリズムの優れた拡張機能であるため機能します。

無制限のリソースとお金を考えると、標準アルゴリズムも機能するため、たたみ込みの必要はありません。ただし、畳み込みはパラメーターの数を減らすため、より効率的です。@ncasasが正確に記述している機能の局所性を利用するため、削減が可能です。


これが最良の答えです
Jie.Zhou

1

畳み込みニューラルネットワークは、常に我々が層を上がると、ますます洗練された機能を学んで終わるなぜそれが知られていますか?

これは純粋な数学です。結局のところ、ニューラルネットワークは大きな数学関数です。そして、ネットワークが深いほど、それが表す機能は大きくなります。そして、大きくなると、明らかに高次元を意味します。学んだ機能は、より洗練された機能の結果であるため、より洗練されています。

彼らがそのような機能のスタックを作成した原因

興味深いことに、従来のニューラルネットワークは、私たち自身の、実際には猫の生物学に触発されました。フーベルとヴィーゼルは、猫の視覚皮質に関する実験を行い、光が積み重なった視界によって知覚されることに気づきました。これが畳み込み層とより深いアーキテクチャに影響を与えたものです。


0

上に構築さncasashoraceTの回答、ConvNetsがあるため、非常に効率的です。

  1. それらは幾何学的変換に不利であり、ますます複雑で詳細になる機能を学習します。したがって、畳み込み層のおかげで強力な階層的特徴抽出機能です。
  2. 抽出されたフィーチャを組み合わせて非線形形式で集約し、出力を予測するため、完全に接続されたレイヤーのおかげで堅牢な分類器になります。

あなたはより多くのconvnetsと異なるブロックにそれらを構築するだけでなく、基礎となる、ここにある直感を学びたい場合は、ポストの詳細を通過し、私は最近、私の個人的なブログに書きました。


3
独自の製品/ブログを宣伝する場合は、回答所属を開示する必要があります。そうでない場合、回答にスパムのフラ​​グが付けられる場合があります。あなたがサイトと提携していない場合、これを防ぐためにそう言うことをお勧めします。スパマーにならない方法を
AJ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.