İşlev düzgünse neden eğim alçalmayı hızlandırır?


10

Şimdi "Scikit-Learn ve TensorFlow ile Uygulamalı Makine Öğrenimi" başlıklı bir kitap okudum ve bölüm 11'de ELU'nun (Üstel ReLU) açıklaması ile ilgili aşağıdaki açıklama var.

Üçüncüsü, fonksiyon z = 0 dahil olmak üzere her yerde pürüzsüzdür, bu da z = 0'ın soluna ve sağına sıçramayacağı için Gradient Descent'i hızlandırmaya yardımcı olur.

resim açıklamasını buraya girin

zAracı yukarıdaki grafikte x-ekseni. Türevin düzgün olduğunu anlıyorum çünkü z < 0çizginin bir eğrisi var ve bu alanda türev artık eşit değil 0.

Ancak, işlev "z = 0 dahil olmak üzere her yerde pürüzsüz" ise, Gradient Descent'i hızlandırması neden olur?


BTW doğru SE'de miyim? Veri Bilimi, Yapay Zeka ve Çapraz Onaylı (ve ayrıca MathSE) ... bana birçok konunun birbiriyle son derece ilişkili olduğu
anlaşılıyor

2
Bu soruyu burada Veri Bilimi'nde veya Çapraz Onaylı olarak yayınlamakta güvenli olacağını düşünüyorum. Muhtemelen Yapay Zeka için de uygundur, ancak bu siteye daha az aşinayım.
Neil Slater

İyi soru. Yumuşaklık, bebek adımlarını geçici olarak atmak yerine doğru yönde cesur adımlar atmanıza izin verir, çünkü gradyan bir sonraki adımda büyük ölçüde değişebilir. Yakınsama analizi için bkz. Örneğin, Nesterov'un Düzgün ve Güçlü Konveks Optimizasyon için Hızlandırılmış Gradyan İnişi
Emre

@NeilSlater AI çok net bir kapsama sahip. Bu tür soruları kapatıyorlar. Yani, DS ve CV en iyi seçenek olurdu :)
Dawny33

Yanıtlar:


1

Benim tahminim türev nedeniyle, çünkü ReLU 0'da süreksiz bir türeve sahiptir. Dolayısıyla, eğer tanımı kullanırsanız:

ff(x+ϵ)f(xϵ)2ϵ

ve 0'a çok yakın, bu 'atlamaların çoğunu alacaksınız.x


0

Bir ön: Burada geçerli olan bir işlevin üç özelliği vardır: sürekli, monotonik ve farklılaştırılabilir. RELU süreklidir ve monotonik somun z = 0'da ayırt edilemez. Üstel relu veya ELU, bu özelliklerin üçüdür.

Diferansiyel veya gradyan size bir yön verir. Bir fonksiyonun türevi bir noktada tanımsız olduğunda, gradyanın yönü o noktada belirsizdir.

Degrade iniş uygularken, kayıp fonksiyonunun sürekli olarak azalması için parametreleri sürekli olarak değiştirmek istiyoruz, bu da minimum seviyeye doğru ilerlemek istediğimizi söylemekle aynı şey.

Bir kayıp fonksiyonunun türevi bir noktada tanımsız olduğunda, gradyan belirsizdir. Bu, eğim alçalmasının potansiyel olarak yanlış yönde hareket edebileceği anlamına gelir. Bu belirsizliğin neden olduğu gecikmenin büyüklüğü öğrenme hızına ve diğer hiper parametrelere bağlıdır. Hiper parametrelere bakılmaksızın, istatistiksel olarak, RELU'daki z = 0'da tanımlanmamış türev, gradyan inişinin yakınsamasının yavaşlamasına katkıda bulunur.


Başlatmadan sonra parametrenin tam olarak z = 0 olması pek olası değildir.
Pieter

0

Daha hızlı veya daha düşük olmak göreceli bir terimdir ve neyle karşılaştırıldığı bağlamında anlaşılmalıdır. Bu nedenle, bunu anlamak için, önce degrade inişinin diğer aktivasyon fonksiyonu türleriyle nasıl çalıştığını düşünmeliyiz.

Örnek Kurulum

Bir numaralı gizli katmana sahip bir MLP düşünün .n

z1=W1x+b1

a1=f(z1)

...

zn=Wnan1+bn

y=f(zn)

burada aktivasyon fonksiyonudur.f

Tanh ve Sigmoid - Ufuk Degrade

Varsayalım Tanh veya Sigmoid aktivasyon fonksiyonudur. Bu fonksiyonların türevi herhangi bir için -1 ila 1 veya resmi olarak ile sınırlıdır .ff(x)(1,1)x

Bu, “gradyanla yok olma sorunu” olarak bilinen derin öğrenmede çok önemli bir soruna neden olur. wrt türevini ele . Zincir kuralı ile yW1

