畳み込みが常に奇数をfilter_sizeとして使用するのはなぜですか

我々がCNN(ConvNet)を使用して公表された論文の90〜99%を見ているなら。 それらの大部分は、奇数:{1,3,5,7}のフィルタサイズを最も多く使用します。

このような状況では、いくつかの問題が発生する可能性があります。これらのフィルタサイズでは、通常、畳み込み演算は2のパディング(一般的なパディング)では完璧ではなく、input_fieldのいくつかのエッジが処理で失われます...

Question1: Why using only odd_numbers for convolutions filter sizes ?

Question2: Is it actually a problem to omit a small part of the input_field during the convolution ? Why so/not ?

5

2 答え

畳み込み演算は、2つの行列の要素的な積の組み合わせです。これらの2つの行列が次元で一致する限り、問題はありません。したがって、クエリの背後にある動機を理解できます。

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

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

私たちが「伝統」を打ち破り、非対称なカーネルを使用することに決めたら?エイリアシングエラーが発生すると、エラーは発生しません。ピクセルは最小のエンティティとみなされます。つまり、ここではサブピクセルの概念はありません。

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

-

畳み込みの禅:

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

これらの信号成分は情報である。一部のコンポーネントは他のコンポーネントよりも有益です。唯一の理由は、より高いレベルの情報を抽出することに興味があることです。いくつかの意味クラスに関連する情報。従って、我々が特に興味を持っている情報を提供しない信号成分を刈り取ることができる。したがって、畳み込み/フィルタリングに関する旧学校の教義とは異なり、私たちは気に入ったように畳み込み応答をプール/プルーニングすることは自由です。そのように感じる方法は、統計モデルの改善に貢献していないすべてのデータコンポーネントを厳密に削除することです。

7
追加された
@zwep合意した! Q&Aフォーラムは百科事典を置き換えるものではありません。単にそれらを補うだけです。しかし、あなたのコメントに対する幅広い視点:定義は通常、利用可能なオプションの中から単にピアレビューされた最良の選択肢です。福音の真実ではありません。それにもかかわらず、ルールは、ルールを破る前にまず学習しなければならないため、コミュニティがどのように、なぜそれを異なるようにしているのかを明確にコミュニティーに伝えることができます。特定の定義の背後にある理由と代替選択肢は、研究論文にあり、通常は百科事典には含まれていません。
追加された 著者 buti-oxa,
exaplantionをありがとうございますが、数学的に畳み込みの定義を見て、これを理解するのは簡単ではありませんか? en.wikipedia.org/wiki/Convolution#Discrete_convolution ここで私たちは常に原点の左右にm項があるので、常に不均等な量になります。
追加された 著者 Rush Frisby,

1)インデックス idx にある1つのエントリを除いて、 input_field がすべてゼロであるとします。奇数のフィルタサイズは、 idx を中心としたピークを持つデータを返します。偶数フィルタサイズは、サイズ2の均一フィルタの場合を考慮しません。ほとんどの人は、彼らはフィルタリングします。

2)すべての input_field は畳み込みに関連しますが、 input_field には必要なデータが含まれていないため、 output_field >。 output_field の最初の要素に対する回答を計算する場合、フィルタは input_field の最初の要素の中央に配置する必要があります。しかし、 input_field の利用可能な要素に対応しないフィルタ要素があります。 output_field の端を推測するためのさまざまなトリックがあります。

5
追加された