Kıvrımlar neden filter_size olarak tek sayı kullanır


13

CNN (ConvNet) kullanılarak yayınlanan makalelerin% 90-99'una bakacak olursak. Bunların büyük çoğunluğu en çok kullanılanlar için tek sayıların filtre boyutunu kullanır : {1, 3, 5, 7}.

Bu durum bazı sorunlara yol açabilir: Bu filtre boyutları ile genellikle 2 (ortak dolgu) dolgu ile kıvrım işlemi mükemmel değildir ve input_field'ın bazı kenarları işlem sırasında kaybolur ...

Question1: Neden helezonlar filtre boyutları için sadece odd_numbers kullanarak?

Soru 2: Katlama sırasında input_field'ın küçük bir kısmını atlamak gerçekten bir sorun mu? Neden öyle / değil?

Yanıtlar:


14

Basitçe ifade edilen evrişim işlemi, iki matrisin element-bilge ürününün birleşimidir. Bu iki matris boyutlar arasında hemfikir olduğu sürece, bir sorun olmamalı ve böylece sorgunuzun arkasındaki motivasyonu anlayabiliyorum.

A.1. Bununla birlikte, evrişimin amacı, kaynak veri matrisini (tüm görüntü) bir filtre veya çekirdek olarak kodlamaktır. Daha spesifik olarak, çapa / kaynak piksel mahallesindeki pikselleri kodlamaya çalışıyoruz. Aşağıdaki şekle bir göz atın: resim açıklamasını buraya girin Tipik olarak, kaynak görüntünün her pikselini bağlantı / kaynak piksel olarak kabul ederiz, ancak bunu yapmakla sınırlı değiliz. Aslında, çapa / kaynak pikselleri belirli sayıda pikselle ayırdığımız bir adım eklemek nadir değildir.

Tamam, kaynak piksel nedir? Çekirdeğin ortalandığı tutturma noktasıdır ve tutturma / kaynak pikseli dahil olmak üzere tüm komşu pikselleri kodlarız. Çekirdek simetrik olarak şekillendiğinden (çekirdek değerlerinde simetrik değil), bağlantı pikselinin her tarafında eşit sayıda (n) piksel vardır (4 bağlantı). Bu nedenle, bu piksel sayısı ne olursa olsun, simetrik olarak şekillendirilmiş çekirdeğimizin her bir tarafının uzunluğu 2 * n + 1'dir (çapanın her tarafı + çapa pikseli) ve bu nedenle filtre / çekirdekler her zaman tek boyuttadır.

Ya 'gelenek'le kırılmaya karar verirsek ve asimetrik çekirdekler kullanırsak ne olur? Takma ad hatalarına maruz kalırdınız ve bunu yapmayız. Pikselin en küçük varlık olduğunu düşünüyoruz, yani burada alt piksel kavramı yok.

A.2 Sınır problemi farklı yaklaşımlar kullanılarak ele alınmaktadır: bazıları görmezden gelir, bazıları sıfır doldurur, bazıları ayna yansıtır. Ters bir işlem, yani dekonvolüsyon hesaplamayacaksanız ve orijinal görüntünün mükemmel bir şekilde yeniden yapılandırılmasıyla ilgilenmiyorsanız, sınır sorunu nedeniyle bilgi kaybını veya gürültü enjeksiyonunu umursamazsınız. Tipik olarak, havuzlama işlemi (ortalama havuzlama veya maksimum havuzlama) sınır eserlerinizi yine de kaldıracaktır. Bu nedenle, 'giriş alanınızın' bir kısmını göz ardı etmekten çekinmeyin, havuzlama işleminiz sizin için bunu yapacaktır.

-

Evrişim Zen:

