Bir bırakma katmanı eklemek, bırakmanın modeldeki bazı nöronları bastırdığı düşünüldüğünde neden derin / makine öğrenme performansını iyileştirir?


13

Bazı nöronların çıkarılması daha iyi bir model ile sonuçlanıyorsa, neden daha az katman ve daha az nöron içeren daha basit bir sinir ağı kullanmıyorsunuz? Neden başlangıçta daha büyük, daha karmaşık bir model oluşturmalı ve daha sonra parçalarını bastırmalısınız?

Yanıtlar:


31

Bırakma işlevi, modelin sağlamlığını arttırmak ve ayrıca nöronlar arasındaki basit bağımlılıkları ortadan kaldırmaktır.

Nöronlar sadece ağ üzerinden ileri ve geri tek bir geçiş için kaldırılır - yani ağırlıkları bu geçiş için sentetik olarak sıfıra ayarlanır ve böylece hataları da aynı şekilde ağırlıklar güncellenmez. Bırakma, aynı zamanda, bir form olarak görev yapmaktadır regularization biraz, karmaşıklığı modeli bir ceza gibi.

Michael Nielsen'in Derin Öğrenme kitabındaki (ücretsiz ve çevrimiçi) Bırakma bölümünü okumanızı tavsiye ederim , bu da güzel sezgi verir ve aynı zamanda çok yararlı diyagramlar / açıklamalar da içerir. Bunu şöyle açıklıyor:

Bırakma, normalleştirme için kökten farklı bir tekniktir. L1 ve L2 normalleştirmesinin aksine, bırakma maliyet işlevini değiştirmeye dayanmaz. Bunun yerine, çıkışta ağın kendisini değiştiririz.

İşte güzel bir özet makale . Bu makaleden:

Bazı Gözlemler:

  • Bırakma, bir sinir ağını, diğer nöronların birçok farklı rastgele alt kümesiyle birlikte yararlı olan daha sağlam özellikleri öğrenmeye zorlar.
  • Bırakma, yakınsama için gereken yineleme sayısını kabaca iki katına çıkarır. Ancak, her çağ için eğitim süresi daha azdır.
  • Her biri bırakılabilen H gizli birimlerle, 2 ^ H olası modelimiz var. Test aşamasında, tüm ağ dikkate alınır ve her aktivasyon bir faktör p ile azaltılır.

Misal

Bana bir bardak çay yapmanı istediğimi düşünün - suyu dökmek için her zaman sağ elinizi, su seviyesini ölçmek için sol gözünüzü ve daha sonra çayı bir kaşıkla karıştırmak için sağ elinizi tekrar kullanabilirsiniz. Bu, sol elinizin ve sağ gözünüzün çok az amaca hizmet ettiği anlamına gelir. Bırakma kullanmak, örneğin sağ elinizi arkanıza bağlar - sizi sol elinizi kullanmaya zorlar. Şimdi bana 20 bardak çay yaptıktan sonra, bir gözünüz veya bir eliniz hareketsiz hale getirildiğinde, mevcut her şeyi kullanma konusunda daha iyi bir eğitime sahipsiniz. Belki daha sonra küçük bir mutfakta çay yapmak zorunda kalacaksınız, burada su ısıtıcısını sadece sol kolunuzla kullanabilirsiniz ... ve bıraktıktan sonra bunu yapma deneyiminiz var! Görünmeyen verilere karşı daha sağlam hale geldiniz.


çok sınıflı sınıflandırma için en iyi bırakma değeri nasıl belirlenir? ve en iyi çıkış katmanı nasıl belirlenir?
N.IT

2
@ N.IT - bildiğim kadarıyla, en iyi bırakma seviyesini veya kaç katmanı bulabilecek iyi tanımlanmış bir yöntem yok - jsut dışında birçok kombinasyon deniyor. Diğer düzenleme ve mimari keşif yöntemlerinde olduğu gibi, bir modeli eğitip eğitim / validasyon kaybı eğrilerini karşılaştırarak muhtemelen en iyi sonuçları alacaksınız. Konu hakkındaki bu açıklamaya göz atın .
n1k31t4

Mükemmel cevap. Mutfak benzetmeniz konusunda daha somut olmak için, Bırakma sadece eğitim sırasında kullanılır, çıkarım sırasında değil. Bu nedenle, karmaşık model kısmen kullanılmamaktadır.
Vaibhav Garg

Bu cevabı gözlerim yakın yazarak wsa. daha fazla eğitim nee gyes. nwws moeo seopour.
VHanded

3

Bırakma aslında nöronları ortadan kaldırmaz, sadece bu belirli nöronlar verilen veri grubu için herhangi bir rol oynamaz (aktive edilmez).

Örnek - 8 şeritli bir yol olduğunu varsayalım - Kamyonlar geldiğinde, 1,2,4,6,7 şeritlerden geçerler, Arabalar geldiğinde, 2,3,4,7,8 şeritlerden geçerler ve Bisikletler geldiğinde , şeritlerden geçerler 1,2,5,8. Yani herhangi bir araçtan bağımsız olarak, tüm şeritler orada, ancak sadece bir kısmı kullanılıyor.

Benzer şekilde, tüm nöronlar tüm modelde kullanılır, ancak belirli bir veri grubu için sadece bir nöron alt kümesi aktive edilir. Ve model daha sonra kesilmez, model karmaşıklığı olduğu gibi kalır.

