Geri yayılım sinir ağında neden doğrusal olmayan bir aktivasyon fonksiyonu kullanılmalıdır?


Yanıtlar:


168

Aktivasyon fonksiyonunun amacı ağa doğrusal olmama

bu da açıklayıcı değişkenleriyle doğrusal olmayan değişkenlik gösteren bir yanıt değişkeni (hedef değişken, sınıf etiketi veya puan olarak) modellemenizi sağlar

doğrusal olmayan , çıktının girdilerin doğrusal bir kombinasyonundan çoğaltılamayacağı anlamına gelir (düz bir çizgiye dönüşen çıktıyla aynı değildir - bunun sözcüğü affinlidir ).

Bunu düşünmenin başka bir yolu: ağda doğrusal olmayan bir aktivasyon fonksiyonu olmadan , bir NN, kaç katmanı olursa olsun, tek katmanlı bir algılayıcı gibi davranır, çünkü bu katmanların toplanması size sadece başka bir doğrusal fonksiyon verecektir. (hemen yukarıdaki tanıma bakın).

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Backprop'ta ( hiperbolik tanjant ) kullanılan ortak bir aktivasyon fonksiyonu -2'den 2'ye değerlendirildi:

resim açıklamasını buraya girin


15
Neden doğrusallığı ortadan kaldırmak istiyoruz?
Mart'ta corazza

17
Modellemek istediğimiz veriler doğrusal değilse, modelimizde bunu hesaba katmamız gerekir.
12'de doug

38
Bir cümle cevabı: << ne kadar katman tek bir algılayıcı gibi davranırsa davransın (çünkü birlikte eklenen doğrusal fonksiyonlar size doğrusal bir fonksiyon verir) . Güzel!
Otonom

12
Bu biraz yanıltıcıdır - daha önce de belirtildiği gibi, düzeltilmiş doğrusal aktivasyon fonksiyonları son derece başarılıdır ve amacımız sadece fonksiyonları / yaklaşık fonksiyonları modellemekse, tüm adımlarda doğrusal olmama durumunun ortadan kaldırılması her zaman doğru cevap değildir. Yeterli doğrusal parça ile, hemen hemen tüm doğrusal olmayan fonksiyonları yüksek bir doğruluk derecesine yaklaştırabilirsiniz. Bunu düzeltilmiş doğrusal birimlerin neden çalıştığına dair iyi bir açıklama buldum: stats.stackexchange.com/questions/141960/…
tegan

11
@ tegan Doğrultulmuş doğrusal aktivasyon fonksiyonları doğrusal değildir. Yorumunuzun cevapla ne ilgisi olduğundan emin değilim.
endolith

49

Bununla birlikte, doğrusal aktivasyon fonksiyonu çok sınırlı durumlarda kullanılabilir. Aslında aktivasyon fonksiyonlarını daha iyi anlamak için sıradan en küçük kareye veya sadece doğrusal regresyona bakmak önemlidir. Doğrusal bir regresyon, girdi ile birleştirildiğinde açıklayıcı ve hedef değişkenler arasında minimum dikey etki ile sonuçlanan optimal ağırlıkları bulmayı amaçlar. Kısacası, beklenen çıktı aşağıda gösterildiği gibi doğrusal regresyonu yansıtıyorsa, doğrusal aktivasyon fonksiyonları kullanılabilir: (Üst Şekil). Ancak aşağıdaki ikinci şekilde olduğu gibi doğrusal fonksiyon istenen sonuçları vermeyecektir: (Orta rakam). Bununla birlikte, aşağıda gösterildiği gibi doğrusal olmayan bir fonksiyon istenen sonuçları üretecektir:

resim açıklamasını buraya girin

