Yığılmış evrişimli bir otomatik kod çözücünün mimarisi nedir?


23

Bu yüzden evrişimsel ağları kullanarak insanların görüntülerini silmeye çalışıyorum. Kağıtları ( Paper1 ve Paper2 ) ve bu stackoverflow bağlantısını okudum , fakat ağların yapısını anladığımdan emin değilim (gazetelerde iyi tanımlanmamış).

Sorular:

  • Girişimi, ardından bir ses katmanı, ardından bir conv katmanı, ardından bir havuz katmanı izleyebilirim - sonra - çıktımı vermeden önce havuzun havuzunu düzeltir miyim (bu benim giriş resmimle aynıdır)?

    Diyelim ki birkaç (135,240) görselim var. 32, (12,21) çekirdek ve ardından (2,2) havuz kullanırsam, 32 (62, 110) özellik haritası ile bitirdim. Şimdi 32 (124, 220) özellik haritası almak ve bunları düzeltmek için havuzdan ayrılıyor muyum? (135,240) çıkış katmanımı vermeden önce?

  • Bu tür çoklu havuz katları varsa, bunları yığılmış dengelenmiş otomatik kodlayıcılardaki gibi tek tek eğitmeli miyim? Veya - input-conv-pool-conv-pool-conv-pool-output (çıktı girdiyle aynı) gibi bir şey alabilir miyim? Bu durumda, havuzlama, depooling nasıl yönetilmeli? Çıktıdan önce sadece son havuz katmanındaki havuzdan ayrılmalı mıyım? Ve yine - bu havuzdan çıkarmanın boyutlandırma faktörü ne olmalıdır? Özellik haritalarını tekrar giriş şekline getirme niyeti var mı?

  • Her conv-pool-depool katmanından sonra gürültü katmanları oluşturmalı mıyım?

  • Ve sonra ince ayar yaparken - havuzdan çıkarma katmanlarını kaldırmam ve gerisini aynı bırakmam gerekir mi? Yoksa hem gürültü katmanlarını hem de biriktirme katmanlarını temizlemeli miyim

  • Herhangi biri beni, görüntüler üzerinde önceden eğitim yapmak için böyle bir evrişimli otomatik kodlayıcının mimarisini ayrıntılandıran bir url / kağıda işaret edebilir mi?

Yanıtlar:


12

Şu anda yığılmış evrişimli otomatik kodlayıcıları araştırıyorum.

Bazı sorularınızı, bildiğim kadarıyla cevaplamaya çalışacağım. Dikkat et, yanılmış olabilirim, o yüzden tuzla karıştır.

  1. Evet, havuzu "tersine" çevirmeniz ve sonra çıktı görüntüsünüzü geri kazanmak için bir dizi filtre kullanmanız gerekir. Standart bir sinir ağı (MNIST verilerini girdi olarak kabul eder, yani 28x28 giriş boyutları):

        28x28(input) -- convolve with 5 filters, each filter 5x5 -->  5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
    
  2. Anladığım kadarıyla, geleneksel olarak bunun ne yapması gerektiği, yani her katmanı ayrı ayrı eğitilmesi gerektiğidir. Bundan sonra katmanları istifler ve önceden eğitilmiş ağırlıkları kullanarak tüm ağı bir kez daha eğitirsiniz. Bununla birlikte, Yohsua Bengio'nun bazı araştırmaları (referans hafızamdan çıkıyor) birinin tamamen istiflenmiş bir ağ kurup sıfırdan eğitim alabileceğini gösteren bir araştırma var.

  3. Anladığım kadarıyla "gürültü katmanı" girdilerde sağlamlık / değişkenlik sağlamak ve böylece eğitimin üstesinden gelmemesi için var.

  4. Halen ön eğitim veya ince ayar “eğitimi” yaptığınız sürece, yeniden yapılanma bölümünün (yani tersine çevirme, çözülme vb.) Gerekli olduğunu düşünüyorum. Aksi halde, kişi ağırlıkları ayarlamak için nasıl geri-yayılım yapmalıdır?

  5. Çok sayıda makaleye göz atmayı denedim, ancak mimari asla tam olarak açıklanmadı. Eğer bulursanız, lütfen bana bildirin.


