CNN'de lokal cevap normalleşmesinin önemi


41

Imagenet ve diğer büyük CNN’lerin yerel tepki normalleştirme katmanlarını kullandığını buldum. Ancak onlar hakkında bu kadar fazla bilgi bulamıyorum. Ne kadar önemlidir ve ne zaman kullanılmaları gerekir?

Gönderen http://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :

"Yerel yanıt normalleştirme katmanı, yerel giriş bölgeleri üzerinde normalleştirerek bir tür" yanal engelleme "gerçekleştirir. ACROSS_CHANNELS modunda, yerel bölgeler, yakın kanallar boyunca uzanır, ancak uzamsal bir kapsamı yoktur (yani, yerel_size x 1 x 1 şeklindedirler) WITHIN_CHANNEL modunda, yerel bölgeler uzamsal olarak uzanır, ancak ayrı kanallarda bulunur (yani, 1 x local_size x local_size şeklindedirler) Her giriş değeri (1+ (α / n) ∑ix2i) β ile bölünür. Her bir yerel bölgenin büyüklüğüdür ve toplam bu değerde ortalanan bölge üzerinden alınır (gerektiğinde sıfır dolgu eklenir). "

Düzenle:

Bu tür katmanların minimal bir etkiye sahip olduğu ve artık kullanılmadığı görülmektedir. Temel olarak, rolleri diğer düzenlileştirme teknikleri (bırakma ve parti normalizasyonu gibi), daha iyi başlatmalar ve eğitim yöntemleri ile gösterilmiştir. Daha fazla ayrıntı için aşağıdaki cevabımı inceleyin.

Yanıtlar:


20

Bu tür katmanların minimal bir etkiye sahip olduğu ve artık kullanılmadığı görülmektedir. Temel olarak, rolleri diğer düzenlileştirme teknikleri (bırakma ve parti normalizasyonu gibi), daha iyi başlatmalar ve eğitim yöntemleri ile gösterilmiştir. Bu, ConvNets'deki Stanford Course CS321n ders notlarında yazılan şeydir:

Normalleştirme katmanı

ConvNet mimarilerinde, bazen biyolojik beyinde gözlemlenen inhibisyon şemalarını uygulama niyetleriyle kullanılmak üzere birçok normalizasyon katmanı türü önerilmiştir. Bununla birlikte, bu katmanlar son zamanlarda lehine düşmüştür, çünkü pratikte katkılarının asgari düzeyde olduğu gösterilmiştir. Çeşitli normalleştirme türleri için Alex Krizhevsky'nin cuda-convnet kütüphanesi API'sindeki tartışmaya bakın.


20

Aslında, tek bir yerde iyi bir açıklama yok gibi görünüyor. En iyisi, nereden geldiği makaleleri okumaktır:

Orijinal AlexNet makalesi Kısım 3.3'te biraz açıklar:

  • Krizhevski, Sutskever ve Hinton, Derin Konvolüsyonel Sinir Ağları ile ImageNet Sınıflandırması, NIPS 2012. pdf

Bunu yapmanın kesin yolu şurada önerildi (ancak burada fazladan fazla bilgi yok):

  • Kevin Jarrett, Koray Kavukçuoğlu, Marc'Aurelio Ranzato ve Yann LeCun, Nesne Tanıma için En İyi Çok Aşamalı Mimari Nedir ?, ICCV 2009. pdf

Hesaplamalı sinirbilimden ilham aldı:

  • S. Lyu ve E. Simoncelli. Bölücü normalleştirme kullanarak doğrusal olmayan görüntü gösterimi. CVPR 2008. pdf . Bu makale matematiğin derinliklerine iner ve seanv507'nin cevabına uygundur.
  • [24] N. Pinto, DD Cox ve JJ DiCarlo. Gerçek dünyadaki gerçek nesne tanıma neden zor? PLoS İşlemsel Biyoloji, 2008.

15

Bilgilendirildiğimi iddia etmeme rağmen, önerilen cevabım burada. Bir lineer model gradyan gerçekleştirirken, hata yüzeyi tarafından belirlenen bir kavis ile kuadratiktir , için girdidir. Şimdi, gradyan iniş için ideal hata yüzeyi her yöne aynı eğriliğe sahiptir (aksi halde adım boyutu bazı yönlerde çok küçük, diğerlerinde ise çok büyük). Girdileri sıfır anlamına gelecek şekilde yeniden ölçeklendirmek suretiyle girdilerinizi normalleştirmek, varyans 1 yardımcı olur ve hızlıdır: şimdi her bir boyut boyunca olan yönlerin hepsi aynı eğriliğe sahiptir, bu da eğriliği diğer yönlerde sınırlar.XXTX

En uygun çözüm, girişleri her bir nörona küre / beyazlaştırmak olacaktır, ancak bu hesaplama oldukça pahalıdır. LCN, komşu pikseller (veya kanallar) arasında yüksek derecede bir korelasyon derecesinin olduğu varsayımına dayanarak yaklaşık bir beyazlatma olarak haklı görülebilir. Bu nedenle, fayda yüzeyinin SGD için daha iyi huylu olduğunu iddia ediyorum ... Tek bir Öğrenme oranı iyi çalışıyor giriş boyutları boyunca (her bir nörondan)


2
Toplu Normalleştirme: İç Değişkenli Vardiyayı Azaltarak Derin Ağ Eğitimini Hızlandırmak Sergey Ioffe, Christian Szegedy, arxiv.org/abs/1502.03167 nöron girdilerinin yeniden ölçeklendirilmesini ve daha büyük öğrenme hızlarını kullanabilmenin önemli ölçüde hız kazanmasını sağlar.
seanv507