Aktivasyon fonksiyonları doğrusal olamaz çünkü lineer aktivasyon fonksiyonuna sahip sinir ağları, mimarilerinin ne kadar karmaşık olduğuna bakılmaksızın sadece bir kat derinlikte etkilidir. Ağlara girdi genellikle doğrusal dönüşümdür (girdi * ağırlık), ancak gerçek dünya ve problemler doğrusal değildir. Gelen verileri doğrusal olmayan hale getirmek için, etkinleştirme işlevi adı verilen doğrusal olmayan eşleme kullanıyoruz. Bir aktivasyon fonksiyonu, belirli bir nöral özelliğin varlığını belirleyen bir karar verme fonksiyonudur. 0 ile 1 arasında eşlenir; burada sıfır, özelliğin olmaması anlamına gelirken, biri varlığı anlamına gelir. Ne yazık ki, ağırlıklarda meydana gelen küçük değişiklikler aktivasyon değerlerine yansıtılamaz, çünkü sadece 0 veya 1 alabilir. Bu nedenle, doğrusal olmayan fonksiyonlar bu aralık arasında sürekli ve ayırt edilebilir olmalıdır. Bir sinir ağı -infinity ile + infinite arasında herhangi bir girdi alabilmelidir, ancak bazı durumlarda {0,1} veya {-1,1} arasında bir çıkışla eşleştirebilmelidir - dolayısıyla etkinleştirme işlevi ihtiyacı. Aktivasyon fonksiyonlarında doğrusal olmamaya ihtiyaç vardır, çünkü nöral bir ağdaki amacı, ağırlık ve girdilerin doğrusal olmayan kombinasyonları yoluyla doğrusal olmayan bir karar sınırı üretmektir.


1
+ Bir, O zaman mükemmel bir sınır oluşturmak için doğrusal olmayan fonksiyonun kullanıldığı sonucuna varılabilir mi?
SIslam

1
Evet kesinlikle. Sadece 0 veya 1 üretmek yerine, 0.4 veya 0.78 üretebilir ve bu da sınır aralığı boyunca sürekli olmasını sağlar.
chibole

3
Bir sinir ağı -infinity ile + infinite arasında herhangi bir girdi alabilmelidir, ancak {0,1} veya {-1,1} arasında değişen bir çıktıyla eşleştirebilmelidir ... hatırlatıyor ReLU sınırlaması, sadece bir Sinir Ağı Modelinin Gizli katmanlarında kullanılması gerektiğidir.
Cloud Cho

21

Sinir ağında sadece doğrusal aktivasyon fonksiyonlarına izin verirsek, çıktı sadece girişin doğrusal bir dönüşümü olur , bu evrensel bir fonksiyon tahmincisi oluşturmak için yeterli değildir . Böyle bir ağ sadece bir matris çarpımı olarak temsil edilebilir ve böyle bir ağdan çok ilginç davranışlar elde edemezsiniz.

Aynı şey bütün nöronlar afin aktivasyon işlevleri halinde gider (formdaki bir aktivasyon fonksiyonu yani f(x) = a*x + c, ave csadece bir neden olur, lineer etkinleştirme fonksiyonları bir genellemedir sabitlerdir) benzeşik transformasyon girişten çıkışa bu da çok heyecan verici değil.

Bir nöral ağ, çıkış katmanı gibi lineer aktivasyon fonksiyonlarına sahip nöronlar içerebilir, ancak bunlar, ağın diğer kısımlarında lineer olmayan aktivasyon fonksiyonuna sahip nöronların şirketini gerektirir.

Not: İlginç bir istisna, aktivasyon değerleri verildiğinde geri yayılım geçişindeki gradyanı tahmin etmek için küçük bir sinir ağı kullandıkları DeepMind'in sentetik gradyanlarıdır ve gizli katmanları olmayan bir sinir ağı kullanarak uzaklaşabileceklerini ve sadece doğrusal aktivasyonlar.


1
Daha yüksek mertebeden fonksiyonlar, çoklu gizli katmanlar kullanılarak doğrusal aktivasyon fonksiyonlarıyla yakınlaştırılabilir. Evrensel yaklaşım teoremi, sadece bir gizli katmanı olan MLP'lere özgüdür.
eski

Aslında, afin dönüşümle sonuçlanan afin aktivasyon fonksiyonları hakkındaki ifadenizde doğru olduğuna inanıyorum, ancak dönüşümün backpagagation (veya başka bir yolla) ile öğrenilmesi, orijinal soru söz konusu olduğunda onu tamamen işe yaramaz hale getiriyor.
eski