Önceden eğitiminiz bittiğinde, kod çözücü kısmına artık ihtiyacınız kalmaz ve ince ayar daha iyi sınıflandırma için kodlayıcıyı ayarlayacaktır.
jwalker

2
"Reverse-maxPool" nasıl mümkün olabilir? Asla sadece maksimum verilen bir sayı grubunu yeniden oluşturamazsın ...?
Fequish

1
@Fequish, yaklaşık bir ters-maxpool örn.: Eğer pool = 2x2 ise, max'in pozisyonunu
korurum ve max'i 2x2'de

1
@jwalker, benim son hedefim sınıflandırma değildi, bu yüzden
kontrolsüz

@Fequish, tersini kodunu çözmek amacıyla sadece en yakın komşu lüks.
jwalker

2

Ayrıca açıklamalı Yığılmış Konvolüsyon Otomatik Kodlayıcı modelini de araştırıyordum.

Üç farklı mimariyle karşılaştım. Hala onları inceliyorum ve bunların CAE'leri keşfetmeye başlayan başkalarına da yardımcı olabileceğini düşündüm. Makalelere veya uygulamalara yapılan herhangi bir referans büyük ölçüde yardımcı olacaktır.

  1. Sizin havuzunuzda bahsettiğinizi - unpooling.
  2. (Convolve) __ x_times -> (dekonvolve) __ x_times katmanları,

    ve girişle aynı boyutta olsun.

  3. (evrişim -> havuz) __ x_times -> (aşamalı dekonvolüsyon) __y_times
    • dolgu ve basamaklar, son resim boyutu orijinal resim ile aynı olacak şekilde seçilir.
    • Referans

2
Siteye Hoşgeldiniz. Bu, OP'nin sorusuna bir cevap, OP'den veya cevap verenlerden birinden açıklama isteyen bir yorum mu yoksa kendi yeni bir sorunuzu mu amaçladı? Lütfen asıl soruya cevap vermek için sadece "Cevabınız" alanını kullanın. İtibarınız> 50 olduğunda her yerde yorum yapabileceksiniz. Yeni bir sorunuz varsa ASK QUESTION , sayfanın üstündeki griye tıklayın ve orada sorun, o zaman size doğru şekilde yardımcı olabiliriz. Burada yeniyken , yeni kullanıcılar için bilgi sahibi olan turumuza katılmak isteyebilirsiniz .
gung - Monica'yı yeniden yerleştir

1
Tam bir cevap olarak nitelendirilemese de, OP'nin sorusuna bir cevap olarak tasarlandı. Son kısmı cevaplıyordum 'Çok sayıda makaleye göz atmayı denedim, ancak mimari asla tam olarak açıklanmadı. Herhangi bir şey bulursanız lütfen bana bildirin. '
Ankitp

Tamam teşekkürler. Çıkma şekli belirsiz. Örneğin, "Ben de araştırıyordum ..." & "Makalelere veya uygulamalara yapılan diğer referanslar çok yardımcı olacaktır". CV'nin tartışma forumu değil saf bir soru-cevap sitesi olduğunu unutmayın. Neden turumuza katılmıyor ve site hakkında daha fazlasını öğrenmiyorsunuz?
gung - Monica’yı eski

-1

Katmanlı eğitim yönteminin doğru olduğunu sanmıyorum. Örneğin, evrişimli otomatik kodlayıcının mimarisi şudur:

Giriş-> conv-> max_poo-> de_max_pool-> de_conv-> çıktı.

Bu bir otomatik kodlayıcıdır ve tüm mimari ile eğitilmelidir. Ayrıca, bir evrişimsel otomatik kodlayıcının havuza ve un_pool'a ihtiyaç duyup duymadığı konusunda kesin bir kriter yoktur. genellikle bir havuz ama un_pool olmadan. İşte havuz ve un_pool yokluğu ile deneysel bir karşılaştırma.

https://arxiv.org/pdf/1701.04949.pdf

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.