Sinir ağı neden bir aktivasyon işlevi değil?

Yazar | Vandit Jain

Derleme | Gong Qian

Düzenle | Cong Mo

Aktivasyon fonksiyonu sinir ağlarında hayati bir kavramdır.Bir nöronun aktive edilip edilmediğini belirler, nöron tarafından elde edilen bilginin yararlı olup olmadığına karar verir ve nöronu tutup tutmayacağına karar verir.

Bu makalenin yazarı Vandit Jain, aşağıdaki yönlere odaklanarak etkinleştirme işlevlerinin ilgili bilgilerinin daha kapsamlı bir özetini yaptı:

1. Aktivasyon işlevi nedir ve ağdaki rolü nedir?

2. Neden doğrusal işlev yerine etkinleştirme işlevine ihtiyacımız var?

3. İdeal bir aktivasyon fonksiyonunun özellikleri nelerdir?

4. Şu anda kullanımda olan çeşitli doğrusal olmayan fonksiyonlar.

5. Son araştırmada ortaya çıkmaya değer Dikkat Doğrusal olmayan aktivasyon işlevi.

6. Derin sinir ağlarında hangi aktivasyon fonksiyonları kullanılmalı ve nasıl kullanılmalıdır?

1. Aktivasyon işlevi nedir?

Basitçe ifade etmek gerekirse, etkinleştirme işlevi, sinir ağının verilerden karmaşık örüntüleri öğrenmesine yardımcı olmak için yapay sinir ağına eklenen bir işlevdir.

İnsan beynindeki nöron temelli modelle karşılaştırıldığında aktivasyon fonksiyonu, bir sonraki nörona ne tür bilgilerin iletileceğini belirleyen birimdir.Bu aynı zamanda yapay sinir ağındaki aktivasyon fonksiyonunun da fonksiyonudur. Aktivasyon fonksiyonu, önceki ünitenin sinyal çıkışını alır ve bunu bir sonraki ünite tarafından alınabilecek bir forma dönüştürür.

Aşağıdaki şekil ikisi arasındaki farkı özetlemektedir:

Kaynak: Stanford Üniversitesi'nin cs231n kursu

2. Neden bir aktivasyon fonksiyonuna ihtiyacımız var?

Sinir ağlarında doğrusal olmayan aktivasyon işlevlerini kullanmanın birçok nedeni vardır.

1. Yukarıda tartışılan biyolojik benzerliklere ek olarak, aktivasyon işlevi, nöronun çıktı değerini gereksinimlere göre belirli bir aralıkta sınırlamamıza da yardımcı olur. Bu önemlidir çünkü aktivasyon fonksiyonunun girdisi W * x + b'dir, burada W birimin ağırlığıdır, x girdi değeridir ve sonra Artı Önyargı b. Çıktı değeri belirli bir aralıkla sınırlı değilse, özellikle milyonlarca parametresi olan derin sinir ağlarında çok büyük hale gelebilir ve aşırı hesaplamalara neden olabilir. Örneğin, bazı aktivasyon fonksiyonları (softmax gibi) farklı giriş değerleri (0 veya 1) için belirli değerler çıkaracaktır.

2. Aktivasyon işlevinin en önemli özelliği, sinir ağına doğrusal olmama ekleme yeteneğidir. Anlama kolaylığı için, aşağıdaki şekilde gösterildiği gibi çok boyutlu verileri de düşünebiliriz:

Doğrusal işlevin üç özelliği vardır (bu şekilde ağırlık, sistolik kan basıncı ve yaş), bu da bize bir Hızlıca gözden geçirme Üç boyutlu uzayda düz bir çizgi, ancak bir kişiyi sigara içenler ve içmeyenler olarak doğru bir şekilde ayırt etmek için bir model asla öğrenemez (örnek olarak eldeki mevcut sınıflandırma problemini alın). Nedeni basit, bu sınıflandırmayı tanımlayan model hiç doğrusal değil.