4
@eski Hayır, olabilir değil fonksiyonları ve dönüşümleri, kaç katmanlar sizi olursa olsun (her bir ek sabit düğüm ama geçen tabakayı varsa, ya afin) yapabilirsiniz, sadece doğrusal aktivasyon fonksiyonları ile tek model doğrusal yüksek mertebeden fonksiyonlarını yaklaşır Sahip olmak.
HelloGoodbye

Aktivasyon fonksiyonunun ana amacının sinir ağının doğrusal olmayan bir karar sınırı üretmesine izin vermek olduğunu söylemek doğru mudur?
stackoverflowuser2010

@ stackoverflowuser2010 Buna bakmanın bir yolu olurdu. Ancak bir aktivasyon fonksiyonundan daha fazlası vardır. Wikipedia'nın etkinleştirme işlevleri hakkındaki makalesi , tümü (biri hariç) doğrusal olmayan çeşitli etkinleştirme işlevlerini listeler ve etkinleştirme işlevinin sahip olabileceği farklı nitelikleri karşılaştırır.
HelloGoodbye

9

Doğrusal aktivasyonu ve herhangi bir sayıda gizli katmanı olan ileri beslemeli bir sinir ağı, gizli bir katmanı olmayan sadece doğrusal bir sinirsel ağa eşdeğerdir. Örneğin, sinir ağını iki gizli katmanla ve aktivasyon olmadan şekilde ele alalım resim açıklamasını buraya girin

y = h2 * W3 + b3 
  = (h1 * W2 + b2) * W3 + b3
  = h1 * W2 * W3 + b2 * W3 + b3 
  = (x * W1 + b1) * W2 * W3 + b2 * W3 + b3 
  = x * W1 * W2 * W3 + b1 * W2 * W3 + b2 * W3 + b3 
  = x * W' + b'

Son adımı yapabiliriz çünkü birkaç doğrusal dönüşümün kombinasyonu bir dönüşümle değiştirilebilir ve birkaç önyargı terimi kombinasyonu sadece tek bir önyargıdır. Biraz doğrusal aktivasyon eklesek bile sonuç aynıdır.

Böylece bu sinir ağını tek katmanlı sinir ağı ile değiştirebiliriz n. Bu, katman eklemenin, doğrusal bir sinir ağının yaklaşık gücünü arttırmadığını gösterir. Doğrusal olmayan fonksiyonlara yaklaşmak için doğrusal olmayan aktivasyon fonksiyonlarına ihtiyacımız vardır ve gerçek dünyadaki sorunların çoğu oldukça karmaşık ve doğrusal değildir. Aslında aktivasyon fonksiyonu doğrusal olmadığında, yeterince fazla sayıda gizli üniteye sahip iki katmanlı bir sinir ağının evrensel bir fonksiyon tahmincisi olduğu kanıtlanabilir.


5

"Bu makalede Stone-Weierstrass Teoremi ve Gallant ve White'ın kosinüs gıcırtısı, ani ezme işlevlerini kullanan standart çok katmanlı ileri beslemeli ağ mimarilerinin, yeterince gizli bir şekilde sağlanmış olmak üzere, istenen herhangi bir doğruluk derecesine neredeyse hemen hemen herhangi bir işleve yaklaşık olarak yaklaşabileceğini belirlemek için kullanılıyor birimleri kullanılabilir. " ( Hornik ve diğerleri, 1989, Neural Networks )

Bir ezme fonksiyonu, örneğin sigmoid aktivasyon fonksiyonu gibi [0,1] ile eşleşen doğrusal olmayan bir aktivasyon fonksiyonudur.


3

Tamamen doğrusal bir ağın faydalı sonuçlar verebileceği zamanlar vardır. Şekillerle üç katmandan oluşan bir ağımız olduğunu varsayalım (3,2,3). Orta katmanı sadece iki boyuta sınırlandırarak, orijinal üç boyutlu uzayda "en uygun düzlem" olan bir sonuç elde ederiz.

Ancak bu formun NMF, PCA vb. Gibi lineer dönüşümlerini bulmanın daha kolay yolları vardır. Ancak, bu çok katmanlı bir ağın tek katmanlı algılayıcı ile aynı şekilde davranmadığı bir durumdur.


2