Neden bırakma kullanılır?

Ian Goodfellow'un Derin Öğrenme kitabında verildiği gibi,

bırakma, ağırlık azalması, filtre norm kısıtlamaları ve seyrek aktivite düzenlenmesi gibi diğer standart hesaplamalı ucuz düzenleyicilere göre daha etkilidir.

Ayrıca diyor ki-

Bırakmanın bir avantajı, çok hesaplı olarak ucuz olmasıdır.

Bırakmanın bir diğer önemli avantajı, kullanılabilecek model veya eğitim prosedürünü önemli ölçüde sınırlamamasıdır. Dağıtılmış bir gösterim kullanan hemen hemen her modelle iyi çalışır ve stokastik degrade iniş ile eğitilebilir. Bu, ileri beslemeli sinir ağlarını, kısıtlı Boltzmann makineleri (Srivastava ve diğerleri, 2014) ve tekrarlayan sinir ağlarını (Bayer ve Osendorfer, 2014; Pascanu ve diğerleri, 2014a) içerir.

Bu kitap diyor ki-

Ana fikir, bir katmanın çıktı değerlerine gürültü sokmanın, önemli olmayan olay kalıplarını kırabileceğidir;


Bastırmak değil kaldırmak kelimesini kullanmak için soruyu düzenledim. Soru hala var. Sonunda sadece bir kısmı kullanıldığında neden bu kadar çok şerit yapalım?
user781486

@ user781486 Bazıları tarafından, her veri grubu için bazıları anlamına gelir, ancak tüm verileri dikkate alırsanız hepsi kullanılır. Örneğimde olduğu gibi, her araç için birleşik şerit numarası seti alırsanız tüm 1-8 şeritleri kullanılır.
Ankit Seth

3

Bırakmanın ne yaptığına bakmanın bir başka yolu, Bayes modelinde bir ortak değişkenin (orijinal ortak değişkenlerin bazı karmaşık fonksiyonel dönüşümlerle karmaşık etkileşim terimi) önceki bir levha ve ani artış gibi olmasıdır. Bu Yarin Gal tarafından tezinde önerilen yorumdur (yayın listesine bakınız ).

İşte bunun neden böyle olduğuna dair kısa bir el salgısı:

  • Bir nöronun elimine edildiği bu gruplarda, özellik / eş değişkenlik katsayısı (nöron ağına nöron içine giden bağlantı ile inşa edilmiş) sıfırdır (sıfıra yükselir).
  • Nöronun bulunduğu bu gruplarda, katsayı sınırsızdır (uygun olmayan düz önceki = levha).
  • Tüm partilerin ortalaması alınarak, daha önce bir ani yükseliş ve slab elde edersiniz.

Neden daha önce bir levha ve ani artış istesin ki? Bu nöron içermeyen nötr bir ağ ile içinde bulunan bir ağ arasında ortalama bir Bayes modeli başlatır. tahminleri. Bu, nötr ağların verilere göre daha fazla uyum sağlayabileceği ana sorununu ele almaktadır (elbette bunu başarmanın tek olası yolu değildir).


İyi bir nokta. Cevabı güncelleyecek.
Björn

2

Bırakma katmanı, nöronların belirli bir bölümünü rastgele ayırır ve söz konusu modelin temsil kapasitesini azaltır. Bu, ağın karmaşık doğrusal olmayan karar sınırlarına (yani veri kümesindeki "gürültü") uymasını önler, böylece aşırı sığmayı önler (veya iyileştirir).


0

Bırakma, aşağıdaki nedenlerle bir makine öğrenme modelinin performansının iyileştirilmesine yardımcı olur:

  • Ağı Daha Basit Yapmak: Ağı daha basit hale getirir, fazla takmayı önler.
  • Tek bir Basit Ağ Kullanmaktan Daha İyi: Daha basit bir ağı manuel olarak yeniden tasarlamaktan daha iyidir, çünkü belirli bir mimariyi tasarladıktan sonra, tüm eğitim süreci bitene kadar, yani ağ mimarisinin sabitlendiği tüm dönemler için bunu değiştiremezsiniz. Ancak, bırakma sırasında ağ, her çağda çeşitli şekillerde daha basittir. 1000 dönem için, aslında 1000 çeşit daha basit ağ varyasyonu ile denediğinizi varsayalım.
  • Birçok Yönüyle Öğrenin: Ağın girişi ve çıkışı değişmez, değişen tek şey aralarındaki eşlemedir. Şunu hayal edin, ağ aynı şeyi farklı şekillerde öğreniyor. Yani bu ağ gibi bizler de insanlar için - aynı problemi farklı şekillerde düşündüğümüzde otomatik olarak genellemeyi öğreniriz ve genel bilgi ve anlayışımız da gelişir ve benzer şey ağda gerçekleşir. Her dönemdeki bırakma işlemi sırasında rastgele olarak bazı ağırlıklar (bir nörondan bir sonraki tabakanın başka bir nöronuna bağlantı) kesiliyor, bu nedenle ağı mevcut mevcut bağlantıları kullanarak öğrenmeye zorluyoruz ve böylece ağ öğreniyor aynı problemin farklı perspektiflerden nasıl analiz edileceği.
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.