Bu metni, cevap metninin altındaki düzenle düğmesini kullanarak yanıtınıza düzenleyebilirsiniz.
Monica

10

Bu yanıtla, diğer yazarların katkılarını özetlemek ve sadece ne olduğunu ve nasıl çalıştığını bilmek isteyenler için LRN (veya kontrast normalizasyonu) tekniğinin tek bir açıklama yapmasını istiyorum.

Motivasyon: ' Bu tür yanıt normalleşmesi (LRN), farklı nöron çıktıları arasında hesaplanan nöron çıkışları arasında büyük aktiviteler için rekabet yaratarak, gerçek nöronlarda bulunan tipten ilham alan bir tür lateral inhibisyon uygular. ' AlexNet 3.3

Başka bir deyişle, LRN, mahalle için eşit derecede büyük olan tepkileri azaltmaya ve büyük bir aktivasyonu bir mahallede daha belirgin hale getirmeye, yani aktivasyon haritasında daha yüksek kontrast yaratmaya izin verir. prateekvjoshi.com , RELU olarak sınırsız aktivasyon işlevleriyle özellikle faydalı olduğunu belirtir.

Orijinal Formül: her özel konumu için (x, y) ve çekirdek i tek 'piksel' çıkışına karşılık bir 'filtre' geçerli olduğunu, diğer çıkışları ile ilgili bilgileri içermektedir n aynı konumda uygulanan çekirdekler. Bu düzenlileştirme etkinleştirme işlevinden önce uygulanır. Bu düzenlenme, aslında, en iyi bilgime göre, sadece talihsiz bir tesadüf olan çekirdeklerin sırasına dayanır.

LRN

Uygulamada (bkz. Caffe ) 2 yaklaşım kullanılabilir:

  1. WITHIN_CHANNEL. Tek bir kanalın lokal mahallesi üzerinden normalize edin (tek bir evrişimli filtreye karşılık gelir). Başka bir deyişle, yakındaki pikseller için aynı nöronun çıkış değerlerine göre tek bir pikselin tek bir kanalının tepkisini bölün.
  2. ACROSS_CHANNELS. Tek bir piksel için, her kanalın değerlerini aynı piksel için tüm kanalların değerlerine göre normalleştirin

Gerçek kullanım LRN, LeNet-5 gibi erken dönem konvetlerin yapıldığı günlerde daha sık kullanıldı. GoffeLeNet'in (Başlangıç) Caffe'deki halihazırdaki uygulaması, havuzlama teknikleriyle bağlantılı olarak LRN'yi sıklıkla kullanıyor, fakat sadece sahip olma uğruna yapılmış gibi görünüyor. Ne orijinal Inception / GoogLeNet ( burada ) ne de aşağıdaki sürümlerden hiçbiri LRN'den bahsetmiyor. Ayrıca, TensorFlow'un Başlangıç ​​uygulaması (orijinal yazarlar ekibi tarafından sağlandı ve güncellendi) ağları mevcut olmasına rağmen LRN kullanmıyor.

Sonuç Havuz katmanıyla birlikte LRN uygulamak, hiper-parametre değerleri makul olduğu sürece ağın performansını incitmez. Buna rağmen, bir sinir ağında LRN / kontrast normalizasyonu uygulamak için herhangi bir yeni gerekçenin farkında değilim.


Ayrıca LRN'nin Aurélien'deki Géron'daki 374. sayfaya göre bir tür "rekabetçi normalleşme" olduğunu da eklerdim. Scikit-Learn ve TensorFlow ile uygulamalı makine öğrenimi: akıllı sistemler oluşturmak için kavramlar, araçlar ve teknikler. "O'Reilly Media, Inc.", 2017 . (Hinton'un derste konvolüsyonlu ağlarda konvansiyonel ağlarda sadece "rekabetçi normalleşme" olarak adlandırdığından bahsettiğim için
Oren Milman

7

Yerel Yanıt Normalleştirme (LRN) katman tipi, sınırlandırılmamış aktivasyonlu nöronları kullanırken (örn. Rektifiye edilmiş lineer nöronlar) kullanılırken yararlı olur, çünkü üniform olarak büyük olan yanıtları sönümlerken büyük bir nöron yanıtıyla yüksek frekans özelliklerinin tespitine izin verir. yerel bir mahallede. Yakındaki nöron grupları arasında büyük aktiviteler için "rekabeti" teşvik eden bir düzenleyici türüdür.

src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)


0

Yerel yanıt normalizasyon (LRN), her bir kanal için yapılmış piksel-bazlı bir :i

xi=xi(k+(αjxj2))β

burada sabitlerdir. , , ayarını yaparsanız L2 normalleşmesi elde edersiniz .k,α,βRκ=0α=1β=12

Ancak, oldukça benzer çalışan ve artık LRN kullanmamaya işaret eden "toplu normalleştirme" (bkz. Kağıt ) adı verilen daha yeni bir teknik var . Toplu normalleştirme ayrıca piksel şeklinde çalışır:

y=xμσ2+ϵγ+β

burada , varyansı, küçük bir sabittir, , ağın normalleşmeyi kaldırmasına izin veren öğrenilebilir parametrelerdir.μσ2ε>0γ,βR

Yani cevap: Yerel Tepki Normalizasyonu artık önemli değil, çünkü daha iyi çalışan ve yerine LRN: Toplu Normalleştirme olan bir şeyimiz var.

Ayrıca bakınız


Bence bu doğru değil. LRN, çekirdeğin çıktısına uygulanır, girdi değildir (Alexnet girdi normalizasyonunu kullanır, ancak bu ayrıdır).
Shital Shah
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.