Doğrusal olmayan aktivasyon fonksiyonlarının arkasındaki mantığı anlamak için öncelikle aktivasyon fonksiyonlarının neden kullanıldığını anlamalısınız. Genel olarak, gerçek dünya sorunları önemsiz olmayan doğrusal olmayan çözümler gerektirir. Bu nedenle, doğrusal olmama durumu oluşturmak için bazı fonksiyonlara ihtiyacımız var. Temel olarak bir aktivasyon fonksiyonunun yaptığı, giriş değerlerini istenen bir aralığa eşlerken bu doğrusal olmama durumunu oluşturmaktır.

Bununla birlikte, doğrusal aktivasyon fonksiyonları, doğrusal regresyon gibi gizli katmanlara ihtiyaç duymadığınız çok sınırlı durumlarda kullanılabilir. Genellikle, bu tür problemler için bir sinir ağı oluşturmak anlamsızdır, çünkü gizli katmanların sayısından bağımsız olarak, bu ağ sadece bir adımda yapılabilen doğrusal bir girdi kombinasyonu üretecektir. Başka bir deyişle, tek bir katman gibi davranır.

Aktivasyon fonksiyonları için sürekli farklılaşma gibi birkaç tane daha arzu edilen özellikler de vardır . Backpropagation kullandığımız için ürettiğimiz fonksiyon her noktada farklılaştırılabilir olmalıdır. Konuyu daha iyi anlayabilmek için wikipedia sayfasını buradan aktivasyon fonksiyonları için kontrol etmenizi şiddetle tavsiye ederim .


2

Birkaç iyi yanıt burada. Christopher M. Bishop'un "Örüntü Tanıma ve Makine Öğrenmesi" kitabına dikkat çekmek iyi olacaktır. ML ile ilgili çeşitli kavramlar hakkında daha derin bir kavrayışa değinmeye değer bir kitap. 229. sayfadan alıntı (bölüm 5.1):

Bir ağdaki tüm gizli birimlerin etkinleştirme işlevleri doğrusal olarak alınırsa, bu tür bir ağ için her zaman gizli birimler olmadan eşdeğer bir ağ bulabiliriz. Bu, ardışık doğrusal dönüşümlerin bileşiminin kendisinin doğrusal bir dönüşüm olduğu gerçeğinden kaynaklanır. Bununla birlikte, gizli birimlerin sayısı giriş veya çıkış birimleri sayısından daha azsa, ağın oluşturabileceği dönüşümler girişlerdeki çıkışlara mümkün olan en genel doğrusal dönüşüm değildir, çünkü gizli birimler. Bölüm 12.4.2'de lineer birimler ağlarının temel bileşen analizine yol açtığını gösteriyoruz. Bununla birlikte, genel olarak, çok katmanlı doğrusal birimlerin ağlarına çok az ilgi duyulmaktadır.


1

Hatırladığım gibi - sigmoid fonksiyonlar kullanılır, çünkü BP algoritmasına uyan türevlerinin hesaplanması kolaydır, f (x) (1-f (x)) gibi basit bir şey. Matematiği tam olarak hatırlamıyorum. Aslında türevlerle herhangi bir fonksiyon kullanılabilir.


7
Hatırladığım gibi fonksiyon hala monoton olarak artmak istiyor. Yani, herhangi bir işlev değil .
Novak

1

Doğrusal olarak ayrılmaz problemleri öğrenmek için birkaç nöronun katmanlı bir NN'si kullanılabilir. Örneğin, XOR fonksiyonu, adım aktivasyon fonksiyonuna sahip iki katman ile elde edilebilir.


0

Size mümkün olduğunca basit bir şekilde açıklayayım:

Yapay Sinir Ağları örüntü tanımada doğru kullanılır mı? Örüntü bulma çok doğrusal olmayan bir tekniktir.

Tartışma uğruna her bir nöron için y = wX + b doğrusal bir aktivasyon fonksiyonu kullandığımızı ve y> 0 -> sınıf 1 başka sınıf 0 gibi bir şey ayarladığımızı varsayalım.

Şimdi, kare hata kaybını kullanarak kaybımızı hesaplayabilir ve modelin iyi öğrenmesi için geri yayabiliriz, doğru mu?

