畳み込みが常に奇数をfilter_sizeとして使用する理由


13

CNN(ConvNet)を使用して発行された論文の90〜99%をご覧ください。それらの大半は、奇数のフィルターサイズを使用します:{ 1、3、5、7 }。

この状況はいくつかの問題を引き起こす可能性があります:これらのフィルターサイズでは、通常、畳み込み演算は2のパディング(一般的なパディング)では完全ではなく、input_fieldの一部のエッジはプロセスで失われます...

質問1:畳み込みフィルターサイズに奇数番号のみを使用する理由

質問2:畳み込み中にinput_fieldの一部を省略することは実際には問題ですか?なぜそうなのか?

回答:


14

畳み込み演算は、簡単に言えば、2つの行列の要素ごとの積の組み合わせです。これら2つのマトリックスの次元が一致している限り、問題はないはずです。したがって、クエリの背後にある動機を理解できます。

A.1。ただし、畳み込みの目的は、ソースデータマトリックス(イメージ全体)をフィルターまたはカーネルの観点からエンコードすることです。より具体的には、アンカー/ソースピクセルの近傍のピクセルをエンコードしようとしています。以下の図をご覧ください。 ここに画像の説明を入力してください 通常、ソース画像のすべてのピクセルをアンカー/ソースピクセルと見なしますが、これを行うように制約されていません。実際、アンカー/ソースピクセルが特定のピクセル数で区切られているストライドを含めることは珍しくありません。

さて、ソースピクセルは何ですか?カーネルの中心となるアンカーポイントであり、アンカー/ソースピクセルを含むすべての隣接ピクセルをエンコードしています。カーネルは対称的な形状(カーネル値で対称ではない)であるため、アンカーピクセルのすべての側面(4接続)に等しい数(n)のピクセルがあります。したがって、このピクセル数に関係なく、対称形状のカーネルの各辺の長さは2 * n + 1(アンカーの各辺+アンカーピクセル)であるため、フィルター/カーネルのサイズは常に奇数です。

「伝統」を破り、非対称カーネルを使用することにした場合はどうなりますか?エイリアシングエラーが発生する可能性があるため、これは行いません。ピクセルは最小のエンティティと見なされます。つまり、ここにはサブピクセルの概念はありません。

A.2境界の問題は、さまざまなアプローチを使用して処理されます。無視するもの、ゼロパッドするもの、ミラーに反映するものがあります。逆演算、つまりデコンボリューションを計算せず、元の画像の完全な再構築に関心がない場合、境界の問題による情報の損失やノイズの注入は気にしません。通常、プーリング操作(平均プーリングまたは最大プーリング)は、いずれにしても境界アーティファクトを削除します。そのため、「入力フィールド」の一部を自由に無視してください。プーリング操作はそうします。

-

畳み込みの禅:

旧式の信号処理ドメインでは、入力信号が畳み込まれたりフィルターを通過したりしたときに、畳み込み/フィルター処理された応答のどのコンポーネントが関連性があり、有益であるかを事前に判断する方法がありませんでした。その結果、これらの変換で信号成分(すべて)を保持することが目的でした。

これらの信号成分は情報です。一部のコンポーネントは、他のコンポーネントよりも有益です。これの唯一の理由は、より高いレベルの情報を抽出することに関心があるということです。いくつかのセマンティッククラスに関連する情報。したがって、私たちが特に興味を持っている情報を提供しないそれらの信号成分は除去することができます。したがって、畳み込み/フィルタリングに関する昔ながらのドグマとは異なり、思いのままに畳み込み応答をプール/プルーニングすることができます。そのように考える方法は、統計モデルの改善に寄与していないすべてのデータコンポーネントを厳密に削除することです。


あなたの外植に感謝しますが、数学用語で畳み込みの定義を見ることでこれを理解するのは簡単ではありませんか? en.wikipedia.org/wiki/Convolution#Discrete_convolution ここでは、原点の左右に常にm個の用語があることがわかります。したがって、常に不均一な量になります。
zwep

@zwep合意!Q&Aフォーラムは百科事典に取って代わるものではありません。単にそれらを補うだけです。ただし、コメントに対するより広い観点:定義は、通常、利用可能なオプションの中でピアレビューされた最良の選択です。それは福音の真理ではありません。それにもかかわらず、ルールを破る前に最初にルールを学習する必要があります。そのため、ルールをどのように、なぜ異なる方法で行っているかをコミュニティに明確に伝えることができます。特定の定義の背後にある理由と代替選択肢は研究論文にあり、通常は百科事典にはありません。
動的スターダスト

5

1)input_fieldindexの1つのエントリを除き、すべてゼロであるとしますidx。奇数のフィルターサイズはピークを中心としたデータを返しますがidx、偶数のフィルターサイズはそうではありません-サイズ2の均一なフィルターの場合を考えてください。

2)すべてがinput_field畳み込みに関連してoutput_fieldいますが、必要なデータがに含まれていないため、のエッジを正確に計算できませんinput_field。の最初の要素の答えを計算したい場合output_field、フィルタはの最初の要素を中心とする必要がありますinput_field。ただし、の使用可能な要素に対応しないフィルター要素がありますinput_field。のエッジを推測するためのさまざまなトリックがありますoutput_field


2

奇数サイズのフィルターの場合、前のすべてのレイヤーピクセルは出力ピクセルを中心に対称になります。この対称性がなければ、偶数サイズのカーネルを使用するときに発生するレイヤー全体の歪みを考慮する必要があります。したがって、実装の簡素化を促進するために、偶数サイズのカーネルフィルターはほとんどスキップされます。畳み込みを指定されたピクセルから中心ピクセルへの補間と考える場合、偶数サイズのフィルターを使用して中心ピクセルに補間することはできません。

偶数サイズのフィルターが機能しない理由

ソース:https : //towardsdatascience.com/deciding-optimal-filter-size-for-cnns-d6f7b56f9363

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