Öyleyse yapay sinir ağlarında, ya sadece bir birimi olan ve aktivasyon işlevi olmayan bir sinir ağı kullanırsak? Bu durumda, elde ettiğimiz çıktı temelde W * x + b'dir, bu iyi değildir, çünkü W * x aynı zamanda x'in bir gücüdür, dolayısıyla fonksiyon hala doğrusaldır, temelde bir doğrusal fonksiyona eşdeğerdir.

Ya birden çok katmanı istiflersek? N katmanını temsil etmek için bir f (x) fonksiyonu kullanırsak, şunu elde edebiliriz:

Ancak, özellikle bilgisayarla görme veya doğal dil işleme gibi karmaşık kalıplarla ilgili sorunlarda bu yeterince karmaşık değildir.

Modelin doğrusal olmayan örüntüleri (veya daha yüksek karmaşıklığı) öğrenmesini sağlamak için, belirli bir doğrusal olmayan katman (etkinleştirme işlevi) eklenir.

Üç, ideal aktivasyon fonksiyonunun özellikleri

1. Yok olan gradyan sorunu: Sinir ağları, gradyan iniş süreci kullanılarak eğitilir.

Gradyan inişi, her antrenmandan sonra kaybı azaltmak için ağırlık değişiklikleri elde etmek için kullanılan zincir kurallarına dayalı geri yayılmadan oluşur. İki katmanlı bir ağ düşünün: İlk katman f (x) ve ikinci katman f (x) olarak gösterilir. Ağın tamamı o (x) = f (f (x)).

Ağırlıkları tersine hesaplarsak, o` (x) = f (x) * f` (x) elde edebiliriz. Burada f (x), Act (W * x + b) 'den oluşan bileşik bir fonksiyondur, burada Act ilk katmandan sonraki aktivasyon fonksiyonudur. Zincir kuralını tekrar uygulayarak, f` (x) = Act (W * x + b) * x elde edebiliriz, bu da bu sonucun doğrudan aktivasyon değerine bağlı olduğu anlamına gelir. Artık böyle bir zincir kuralının geri yayılma sırasında birçok katmandan geçeceği görülebilir.

Act'in değeri 0 ile 1 arasındaysa, ilk katmanın gradyanını hesaplamak için bu tür birkaç değerle çarpılacaktır. Bu işlem, ilk katmanın gradyan değerini azaltacaktır ve bu katmanlar doğru bir şekilde öğrenilemez.

Diğer bir deyişle, ağın derinliği ve aktivasyon süreci değeri 0'a yaklaşacak şekilde değiştirdiğinden, gradyanları kademeli olarak kaybolur, bu da gradyan kaybolma problemidir. Bu nedenle, ideal aktivasyon fonksiyonunun gradyanın kademeli olarak sıfır olmasını sağlamayacağını umuyoruz.

2. Sıfıra ortalanmış: etkinleştirme işlevinin çıktısı sıfıra simetrik olmalıdır, böylece gradyan belirli bir yönde hareket etmez.

3. Hesaplama maliyeti: Ağın her katmanı, derin ağda milyonlarca kez hesaplanması gereken etkinleştirme işlevini uygulayacaktır. Bu nedenle, aktivasyon fonksiyonunun hesaplama maliyeti çok düşük olmalıdır.

4. Türevlenebilirlik: Daha önce de belirtildiği gibi, sinir ağları bir gradyan iniş süreci kullanılarak eğitilir, bu nedenle modeldeki katmanların farklılaştırılabilir veya en azından kısmen farklılaştırılabilir olması gerekir. Bu, bir işlevin bir etkinleştirme işlevi katmanı olarak kullanılması için gerekli bir koşuldur.

Şu anda kullanımda olan dört, çeşitli doğrusal olmayan fonksiyonlar 1. Sigmoid işlevi

İşlev aşağıda gösterilmiştir:

