なぜ畳み込みニューラルネットワークがまだよく理解されていないのかと言う人をよく耳にします。畳み込みニューラルネットワークが、層を上るにつれて常に洗練された機能を学習することになります。それらがそのような機能のスタックを作成した原因は何ですか?これは他のタイプのディープニューラルネットワークにも当てはまりますか?
なぜ畳み込みニューラルネットワークがまだよく理解されていないのかと言う人をよく耳にします。畳み込みニューラルネットワークが、層を上るにつれて常に洗練された機能を学習することになります。それらがそのような機能のスタックを作成した原因は何ですか?これは他のタイプのディープニューラルネットワークにも当てはまりますか?
回答:
実際、質問は少し広いと思います!とにかく。
何で学習されConvNets
た分類タスクに正しく入力を分類するために、コスト関数を最小化しようとします。すべてのパラメータ変更と学んだフィルターは上記の目的を達成するためにあります。
彼らは、最初のレイヤーで水平線や垂直線などの低レベルの、時には無意味な機能を学習し、それらを積み重ねて最後のレイヤーで意味を持つことが多い抽象的な形状を作成することでコストを削減しようとします。この図を示します。使用されてきた1、ここでは、考えることができます。入力はバスであり、グリッドは、入力を最初のレイヤーの異なるフィルターに通した後のアクティベーションを示します。ご覧のように、フィルターの有効化である赤いフレームは、そのパラメーターが学習されており、比較的水平なエッジで有効化されています。ブルーフレームは、比較的垂直エッジのために活性化されています。それは可能性がありますConvNets
例えばコンピュータビジョンの実践者として、彼らは有用である可能性があることを発見していない、便利な私たちです未知のフィルタを学びます。これらのネットの最良の部分は、彼らは自分で適切なフィルタを見つけようと私たちの制限を発見し、フィルタを使用しないことです。フィルターを学習して、コスト関数の量を減らします。前述のように、これらのフィルターは必ずしも既知ではありません。
より深い層では、一緒に来て、多くの場合、意味している形を作る前のレイヤで学んだ機能を備えています。で、この論文人間は、他のアクティベーションの間に分散することができるようには、これらの層は、弊社または弊社に意味を持つ概念にとって意味のあるアクティベーションを持っていることが議論されてきました。図 2つの緑色フレーム番組Aの第5層におけるフィルタのactivatinsConvNet
。このフィルタは、顔を気に。髪についての赤1の心配事があるとします。これらは意味を持っています。ご覧のように、入力の典型的な顔の位置でアクティブ化された他のアクティブ化があります。緑のフレームはその1つです。ブルーフレームは、これらの他の例です。したがって、形状の抽象化は、1つまたは複数のフィルターによって学習できます。つまり、顔やそのコンポーネントなどの各概念は、フィルター間で分散できます。概念が異なる層に分散している場合、誰かがそれらのそれぞれを見ると、それらは洗練されているかもしれません。情報はそれらの間で配布され、その情報を理解するために、これらのフィルターとそのアクティベーションのすべてを考慮する必要がありますが、それらは非常に複雑に見えるかもしれません。
CNNs
ブラックボックスと見なすべきではありません。この驚くべき論文のZeilerらは、これらのネット内で何が行われているのか理解していない場合、より良いモデルの開発は試行錯誤に帰着することを議論しました。このホワイトペーパーでは、機能マップをで視覚化しようとします。ConvNets
ConvNets
pooling
レイヤーを使用して、パラメーターの数を減らすだけでなく、各フィーチャの正確な位置に影響されないようにすることもできます。また、それらを使用すると、レイヤーはさまざまな機能を学習できます。つまり、最初のレイヤーはエッジや円弧などの単純な低レベルの機能を学習し、より深いレイヤーは目や眉などのより複雑な機能を学習します。Max Pooling
たとえば、特別な機能が特別な地域に存在するかどうかを調査しようとします。pooling
レイヤーの概念は非常に便利ですが、他の変換間の移行を処理することができるだけです。異なるレイヤーのフィルターは異なるパターンを見つけようとしますが、たとえば、回転した顔は通常の顔とは異なるレイヤーを使用して学習されますCNNs
独自に他の変換を処理するレイヤーがありません。これを説明するために、最小限のネットで回転せずに単純な顔を学習したいとします。この場合、モデルはそれを完璧に行うことができます。任意の顔の回転であらゆる種類の顔を学習するように求められたとします。この場合、モデルは以前に学習したネットよりもはるかに大きくする必要があります。その理由は、入力でこれらの回転を学習するためにフィルターが必要だからです。残念ながら、これらはすべて変換ではありません。入力も歪む可能性があります。これらの事件は、マックス・ジャダーバーグらを怒らせた。彼らは、私たちの怒りを彼らのものとして解決するために、これらの問題に対処するためにこの論文を作成しました。
最後に、これらのポイントを参照した後、入力データ内のパターンを見つけようとするために機能します。畳み込み層によって抽象概念を作成するためにそれらを積み重ねます。入力データがこれらの概念のそれぞれを持っているかどうかを密なレイヤーで調べて、入力データがどのクラスに属しているかを調べます。
役立つリンクをいくつか追加します。
ConvNetは、機能の局所性を活用するため機能します。彼らはさまざまな粒度でそれを行うので、階層的に高いレベルの機能をモデル化することができます。これらは、プーリングユニットのおかげで翻訳に対して不変です。それらはそれ自体は回転不変ではありませんが、通常は同じフィルターの回転バージョンであるフィルターに収束し、したがって回転入力をサポートします。
ConvNetsと同じ意味で機能の局所性から利益を得る他のニューラルアーキテクチャはありません。
畳み込みニューラルネットワークは、標準の深層学習アルゴリズムの優れた拡張機能であるため機能します。
無制限のリソースとお金を考えると、標準アルゴリズムも機能するため、たたみ込みの必要はありません。ただし、畳み込みはパラメーターの数を減らすため、より効率的です。@ncasasが正確に記述している機能の局所性を利用するため、削減が可能です。
これは純粋な数学です。結局のところ、ニューラルネットワークは大きな数学関数です。そして、ネットワークが深いほど、それが表す機能は大きくなります。そして、大きくなると、明らかに高次元を意味します。学んだ機能は、より洗練された機能の結果であるため、より洗練されています。
興味深いことに、従来のニューラルネットワークは、私たち自身の、実際には猫の生物学に触発されました。フーベルとヴィーゼルは、猫の視覚皮質に関する実験を行い、光が積み重なった視界によって知覚されることに気づきました。これが畳み込み層とより深いアーキテクチャに影響を与えたものです。
上に構築さncasasとhoraceTの回答、ConvNetsがあるため、非常に効率的です。
あなたはより多くのconvnetsと異なるブロックにそれらを構築するだけでなく、基礎となる、ここにある直感を学びたい場合は、ポストの詳細を通過し、私は最近、私の個人的なブログに書きました。