YANLIŞ.

  • Son gizli katman için güncellenen değer w {l} = w {l} - (alfa) * X olacaktır.

  • Son gizli ikinci katman için, güncellenen değer w {l-1} = w {l-1} - (alfa) * w {l} * X olacaktır.

  • Son gizli katman için güncellenen değer w {i} = w {i} - (alfa) * w {l} ... * w {i + 1} * X olacaktır.

Bu, tüm ağırlık matrislerini bir araya getirerek olasılıklarla sonuçlanır: A) w {i} kaybolan gradyan nedeniyle zar zor değişiklikler B) w {i}, gradyan gradyan C sayesinde w {i} önemli ölçüde ve yanlış değişir) w {i} iyi değişir bize iyi bir uyum puanı verecek kadar

C olması durumunda, bu bizim sınıflandırma / tahmin problemimizin büyük olasılıkla basit bir doğrusal / lojistik regresör tabanlı olduğu ve hiçbir zaman bir sinir ağına ihtiyaç duymadığı anlamına gelir!

NN'niz ne kadar sağlam veya iyi ayarlanmış olursa olsun, doğrusal bir etkinleştirme işlevi kullanırsanız, asla doğrusal tanıma gerektiren desen tanıma sorunlarıyla başa çıkamazsınız.


-3

Hiç bir gereklilik değil. Aslında, düzeltilmiş doğrusal aktivasyon fonksiyonu büyük sinir ağlarında çok yararlıdır. Degradeyi hesaplamak çok daha hızlıdır ve 0'a bir minimum sınır ayarlayarak spariteyi indükler.

Daha fazla ayrıntı için aşağıdakilere bakın: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Düzenle:

Doğrultulmuş doğrusal aktivasyon fonksiyonunun doğrusal fonksiyon olarak adlandırılıp adlandırılamayacağı konusunda bazı tartışmalar olmuştur.

Evet, teknik olarak doğrusal olmayan bir işlevdir, çünkü x = 0 noktasında doğrusal değildir, ancak diğer tüm noktalarda doğrusal olduğunu söylemek hala doğrudur, bu yüzden burada nitpick için yararlı olduğunu düşünmüyorum,

Kimlik işlevini seçebilirdim ve yine de doğru olurdu, ancak son popülerliğinden dolayı ReLU'yu örnek olarak seçtim.


8
Rektifiye edilmiş doğrusal aktivasyon fonksiyonu da (ismine rağmen) doğrusal değildir. Pozitif değerler için sadece doğrusal
Plankalkül

4
Teknik olarak haklısınız, alanın tamamında doğrusal değil, özellikle x = 0'da (aslında x <0 için doğrusaldır, çünkü f (x) = 0 doğrusal bir işlevdir). Ayrıca farklılaştırılamaz, bu nedenle degrade işlevi de tamamen hesaplanamaz, ancak pratikte bu tekniklerin üstesinden gelmek kolaydır.
eski

4
Sadece teknik olarak doğru değil, aynı zamanda pratikte de haklı (veya bunun gibi bir şey). Bunları yararlı kılan ReLU'nun doğrusal olmayışıdır. Doğrusal olsaydı, formda bir etkinleştirme işlevi olurdu f(x) = a*x(çünkü tek tür doğrusal etkinleştirme işlevi budur), etkinleştirme işlevi olarak işe yaramaz (doğrusal olmayan etkinleştirme işlevleriyle birleştirmediğiniz sürece) ).
Hellogoodbye

10
Doğrultulmuş Doğrusal Ünite (ReLU) doğrusal değildir ve insanların nitpick olması sadece "küçük bir ayrıntı" değildir, bununla başlamak için neden yararlı olmasının önemli bir önemli sebebidir. Kimlik matrisi olan bir nöral ağ veya aktivasyon fonksiyonu olarak kullanılan düzenli bir doğrusal birim doğrusal olmayan fonksiyonları modelleyemez. Sadece 0'ın üzerinde doğrusal olması, neredeyse doğrusal bir işlev olduğu anlamına gelmez. Sızdıran bir ReLU da 0'ın altında "doğrusal" dır, ancak yine de doğrusal bir işlev değildir ve kesinlikle kimlik işleviyle değiştirilemez. Doğrusalsızlık kesinlikle bir gerekliliktir.
Essam Al-Mansouri

3
Aslında parça parça doğrusal fonksiyon denilen bir kavram.
eski
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.