dfdW1=dfdWndWndWn1...dW2dW1

ve herhangi bir , 0<i<n

dXidXi1=f(Wi1ai2+bi1)×ai2(1,1)

(İlk terim arasındadır çünkü daha önce tartışıldığı gibi sınırlıdır ve de giriş değerini ezmek için arasındadır .)(1,1)fai2(1,1)

Yani temel olarak her birinin (0, 1) arasında olduğu birçok terimin ürünüdür. ne kadar büyükse (ağ ne kadar derinse) o terimden o kadar gerekir ve bunun sonucunda katlanarak küçülür. Bu üstel ilişki nedeniyle, degrade hızla o kadar küçük olur ki etkili bir şekilde sıfır olarak kabul edebiliriz. Degradelerin sıfır olması sonucu hiçbir şey öğrenilemez, çünkü degrade iniş için güncelleme kuralımız bu degradeye dayanır.dfdW1ndfdW1

RELU ve Ölü Nöron

Relu yok olan gradyan problemiyle başa çıkmak için icat edilmiştir, çünkü a_i olduğunda türevi her zaman 1'dir, bu nedenle RELU olduğunda : ai>0f

dXidXi1=ai2
dfdW1=a1a2a3...an1

olduğunda her şey güzel ve iyi, ancak olduğunda işler dağılıyor , bu kez degrade sıfıra çok yakın değil, saf bir sıfır. Bir nöron oraya ulaştığında, geri dönme şansı yoktur. Bu yüzden bu "Ölü Nöron" problemi olarak bilinirx>0x<0

Sızdıran RELU ve ELU

Sızdıran RELU ve ELU, RELU sonrası doğal gelişmedir. Bunlar olduğunda 1'e eşit olan RELU'ya benzerler, ancak olduğunda sıfır türevlerden kaçınarak "ölü nöron" dan kaçınırlar .x>0x<1

İkisi arasındaki fark için orijinal kağıdı alıntılarım .

LReLU'lar ve PReLU'lar da negatif değerlere sahip olsalar da, gürültüye dayanıklı bir devre dışı bırakma durumu sağlamazlar. ELU'lar daha küçük girdilerle negatif bir değere doyurur ve böylece ileriye doğru yayılan varyasyonu ve bilgileri azaltır.

Sezgisel açıklama aşağıdaki gibidir. ELU'da, x yeterince küçük olduğunda, gradyan gerçekten küçük ve doymuş hale geldi (Tanh ve Sigmoid için olduğu gibi). Küçük gradyan, öğrenme algoritmasının doymuş nöronlarla etkileşimi düşünmeden diğer ağırlıkların ayarlanmasına odaklanabileceği anlamına gelir.

3-boyutlu bir alanda pürüzsüz bir yüzey olarak temsil edilebilecek derece 2 polinomunu düşünün. Yerel minimum değeri bulmak için, gradyan iniş algoritmasının hem x hem de y yönündeki dikliği dikkate alması gerekir. Degrade hem x yönünde hem de y yönünde negatifse, hangi yolun daha iyi olduğu net değildir. Yani arada bir yerde bir yol seçmek mantıklı. Peki ya x-yönünde her şeyin düz (sıfır degradeler) olduğunu bilersek, o zaman y-yönüne gitmek beyinsiz olur. Başka bir deyişle, arama alanı çok daha küçük hale gelir.

özel not

Derin öğrenmede, yeterli ampirik kanıt veya onu destekleyecek derinlemesine anlayış olmadan birçok iddia vardır. ELU'nun durumunda, bazı veri kümeleri için daha hızlı yakınsama ile sonuçlandığı doğru olsa da, öğrenme algoritmasını farklı bir veri kümesi için yerel maksimumda sıkıştıracağı da doğru olabilir. Henüz yeterince bilmiyoruz.


0

Düzgün işlevlerin neden daha hızlı optimize edilebileceği, ancak matematiksel kanıt veya herhangi bir şey olmadığı konusunda sezgisel bir fikrim var.

Gradyan inişi, ağırlıklardaki değişikliği belirlemek için aktivasyon fonksiyonunun türevini hesaplar. Aktivasyon fonksiyonunun sert bir kesimi varsa (örneğin ReLu için z = 0'da), ünitenin aktivasyonu, ağırlıkları değiştirirken belirli veri noktaları için radikal olarak değişebilir (yani her zaman sıfır veya doğrusal).

Diğer ağırlıklar, belirli veri noktaları için belirli bir birimin bu radikal olarak farklı davranışına uyum sağlamalıdır. Bununla birlikte, ünitenin davranışı bir sonraki dönem boyunca yeniden radikal bir şekilde değişirse, ağ önceki dönemdeki değişikliklere uyum sağlamaya devam eder.

Düzgün bir fonksiyonla böyle radikal değişiklikler olmaz. Ve böylece ağ daha yavaş stabilize olabilir.

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.