Bu etkinleştirme işlevi gerçek modelde hiç kullanılmamıştır ve burada yalnızca tarihsel nedenlerle listelenmiştir. Sigmoid işlevi, gradyan kaybolması sorununa neden olacak büyük miktarda hesaplamaya sahiptir ve sıfırda ortalanmaz.Genellikle ikili sınıflandırma problemlerinde kullanılır.

  • Softmax Lojistik Regresyon Modeli: softmax lojistik regresyon modeli, çoklu sınıflandırma problemlerinde Sigmoid fonksiyonunun genelleştirilmiş bir şeklidir. Sigmoid işlevine benzer şekilde, 0-1 aralığında değerler de üretir, bu nedenle sınıflandırma modelinin son katmanı olarak kullanılır.

2. Hiperbolik tanjant fonksiyonu tanh

resim gösterdiği gibi:

Sigmoid işlevi ile karşılaştırıldığında, yalnızca sıfır merkezli sorunu çözer.

3. Doğrusal düzeltme fonksiyonu (Doğrultulmuş Doğrusal Birim, ReLU)

Bu fonksiyon aynı zamanda f (x) = max (0, x) olarak tanımlanan değiştirilmiş doğrusal birim olarak da adlandırılır:

Bu, özellikle evrişimli sinir ağlarında çok yaygın olarak kullanılan bir aktivasyon fonksiyonudur. Hesaplaması basittir, doyurmaz, gradyan kaybolması sorununa neden olmaz, ancak sıfıra ortalanmaz. Aynı zamanda "ölüyor ReLU" problemi de var, yani giriş negatif bir sayı olduğunda, çıkış sıfır olacak, bu da bazı düğümlerin tamamen "ölü" olmasına ve nöronların öğrenememesine neden oluyor.

ReLU ile ilgili bir başka sorun da aktivasyon patlamasıdır, çünkü üst sınırı inf'dir ve bazen kullanılamaz düğümler üretir.

4. Sızdıran ReLU ve Parametrik ReLU işlevleri

Fonksiyon, aşağıdaki şekilde gösterildiği gibi f (x) = max (x, x) olarak tanımlanır:

0.1 olduğunda

Burada , genellikle 0.01'e ayarlanmış bir hiperparametredir. Açıktır ki Leaky ReLU, "ReLU'nun ölmesi" sorununu bir ölçüde çözüyor. Lütfen 'yı 1'e ayarlarsak, Sızıntılı ReLU'nun doğrusal bir fonksiyon f (x) = x haline geleceğini ve bunun bir faydası olmayacağını unutmayın.

Bu nedenle, 'nın değeri asla 1'e yakın bir değere ayarlanmayacaktır. 'yı her bir nöronun hiper parametresi olarak ayrı ayrı ayarlarsak, Parametrik ReLU veya PReLU elde ederiz.

5. ReLU6 işlevi

X içinde ReLU6 > 0 alanı temelde ReLU'ya eşdeğerdir, f (x) = min (maks (0, x), 6) olarak tanımlanır

Bu, aktivasyon büyümesini önlemeye yardımcı olur, böylece gradyan patlamalarını (sonsuzluğa yaklaşırken) ve normal ReLU'larda meydana gelen diğer küçük sorunları önler.

Her zamanki düşüncemiz, neden ReLU6 ve Leaky ReLU Birleştirmek Mevcut aktivasyon işlevi ile bilinen tüm sorunları çözmek için ayağa kalkın. Popüler DL çerçevesi bu kadar hazır bir aktivasyon işlevi sağlamaz, ancak bunun iyi bir fikir olduğunu düşünüyorum.

5. Son araştırmada ortaya çıkmaya değer Dikkat Doğrusal olmayan aktivasyon işlevi 1. Swish işlevi

Swish, Ramachandran ve arkadaşları tarafından 2017 yılında önerildi ve f (x) = x * sigmoid (x) olarak tanımlandı.

ReLU ile karşılaştırıldığında, Swish'in performansı çok benzer grafiklere rağmen biraz daha iyi. Ancak, ReLU x = 0 olduğunda aniden değişecektir Swish'in aksine, belli bir noktada aniden değişmeyecek, bu da Swish'in eğitim sırasında yakınlaşmasını kolaylaştıracaktır.

