Dilate Konvolüsyon ve Dekonvolüsyon arasındaki fark nedir?


11

Bu iki evrişim operasyonu şu anda derin öğrenmede çok yaygındır.

Bu yazıda dilate kıvrımlı tabaka hakkında okudum: WAVENET: HAM SES İÇİN GENEL BİR MODEL

ve Konvolüsyon bu yazıda yer almaktadır: Anlamsal Segmentasyon için Tamamen Konvolüsyon Ağları

Her ikisi de görüntüyü yukarı örnekliyor gibi görünüyor, ancak fark nedir?

Yanıtlar:


8

Bir tür mekanik / resimsel / görüntü tabanlı terimlerle:

Dilatasyon: ### BU BÖLÜMÜ DÜZELTMEK İÇİN ÇALIŞAN YORUMLARI GÖR

Dilatasyon, büyük ölçüde değirmen akışı ile aynıdır (açıkçası dekonvolüsyon), ancak çekirdeklerine boşluklar sokması dışında, yani standart bir çekirdek tipik olarak girdinin bitişik bölümleri üzerinde kayacak olsa da, örneğin, görüntünün daha büyük bir bölümünü "kuşatmak" - ancak yine de standart form kadar ağırlığa / girişe sahiptir.

(Not de, 's içine genleşme enjekte eder sıfır ise çekirdek daha hızlı amacıyla azaltmak ' s çıkışının / çözünürlüğü yüz boyutları, devrik büklüm enjekte eder sıfır 's içine giriş için artış ' s çıkış çözünürlüğünü.)

Bunu daha somut hale getirmek için, çok basit bir örnek verelim:
9x9'luk bir görüntünüz var, x dolgusuz. Adım 2 ile standart bir 3x3 çekirdeği alırsanız, girdiden ilk endişe alt kümesi x [0: 2, 0: 2] olur ve bu sınırlar içindeki dokuz noktanın tamamı çekirdek tarafından değerlendirilir. Daha sonra x [0: 2, 2: 4] üzerine süpürürdünüz.

Açıkça, çıktı daha küçük yüz boyutlarına, özellikle 4x4'e sahip olacak. Böylece, bir sonraki katmanın nöronları, bu çekirdeklerin geçişlerinin tam boyutunda alıcı alanlara sahiptir. Ancak daha fazla küresel uzamsal bilgiye sahip nöronlara ihtiyacınız varsa veya arzu ediyorsanız (örneğin, önemli bir özellik sadece bundan daha büyük bölgelerde tanımlanabilirse), etkili alıcı alanın olduğu üçüncü bir katman oluşturmak için bu katmanı ikinci kez katlamanız gerekecektir. önceki katmanların birliği rf.

Ancak, daha fazla katman eklemek istemiyorsanız ve / veya iletilen bilgilerin aşırı gereksiz olduğunu düşünüyorsanız (yani ikinci katmandaki 3x3 alıcı alanlarınız yalnızca "2x2" miktarda farklı bilgi taşır), kullanabilirsiniz genişletilmiş bir filtre. Açıklık için bu konuda aşırı olalım ve 9x9 3 çaplı bir filtre kullanacağımızı varsayalım. Şimdi, filtremiz tüm girdiyi "çevreleyecek", bu yüzden hiç kaydırmamız gerekmeyecek. Ancak yine de, girişten yalnızca 3x3 = 9 veri noktası alacağız, x , tipik olarak:

x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8,4] U x [8,8]

Şimdi, bir sonraki katmanımızdaki nöronda (sadece bir tane olacak) görüntümüzün çok daha büyük bir bölümünü "temsil eden" veriler olacaktır ve yine, görüntünün verileri bitişik veriler için fazla yedekliyse, aynı bilgi ve eşdeğer bir dönüşüm öğrendim, ama daha az katman ve daha az parametre ile. Bu açıklamanın sınırları içinde örnekleme olarak tanımlanabilirken, burada her çekirdek için altörnekleme yaptığımızın açık olduğunu düşünüyorum .


Kesirli uzunlamasına veya devrik veya "dekonvolüsyon":

Bu tür hala kalpteki kıvrımdır. Fark, yine, daha küçük giriş sesinden daha büyük bir çıkış ses seviyesine geçeceğimizdir. OP, örneklemenin ne olduğu hakkında soru sormadı, bu yüzden bu sefer biraz genişlik kaydedeceğim ve doğrudan ilgili örneğe gideceğim.

Daha önceki 9x9 davamızda, şimdi 11x11'e örneklemek istediğimizi düşünelim. Bu durumda, iki ortak seçeneğimiz var: 3x3 çekirdeği ve adım 1 ile 2x3 dolgu ile 3x3 girişimizi süpürüp ilk geçişimizin bölge üzerinde olmasını sağlayabiliriz [sol-pad-2: 1, ped üstü-2: 1] sonra [sol ped-1: 2, ped-2: 1 üstü] vb.

Alternatif olarak, giriş verileri arasına dolgu ekleyebilir ve çekirdeği fazla dolgu yapmadan süpürebiliriz. Açıkçası, bazen tek bir çekirdek için aynı giriş noktaları ile birden fazla kez ilgileneceğiz ; "kısmi adımlarla atılan" teriminin daha iyi anlaşıldığı yer burasıdır. Bence bu işten alınan ( buradan inen ve inanıyorum) animasyon , farklı boyutlarda olmasına rağmen işleri temizlemeye yardımcı olacaktır.Giriş mavi, beyaz enjekte edilmiş sıfırlar ve dolgu ve çıktı yeşil:

transpozed dönş, giriş mavi, çıkış yeşil