Eski okul sinyal işleme alanında, bir giriş sinyali bir filtreden geçirildiğinde veya bir filtreden geçirildiğinde, a-öncesinde hangi bükülmüş / filtrelenmiş yanıtın bileşenlerinin alakalı / bilgilendirici ve hangilerinin uygun olmadığına karar vermenin bir yolu yoktu. Sonuç olarak amaç, bu dönüşümlerde sinyal bileşenlerini (tümünü) korumaktı.

Bu sinyal bileşenleri bilgidir. Bazı bileşenler diğerlerinden daha bilgilendiricidir. Bunun tek nedeni, daha üst düzey bilgilerin çıkarılmasıyla ilgilenmemiz; Bazı semantik sınıflarla ilgili bilgiler. Buna göre, özellikle ilgilendiğimiz bilgileri sağlamayan bu sinyal bileşenleri budanabilir. Bu nedenle, evrişim / filtreleme ile ilgili eski okul dogmalarının aksine, evrişim tepkisini istediğimiz gibi bir araya getirmekte / budamakta özgürüz. Bunu yapmak istediğimiz yol, istatistiksel modelimizi geliştirmeye katkıda bulunmayan tüm veri bileşenlerini titizlikle kaldırmaktır.


Öfkeniz için teşekkürler, ama matematiksel terimlerle evrişimin tanımına bakarak bunu anlamak daha kolay değil mi? tr.wikipedia.org/wiki/Convolution#Discrete_convolution Burada her zaman başlangıç ​​noktasının solunda ve sağında m terimlerimiz olacağını görüyoruz ... dolayısıyla bu her zaman eşit olmayan bir miktarla sonuçlanacaktır.
zwep

@zwep Kabul etti! Soru-Cevap forumları ansiklopedilerin yerini almaz; ama sadece onları tamamlayın. Bununla birlikte, yorumunuza daha geniş bir bakış açısı: Tanım, genellikle mevcut seçenekler arasında yalnızca hakem değerlendirmeli en iyi seçimdir; müjde gerçeği değil. Bununla birlikte, kurallar onları çiğnemeden önce öğrenilmelidir, böylece topluma tam olarak nasıl ve neden farklı yaptığınızı açıkça bildirebilir. Belirli bir tanımın ardındaki nedenler ve alternatif seçimler araştırma makalelerinde bulunur ve tipik olarak bir ansiklopedi değildir.
Dynamic Stardust

5

1) Varsayalım ki input_field, dizindeki bir giriş dışında hepsi sıfır idx. Tek bir filtre boyutu, tepe noktası ortalanmış olarak veri döndürür idx, eşit bir filtre boyutu olmaz - 2 boyutlu tek tip bir filtre örneğini düşünün. Çoğu kişi, filtre uygularken piklerin konumlarını korumak ister.

2) Bunların hepsi input_fieldkıvrımla ilgilidir, ancak output_fieldgerekli veriler bulunmadığından kenarları doğru olarak hesaplanamaz input_field. 'Nin ilk öğesi için bir cevap hesaplamak istiyorsam output_field, filtrenin ilk öğesi üzerinde ortalanması gerekir input_field. Ama sonra herhangi bir kullanılabilir öğeye karşılık gelmeyen filtre öğeleri var input_field. Kenarları tahmin etmek için çeşitli hileler vardır output_field.


2

Tek boyutlu bir filtre için, önceki tüm katman pikselleri çıkış pikseli etrafında simetrik olacaktır. Bu simetri olmadan, eşit boyutlu bir çekirdek kullanılırken katmanlar arasındaki bozulmaları hesaba katmamız gerekecek. Bu nedenle, uygulama basitliğini artırmak için çoğunlukla eşit boyutlu çekirdek filtreleri atlanır. Evrişimi verilen piksellerden merkez piksele enterpolasyon olarak düşünüyorsanız, çift boyutlu bir filtre kullanarak merkez piksele enterpolasyon yapamayız.

Eşit boyutlu filtreler neden çalışmaz?

kaynak: https://towardsdatascience.com/deciding-optimal-filter-size-for-cnns-d6f7b56f9363

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.