Bununla birlikte, Swish'in dezavantajı yüksek hesaplama maliyetidir.Bu sorunu çözmek için, Swish'in bir sonraki sürümüne bir göz atalım.

2. Hard-Swish veya H-Swish işlevi

İşlev şu şekilde tanımlanır:

En büyük avantajı, neredeyse swish işlevine benzemesidir, ancak hesaplama maliyeti swish'ten daha düşüktür, çünkü üstel sigmoid işlevini doğrusal bir ReLU işlevi ile değiştirir.

6. Bu aktivasyon fonksiyonları derin sinir ağlarında nasıl kullanılır?

Her şeyden önce, Tanh ve sigmoid işlevleri büyük gradyan kaybolma sorunlarına neden olabilir, bu nedenle genellikle önerilmezler.

Başlangıçta sinir ağı ReLU işlevini tanıtmaya çalıştı. Yukarıda bahsedildiği gibi, ağırlık katmanından sonra bir aktivasyon katmanı ekleyin (CNN, RNN, LSTM veya doğrusal algılama katmanı gibi). Modelin öğrenmeyi durdurduğunu düşünüyorsanız, "Dying ReLU" problemini önlemek için Leaky ReLU ile değiştirebilirsiniz. Ancak Leaky ReLU, hesaplama süresini biraz artıracaktır.

Ağda ayrıca bir Batch-Norm katmanı (toplu normalleştirme katmanı) varsa, aktivasyon işlevini yürütmeden önce bu katmanı eklemeniz gerekir.Sipariş, önce CNN-Batch (evrişimli sinir ağı toplu işleme) ve ardından Norm-Act (standardizasyon eylemi) gerçekleştirmektir. . Batch-Norm (toplu standardizasyon) ve aktivasyon fonksiyonlarının sırası tartışmalı bir konu olmasına rağmen, bazıları sıranın aslında alakasız olduğunu söyler.Batch-Norm'un orijinal makalesi ile tutarlı olmak için yazar yukarıda belirtilen Bir çeşit düzen.

Etkinleştirme işlevinin varsayılan hiperparametreleri, Tensorflow ve Pytorch gibi çerçevelerde kullanılıyorsa en iyisidir. Ancak, Leaky ReLU'da negatif eğimi ayarlayabilir ve öğrenmeyi hızlandırmak için bunu 0,02'ye ayarlayabilirsiniz.

https: // directiondatascience aracılığıyla .com / derin öğrenme modellerinde etkinleştirme işlevleri hakkında bilmeniz gereken her şey-84ba9f82c253

AAAI 2020 | Sınırdan Metne - Keyfi Şekilli Metni Algılama Yöntemi
önceki
Zayıf kombinasyon genelleme yeteneği? Derin öğrenme füzyon kombinasyonu çözücüyü kullanmayı deneyin
Sonraki
AAAI2020 | Yeni koronavirüs salgını altındaki toplantılara hala gidiyor musunuz?
Tekrarlayan sinir ağından vazgeçme zamanı
WuHan.support yardım projesi resmi olarak işe alındı
Nöroevrim: farklı bir derin öğrenme türü
Mahjong'dan "böcek ilacına" kadar, AI'nın yakaladığı oyun alanlarını inceleyin
En eksiksiz! 2019'da NLP alanında hangi önemli olaylar meydana geldi?
Hangi Çin Yeni Yılı beyiti güçlü, yapay zeka çılgın
AAAI 2020 | Sun Yat-sen Üniversitesi HCP Lab: Ağaç yapısı stratejisine dayalı aşamalı pekiştirmeli öğrenme, kod açık kaynaktır
Alt markalar saldırır, NetEase Cloud Music "yolu savunur"
"2020 Bilim ve Teknoloji Eğilimleri Raporu": Yapay zeka ve Çin, geleceğin teknoloji dünyasında anahtar kelimeler haline geldi
Çin'de 200 milyar yuan'dan fazla evcil hayvan pazarı nedir?
Ali atıştırmak için dışarı çıktı, korkarım ki üç sincap, Liangpin Shop ve Baicao titriyor olmalı
To Top