Tabii ki, kendimizi bazı bölgeleri tamamen görmezden gelebilecek ya da görmeyecek olan dilatasyonun aksine tüm girdi verileriyle ilgiliyiz. Ve açıkça başladığımızdan daha fazla veriye sahip olduğumuz için, "yukarı örnekleme".

Geçişli evrişimin daha sağlam, soyut bir tanımı ve açıklaması için ve aynı zamanda paylaşılan örneklerin temsil edilen dönüşümü gerçekte hesaplamak için neden açıklayıcı ama büyük ölçüde uygunsuz formlar olduğunu öğrenmek için bağlandığım mükemmel belgeyi okumanızı tavsiye ederim.


1
Unutmayın, ben uzman değilim, --Sadece bu kavramları kendimden ayırmak zorunda olan biri. Cevapların genel doğruluğunu zayıflatabilecek herhangi bir açık hata veya aşırı basitleştirme olup olmadığını lütfen bize bildirin. Teşekkürler!
Doug Brummell

Doug Brummel Wow güzelce açıklıyor. Aynı fikrim vardı. Dilate konvolüsyon uygulama hakkındaki fikrinizi bilmek istiyorum, CNN'de bunu uygulamaya nasıl başlamalıyız. Önce normal bir evrişimden sonra dilate evrişim uygulamalıyız? Başka bir şey genişletilmiş evrişim sıfır pedi yapmazsak bilgiyi kaçırabilir. Bu yüzden birkaç normal konnets katmanından sonra dilate konvolüsyon uygulamalıyız bence?
Şamane Siriwardhana

Standart fikrin, ağınızın derinliği boyunca ilerledikçe, ileriye doğru hareket eden, l = 1 için düzensiz, normal filtrelerle başlayarak, 2- ve sonra 3 dilate filtrelere doğru ilerleyen dilatasyon miktarını artırmak olduğuna inanıyorum. Bu, bir katmandaki tüm verilerin bir sonraki katmana (önemli olarak ağın kendisine dahil) aktarılmasını sağlarken, yine de her katman için katlanarak daha hızlı altörneklemeye izin verir, ancak artış parametresi yoktur. Amaç, veri dahil edilmesinden ödün vermeden geniş alanlara sahip olmaktır. Ve evet, dolguya dikkat erken olmalıdır.
Doug Brummell

Bkz. [Bu makale] ( arxiv.org/pdf/1511.07122.pdf ), yukarıda referansta bulunuldu ve konuyla ilgili okuduklarım hakkında iyi bir fikir verdi.
Doug Brummell

Bir başka şey, bu makalede, bu kadar genişleyen bir dilatasyon planında çözüm kaybı olmadığını belirtiyor ... Sanırım sadece "çözüm" altında batırılabileceğim diğer kayıplara karşı temkinli davranıyorum. Tabii ki, bir grup dönme katmanını daha az dilate olanlarla değiştirebilir ve doğruluğu koruyabilirseniz, kesinlikle yapmalısınız. Ama bana (ve bu konudaki kitaplara geri dönmeliyim), en baştan genişlemeyle mimarlık yaptığınız durumda potansiyel kayıpları düşünüyorum ...
Doug Brummell

5

Her ikisi de bir katmanı yukarı örnekleyen aynı şeyi yapıyor gibi görünse de, aralarında net bir fark vardır.

İlk olarak Dilate Konvolüsyon hakkında konuşuyoruz

Bu güzel blogu yukarıdaki konuda buldum . Anladığım kadarıyla, bu daha çok girdi veri noktalarını geniş bir şekilde keşfetmeye benziyor . Veya evrişim işleminin alıcı alanını arttırmak.

İşte makaleden genişletilmiş bir evrişim diyagramı .

Resim 3

Bu daha çok normal evrişimdir, ancak parametrelerin boyutunu arttırmadan giriş piksellerinden giderek daha fazla küresel bağlam yakalanmasına yardımcı olur. Bu, çıktının boşluk boyutunu artırmaya da yardımcı olabilir. Ancak buradaki ana şey, alıcı alanın kat sayısıyla katlanarak artmasıdır. Bu, sinyal işleme alanında çok yaygındır.

Bu blog gerçekten genişlemiş evrişimdeki yenilikleri ve bunun normal evrişim ile nasıl karşılaştırıldığını açıklıyor.

Blog: Genişletilmiş Konvolüsyonlar ve Kronecker Faktörlü Konvolüsyonlar

Şimdi Dekonvolüsyonun ne olduğunu açıklayacağım

Buna aktarılmış evrişim denir. Bu, geri yayılımda evrişim için kullandığımız işleve eşittir.

Sadece backprop'ta, çıktı özellik haritasındaki bir nörondan gradyanları alıcı alanlardaki tüm elementlere dağıtırız, daha sonra aynı alıcı elementlerle çakıştıkları yerler için degradeleri toplarız

İşte resimlerle iyi bir kaynak .

Yani temel fikir, çıkış boşluğunda dekonvolüsyonun çalışmasıdır. Piksel girilmez. Çıktı haritasında daha geniş boyutlu boyutlar oluşturmaya çalışacaktır. Anlamsal Segmentasyon için Tamamen Konvolüsyon Sinir Ağlarında kullanılır .

Dolayısıyla, Deconvolution'ın daha fazlası öğrenilebilir bir yukarı örnekleme katmanıdır.

Nihai kayıp ile birleştirirken nasıl numune alınacağını öğrenmeye çalışır

Bu, dekonvolüsyon için bulduğum en iyi açıklama. Ders 13 cs231'de, 21.21'den itibaren .


dilate kıvrımın çıktının boşluk boyutunu artırmaya nasıl yardımcı olduğunu düşünür müsünüz? Geleneksel kıvrımlardan daha fazla dolgu gerektiriyor gibi görünüyor, bu nedenle çıktı boyutu açısından daha kötü.
wlnirvana
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.