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

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 çıkan doğrusal olmayan bir aktivasyon fonksiyonu.

  • 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 işlevinin girdisi W * x + b'dir, burada W birimin ağırlığıdır, x girdi değeridir ve ardından sapma b eklenir. Çı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ş). Üç boyutlu boşluktan geçen düz bir çizgi elde etmemize izin verir, ancak bir kişiyi sigara içen olarak doğru bir şekilde ayırt etmek için bir model asla öğrenemez. Ve sigara içmeyenler (örnek olarak eldeki mevcut sınıflandırma problemini ele alalım). 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. Gradyan kaybolması sorunu: Sinir ağı, 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

İşlevsel 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

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, mevcut aktivasyon işlevinin bilinen tüm sorunlarını çözmek için neden ReLU6 ve Leaky ReLU'yu birleştirmeyelim. 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 çıkan dikkate değer doğrusal olmayan aktivasyon fonksiyonları

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

işlevi Aşağıdaki gibi 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ğınızda ayrıca bir Batch-Norm katmanı (toplu spesifikasyon katmanı) varsa, bunu aktivasyon fonksiyonundan önce eklemeniz gerekir, yani sipariş önce CNN-Batch (evrişimli sinir ağı grubu) ve ardından Norm-Act (normalizasyon). Batch-Norm (toplu normalizasyon) 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öylüyor.Orijinal Batch-Norm kağıdıyla tutarlı olması için yazar yukarıdakini kullandı. Bir çeşit düzen.

  • Etkinleştirme işlevinin varsayılan hiperparametreleri, Tensorflow ve Pytorch gibi iyi bilinen ç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://towardsdatascience.com/everything-you-need-to-know-about-activation-functions-in-deep-learning-models-84ba9f82c253 Lei Feng Net Lei Feng Net Lei Feng Net aracılığıyla

Amazon Dördüncü Çeyrek Finansal Raporunu, Güçlü Bulut İş Performansını Açıkladı
önceki
Kendi kendini denetleyen öğrenme, derin öğrenmeyi veri ikileminden nasıl kurtarabilirim?
Sonraki
En eksiksiz! 2019'da NLP alanında hangi önemli olaylar meydana geldi?
Stanford Üniversitesi Ma Tengyu: Mevcut derin öğrenme algoritmalarını anlayamıyor musunuz? Sonra anlaşılır bir
Shandong, Huimin İlçesindeki doksan yaşındaki adam Meçhul Askerin Mezarı'nı 28 yıldır koruyor.
Xianlie 16 Liu Xiaopu Liu Yimeng: Zengin ve Zenginleri Fuyun Amca ve yeğen olarak gör
Fransız gazeteci Çin yasını yayınlarken uygunsuz sözler, bir hafta ara verdi
Shandong Eyaleti, Paiyishui İlçesinin Kırsal Yeniden Canlandırma Hizmeti Ekibi, kırsalın yeniden canlandırılmasına yardımcı olmak için eğitim çalışmalarına başladı
Weifang Şehri "Uçurtma Uçurtma ve Kaçırma" Etkinliği Düzenliyor
Mingde Group'un salgın önleme yönergeleri Brezilya'ya yardım etmek için acele ediyor, bu hamle yabancı medya dergilerinde yer aldı
Bilerek Sormak | Neden giderek daha fazla KOBİ profesyonel yönetim danışmanlığı arıyor?
İleriye dönük Power Battery Industry Küresel Haftalık Rapor No. 22: 300'den fazla patent! BYD "bıçak bataryası", seyir mesafesinin 500 kilometreyi aşmasına izin verir
2019 Wan Biheng'de emlak sektöründeki en aktif 10 marka en iyi satışlar için düşük anahtar rekabeti Sunac yüksek profil satın almaya devam ediyor
Tekrar aç! Onur yöneticileri Xiaomi'yi 100 milyon pikselle bombaladı: kamera iyi veya kötüyse, yalnızca pikseller yüksek veya düşükse çok kolay
To Top