畳み込み層:パディングするかしないか


19

AlexNetアーキテクチャは、図に示すようにゼロパディングを使用します。 ここに画像の説明を入力してください ただし、このパディングが導入された理由については、論文には説明がありません。

Standford CS 231nコースでは、空間サイズを保持するためにパディングを使用することを教えています。 ここに画像の説明を入力してください

パディングが必要なのはそれだけなのでしょうか?つまり、空間サイズを保持する必要がない場合は、パディングを削除するだけでいいですか?より深いレベルに進むと、空間サイズが非常に速く減少することを知っています。ただし、プーリング層を削除することでトレードオフできます。ゼロパディングの背後にある理論的根拠を誰かに教えていただければ幸いです。ありがとう!

回答:


20

パディングが重要な理由はいくつかあります。

  1. heightand を保存し、widthある層から別の層に移動するときにテンソルの次元についてあまり心配する必要がない場合、ネットワークを設計するのが簡単になります。次元は単に「機能する」からです。

  2. これにより、より深いネットワークを設計できます。パディングがなければ、ボリュームサイズの縮小はあまりにも急速に縮小します。

  3. パディングは、情報を境界に保つことで実際にパフォーマンスを向上させます

スタンフォード大学の講義からの引用:「前述のCONV後の空間サイズを一定に保つ利点に加えて、これを行うと実際にパフォーマンスが向上します。各CONVの後にボリュームがわずかに減少し、国境の情報が急速に「洗い流され」ます。」- ソース

  1. @dontlooが既に述べたように、新しいネットワークアーキテクチャでは畳み込み層を1x1、3x3、および5x5フィルターと連結する必要があり、寸法が一致しないためにパディングを使用しなければ不可能です。このインセプションモジュールの画像を確認して、ここでパディングが役立つ理由をよりよく理解してください。

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


4
なぜゼロパディングはどこにでもあるのですか?画像処理では、さまざまな種類のミラーリングやエッジでの値の継続など、さまざまな境界モードが使用されます。純粋なゼロは、実際の画像/機能と比較して構造が非常に異なります。
-isarandi

3

私にとって最も重要な理由は、空間サイズを維持することです。あなたが言ったように、プール層を削除することで、空間サイズの減少とトレードオフできます。ただし、多くの最近のネットワーク構造(残留ネット開始ネットフラクタルネットなど)は、異なるレイヤーの出力で動作するため、レイヤー間の一貫した空間サイズが必要です。

別のことは、パディングがない場合、入力の角のピクセルは出力の対応する角のピクセルにのみ影響し、中央のピクセルは出力の近傍に寄与することです。複数のパディングなしのレイヤーがスタックされると、ネットワークの並べ替えは画像の境界ピクセルを無視します。

私の理解のほんの一部に、他の正当な理由があると信じています。


2

いい質問ですね。Drag0はうまく説明しましたが、私は同意します、何かがおかしいです。

写真を見て、境界線に対処しなければならないようなものです。実際の生活では、目を動かしてさらに見ることができます。実際の境界線はありません。したがって、それは媒体の制限です。

サイズを維持することに加えて、それは重要ですか?私は満足のいく答えに気づいていませんが、注意と閉塞(部分オブジェクト)の実験では、境界で失われた情報は必要ないと推測します(証明されていません)。あなたがもっと賢いことをしたとしても(例えば隣のピクセルをコピーして)、私は自分で実験したことはないが、答えは変わらないだろう。0でのパディングは高速でサイズを保持するため、このようにします。


1

これが私の考えです。ゼロパディングは、出力特徴ベクトルのサイズを維持するために初期時に重要です。上記の誰かが、ゼロパディングの方がパフォーマンスが高いと言いました。

でも前回はどうですか?画像特徴ベクトルの解像度は非常に小さく、ピクセル値は何らかのグローバルサイズの一種のベクトルを意味します。

最後のケースでは、ゼロパディングよりもある種のミラーリングの方が優れていると思います。


1

境界で情報を保持することについて詳しく説明すると、基本的に、畳み込みを行うときのコーナーのピクセル(緑色の網掛け部分)は1回だけ使用されますが、真ん中の1つ(赤色の網掛け部分など)は結果のフィーチャマップに複数回使用されます。 、画像をパディングします図2を参照してください。


1

情報の観点から、いつパディングしても大丈夫なのか、そうでないのかを伝えようとします。

基本的なケースとして、テンソルフローのパディング機能の例を見てみましょう。「有効」または「同じ」の2つのシナリオを提供します。Sameは出力のサイズを保持し、適切なパディングを追加することで入力と同じサイズを維持しますが、validはそれを行わず、情報の損失につながると主張する人もいますが、ここでキャッチ。

この情報の損失は、カーネルのサイズまたは使用しているフィルターによって異なります。たとえば、28x28の画像があり、フィルターサイズが15x15であるとします(言いましょう)。出力の寸法は16x16である必要がありますが、テンソルフローで「同じ」を使用してパディングすると、28x28になります。現在、12行と12列には意味のある情報は含まれていませんが、ノイズの形として残っています。そして、私たちは皆、どれほど影響を受けやすいディープラーニングモデルがノイズに対してどれだけ敏感であるかを知っています。これにより、トレーニングが大幅に低下する可能性があります。したがって、大きなフィルターを使用している場合は、パディングを使用しないでください。

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