Sinir ağlarındaki yanlılığın rolü nedir?


806

Gradyan iniş ve geri yayılma algoritmasının farkındayım. Ne anlamıyorum: ne zaman önyargı kullanmak önemlidir ve nasıl kullanıyorsunuz?

Örneğin, ANDişlevi eşlerken, 2 giriş ve 1 çıkış kullandığımda doğru ağırlıkları vermez, ancak 3 giriş (1'i bir yanlılıktır) kullandığımda doğru ağırlıkları verir.


17
Bu soruya göz atın: OP'nin önyargı terimi kullanmadığı gerçek bir sorun örneği için stackoverflow.com/questions/1697243/help-with-perceptron
Amro

6
Ve işte Python'da önyargının neden önemli olduğuna dair güzel bir örnek :) stackoverflow.com/questions/38248657/…
mineraller

3
işte backprop matematiği ile dolu, önyargı güncellemelerini de kapsayan harika bir makale: theclevermachine.wordpress.com/2014/09/06/…
Andy

Yanıtlar:


1360

Önyargıların neredeyse her zaman yardımcı olduğunu düşünüyorum. Aslında, bir sapma değeri, etkinleştirme işlevini sola veya sağa kaydırmanıza olanak tanır ; bu da başarılı öğrenme için kritik olabilir.

Basit bir örneğe bakmak yardımcı olabilir. Önyargısı olmayan bu 1 girişli, 1 çıkışlı ağı düşünün:

basit ağ

Ağın çıkışı, girişin (x) ağırlığın (w 0 ) ile çarpılması ve sonucun bir tür aktivasyon fonksiyonundan (örneğin sigmoid fonksiyonundan) geçirilmesiyle hesaplanır.

Bu ağın w 0'ın çeşitli değerleri için hesapladığı fonksiyon :

ağ çıkışı, farklı w0 ağırlıkları verildi

Ağırlığın w 0 değiştirilmesi esasen sigmoidin "dikliğini" değiştirir. Bu yararlıdır, ancak x 2 olduğunda ağın 0 çıkışı yapmasını isterseniz ne olur? Sadece sigmoid'in dikliğini değiştirmek gerçekten işe yaramaz - tüm eğriyi sağa kaydırmak istersiniz .

Önyargı tam olarak bunu yapmanıza izin verir. Bu ağa bir önyargı eklersek, şöyle:

önyargılı basit ağ

... sonra ağın çıkışı sig olur (w 0 * x + w 1 * 1.0). Ağın çıktısı, w 1'in çeşitli değerleri için nasıl görünüyor :

ağ çıkışı, farklı w1 ağırlıkları verildi

W 1 için -5 ağırlığa sahip olmak , eğriyi sağa kaydırır, bu da x 2 olduğunda 0 veren bir ağa sahip olmamızı sağlar.


6
@ user1621769: En basit yaklaşım, ağdaki tüm giriş olmayan düğümlere bağlanan tek bir önyargı düğümü olan bir ağdır.
Nate Kohl

65
@ user1621769: Bir sapmanın ana işlevi, her düğüme eğitilebilir sabit bir değer sağlamaktır (düğümün aldığı normal girişlere ek olarak). Bunu N düğümlerine bağlantıları olan tek bir önyargı düğümü ile veya her birinin tek bir bağlantısı olan N önyargı düğümleri ile gerçekleştirebilirsiniz; sonuç aynı olmalıdır.
Nate Kohl

4
@ user1621769: Ağırlıkları dikkate almıyor olabilirsiniz? Her bağlantının eğitilebilir bir ağırlığı vardır ve sapma düğümü sabit bir değere sahiptir.
Dimpl

4
@ user132458, eğer eğitim algoritması sapma kaydırmaya ihtiyacınız olmadığını anlarsa, sapma ağırlıkları muhtemelen 0'a yaklaşacaktır. Böylece sapma sinyalini ortadan kaldırır.
jorgenkg

8
@ Gabriel: Gizli nöron başına bir önyargı olmalıdır.

343

Sadece iki sentimi eklemek için.

Yanlılığın ne olduğunu anlamanın daha basit bir yolu: bir şekilde doğrusal bir fonksiyonun b sabitine benzer

y = balta + b

Tahminleri verilere daha iyi uyacak şekilde çizgiyi yukarı ve aşağı hareket ettirmenizi sağlar. Without b çizgisi daima kökenli (0, 0) geçer ve bir daha fakir bir uyum elde edilebilir.


5
hoş bir anoloji ama eğer önyargıyı 1 olarak ayarlarsak, şimdi her satır şimdi (0,0) yerine (0,1) geçecek şekilde neden uyum sağlıyor? y = 0 yerine bu neden yardımcı oluyor?
mavi gökyüzü

36
@ blue-sky Çünkü bir yanlılığı bir ağırlıkla çarparak, keyfi bir miktarda değiştirebilirsiniz.
16'da Carcigenicate

3
O çağırmak düzeltmek mi b bir "katsayı"? Bir "katsayı" bir değişkeni çarpmak için kullanılan bir sayı değil midir?
Ben

8
b "katsayı" değil, kesişimdir.
Espanta

22
b, $ x ^ 0 $ katsayısıdır. a $ x ^ 1 $ katsayısıdır

64

Bu konu benim kendi projemi geliştirmeme gerçekten yardımcı oldu. Burada, iki değişkenli bir regresyon probleminde önyargı birimleri olan ve olmayan basit bir 2 katmanlı ileri beslemeli sinir ağı sonucunu gösteren bazı çizimler verilmiştir. Ağırlıklar rastgele başlatılır ve standart ReLU aktivasyonu kullanılır. Önümdeki yanıtlar sonuçlandırıldığı gibi, önyargı olmadan ReLU ağı (0,0) 'dan sıfırdan sapamaz.

resim açıklamasını buraya girin

resim açıklamasını buraya girin


1
Eksen etiketleri ile çizilen fonksiyonu ekleyebilir misiniz?
Komal-SkyNET

46

Bir YSA eğitimi sırasında iki farklı parametre türü, ağırlıklar ve aktivasyon fonksiyonlarındaki değer ayarlanabilir. Bu pratik değildir ve parametrelerden sadece birinin ayarlanması daha kolay olacaktır. Bu problemle başa çıkmak için bir sapma nöronu icat edilmiştir. Önyargı nöronu bir katmanda bulunur, bir sonraki katmandaki tüm nöronlara bağlanır, ancak bir önceki katmandaki hiçbiri yoktur ve her zaman 1 yayar. Önyargı nöronu 1 yaydığından, önyargı nöronuna bağlı ağırlıklar doğrudan aktivasyon fonksiyonlarındaki t değeri gibi diğer ağırlıkların toplamı (denklem 2.1). 1

Pratik olmama nedeni, aynı anda ağırlığı ve değeri ayarlamanızdır, bu nedenle ağırlıktaki herhangi bir değişiklik, önceki bir veri örneği için yararlı olan değerdeki değişikliği nötralize edebilir ... katmanın davranışını denetlemenizi sağlar.

Ayrıca önyargı, benzer vakaları temsil etmek için tek bir sinir ağı kullanmanıza izin verir. Aşağıdaki sinir ağı tarafından temsil edilen AND boolean işlevini göz önünde bulundurun:

ANN
(kaynak: aihorizon.com )

  • w0 , b'ye karşılık gelir .
  • w1 , x1'e karşılık gelir .
  • w2 karşılık gelir x2 .

Birçok boole fonksiyonunu temsil etmek için tek bir algılayıcı kullanılabilir.

Örneğin, 1 (true) ve -1 (false) boole değerlerini varsayarsak, AND işlevini uygulamak için iki girişli bir algılayıcı kullanmanın bir yolu w0 = -3 ve w1 = w2 = ağırlıklarını ayarlamaktır. .5. Bu algılayıcı, eşik değeri w0 = -.3 olarak değiştirilerek OR işlevini temsil edecek şekilde yapılabilir. Aslında, VE ve OR, m-of-n fonksiyonlarının özel durumları olarak görülebilir: yani, algıya n girişlerinin en az m'sinin doğru olması gereken fonksiyonlar. OR işlevi m = 1'e, AND işlevi m = n'ye karşılık gelir. Herhangi bir m-of-n fonksiyonu, tüm giriş ağırlıkları aynı değere (örneğin 0.5) ayarlandıktan sonra w0 eşiğini uygun şekilde ayarlayarak bir algılayıcı kullanılarak kolayca temsil edilir.

Algılayıcılar, tüm ilkel boole işlevlerini AND, OR, NAND (1 AND) ve NOR (1 OR) temsil edebilir. Makine Öğrenimi - Tom Mitchell)

Eşik sapmadır ve w0 , sapma / eşik nöronu ile ilişkili ağırlıktır.


8
Bunu genel bir kural olarak düşünün: önyargı ekleyin! Sinir ağları bir dereceye kadar "öngörülemez" olduğundan, bir yanlılık nöronu eklerseniz, bir yanlılık kullanmadıysanız daha hızlı çözüm bulmanız daha olasıdır. Elbette bu matematiksel olarak kanıtlanmamıştır, ancak literatürde ve genel kullanımda gözlemlediğim şey budur.
Kiril

25

Önyargı bir NNterim değil , dikkate alınması gereken bir genel cebir terimidir.

Y = M*X + C (düz çizgi denklemi)

Şimdi eğer C(Bias) = 0öyleyse, çizgi her zaman başlangıç ​​noktasından geçecektir, yani (0,0)sadece bir parametreye bağlıdır, yani eğimdir M, bu yüzden oynamak için daha az şeyimiz var.

C, önyargı herhangi bir sayı alır ve grafiği kaydırma etkinliğine sahiptir ve dolayısıyla daha karmaşık durumları temsil edebilir.

Lojistik regresyonda, hedefin beklenen değeri, değerini birim aralıkla sınırlamak için bir bağlantı fonksiyonu ile dönüştürülür. Bu şekilde, model tahminleri gösterildiği gibi birincil sonuç olasılıkları olarak görülebilir: Wikipedia'da Sigmoid işlevi

Bu, NN haritasındaki nöronu açan ve kapatan son aktivasyon katmanıdır. Burada da önyargının oynayacağı bir rol var ve modeli haritalamamıza yardımcı olmak için eğriyi esnek bir şekilde kaydırıyor.


1
öyleyse sinir ağı kullanılmadığında hat her zaman başlangıç ​​noktasından geçtiğinde sinir ağı eğitimi / öğreniminde hangi problemler meydana gelir?
Daniyal Javaid

@DaniyalJavaid Bu bir olasılık değil sorun olabilir
Pradi KL

23

Sinir ağında önyargısız bir katman, bir giriş vektörünün bir matrisle çarpmasından başka bir şey değildir. (Çıkış vektörü, normalleştirme ve daha sonra çok katmanlı YSA'da kullanım için bir sigmoid fonksiyonundan geçirilebilir, ancak bu önemli değildir.)

Bu, doğrusal bir işlev kullandığınız anlamına gelir ve bu nedenle tüm sıfırların girdisi her zaman tüm sıfırların çıktısına eşlenir. Bu, bazı sistemler için makul bir çözüm olabilir, ancak genel olarak çok kısıtlayıcıdır.

Bir önyargı kullanarak, giriş alanınıza etkili bir şekilde başka bir boyut eklersiniz, bu da her zaman bir değer alır, böylece tüm sıfırların girdi vektöründen kaçınırsınız. Bununla herhangi bir genelliği kaybetmezsiniz, çünkü eğitimli ağırlık matrisinizin amaçsız olması gerekmez, bu yüzden daha önce mümkün olan tüm değerlerle eşleşebilir.

2d YSA:

AND veya OR (veya XOR) işlevlerini yeniden üretirken olduğu gibi iki boyutu bir boyuta eşleştiren bir YSA için, bir nöronal ağın aşağıdakileri yaptığını düşünebilirsiniz:

2d düzleminde, giriş vektörlerinin tüm konumlarını işaretleyin. Dolayısıyla, boole değerleri için (-1, -1), (1,1), (-1,1), (1, -1) işaretlemek istersiniz. YSA'nızın şimdi yaptığı, pozitif çıktıyı negatif çıktı değerlerinden ayırarak 2d düzleminde düz bir çizgi çizmektir.

Önyargı olmadan, bu düz çizginin sıfırdan geçmesi gerekirken, önyargıyla, herhangi bir yere koymakta özgürsünüz. Böylece, yanlılık olmadan AND işleviyle bir sorunla karşılaştığınızı göreceksiniz, çünkü hem (1, -1) hem de (-1,1) 'i negatif tarafa koyamazsınız . (Bu izin verilmez ilgili hat). Sorun ya da işlev için eşittir. Ancak bir önyargı ile çizgiyi çizmek kolaydır.

Bu durumda XOR işlevinin önyargıyla bile çözülemeyeceğini unutmayın.


4
Bir sigmoid transfer fonksiyonu kullanırsanız, doğrusal olmamanız gerekir. Bunun lineer bir fonksiyon olduğunu belirtmek, sigmoidin doğrusal olmama durumu birkaç sorunun çözümü için anahtar olduğu için yanlış ve bir şekilde tehlikelidir. Ayrıca, sigmoid (0) = 0.5 ve sigmoid (x) = 0. olan x yok
bayer

2
Evet, ancak doğrusal fonksiyonun nasıl göründüğüne bakılmaksızın, önyargısız 0 girişi için 0,5'dir. İşte mesele bu. Normalde sigmoid fonksiyonunuzu eğitmezsiniz, sadece onunla yaşarsınız. Doğrusallık sorunu sigmoid fonksiyonundan çok önce gerçekleşir.
Debilski

Demek istediğim, katman 0 için başladığından farklı bir çıktı öğrenemiyor. Bu doğru ve önemlidir. Ancak, "doğrusal işlev argümanı" benim görüşüme göre geçerli değildir. Bir yanlılıkla bile, işlev hala doğrusaldır. Doğrusallık özelliği burada yanıltıcıdır. (Evet, beceriksiz olabilirim.)
Bayer

Bir önyargı ile afin olduğunu söyleyebilirim . ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski

Evet, haklısın. Bana bu farkı gösterdiğin için teşekkürler. (Afin olmasına rağmen neden lineer regresyon diyoruz, btw, neden?)
bayer

20

YSA kullandığınızda, öğrenmek istediğiniz sistemlerin iç kısımlarını nadiren bilirsiniz. Bazı şeyler önyargısız olarak öğrenilemez. Örneğin, aşağıdaki verilere bir göz atın: (0, 1), (1, 1), (2, 1), temelde herhangi bir x ile 1'i eşleyen bir işlev.

Tek katmanlı bir ağınız (veya doğrusal bir eşlemeniz) varsa, bir çözüm bulamazsınız. Ancak, bir önyargınız varsa önemsiz!

İdeal bir ortamda, bir yanlılık tüm noktaları hedef noktaların ortalamasına eşleyebilir ve gizli nöronların bu noktadaki farklılıkları modellemesine izin verebilir.


18

Nöron AĞIRLIKLARININ tek başına değiştirilmesi, transfer fonksiyonunuzun şeklini / eğriliğini manipüle etmeye yarar , dengesini / sıfır geçiş noktasını değiştirmez.

Giriş eğilim nöronlar Eğer değiştirilmemiş şekil / eğrilik bırakırken, giriş ekseni boyunca (sol / sağ) yatay olarak transfer fonksiyonu eğrisini hareket ettirilmelerine izin verir. Bu, ağın varsayılanlardan farklı rastgele çıktılar üretmesini sağlar ve böylece giriş-çıkış eşlemesini özel ihtiyaçlarınıza göre özelleştirebilir / değiştirebilirsiniz.

Grafik açıklama için buraya bakın: http://www.heatonresearch.com/wiki/Bias


16

Sadece tüm bunlara çok eksik olan ve geri kalanının büyük olasılıkla bilmediği bir şey eklemek için.

Görüntülerle çalışıyorsanız, aslında hiç bir yanlılık kullanmamayı tercih edebilirsiniz. Teorik olarak, bu şekilde ağınız, resmin karanlık veya parlak ve canlı olması gibi veri büyüklüğünden daha bağımsız olacaktır. Ve net, verilerinizdeki göreliliği inceleyerek işini yapmayı öğrenecek. Birçok modern sinir ağı bunu kullanır.

Önyargıya sahip diğer veriler için kritik olabilir. Ne tür verilerle uğraştığınıza bağlıdır. Bilgileriniz büyüklükte değişmezse --- [1,0,0.1] girilmesi, [100,0,10] girilmesi ile aynı sonuca yol açıyorsa, önyargı olmadan daha iyi durumda olabilirsiniz.


muhtemelen normalleşmeyle daha iyi durumdasınızdır. Büyüklük değişmezliği oluşturmak için "önyargı eksikliği" kullanan modern bir ağ örneği nedir?
17'de

@AwokeKnowing, her zamanki ResNet'in "başlatma" nın bir parçası olduğu için kullandığına inanıyorum, ancak bunu kesinlikle bu amaç için yaptıklarından emin değilim, ya da belki de model boyutu / verimlilik ve ben Bu kavramın herhangi bir yerde yayınlandığından emin değilim. Ama bence teorik düzeyde tamamen anlaşılabilir. Ölçeklenmeyen bir önyargıya sahip değilseniz, değerleri ölçeklendirdiğinizde, tüm çıktılar buna göre ölçeklenir. Bu kavramın farkında olsun ya da olmasın, modern mimarilerin büyük bir kısmının en azından yapılarının büyük bir kısmında önyargıları yoktur.
Méhor Mé

16

Yüksek lisans tezimdeki birkaç denemede (örn. Sayfa 59), yanlılığın ilk katman (lar) için önemli olabileceğini buldum, ancak özellikle sonunda tamamen bağlı katmanlarda büyük bir rol oynadığı görülmüyor.

Bu, büyük ölçüde ağ mimarisine / veri kümesine bağlı olabilir.


Bu, doğrusal regresyon ile sistemleri "elle" modelleme sürecine tamamen benziyor. En basit model Y_bar = ortalama (Y) olacaktır. Daha sonra, çeşitli X terimleri ekleyerek, önemli bir bilgi kazancı olmadığında durdurarak karmaşıklık eklersiniz.
IRTFM

15

Önyargı, kilonuzun dönmesini istediğiniz açıya karar verir.

2 boyutlu grafikte, ağırlık ve yanlılık çıktıların karar sınırını bulmamıza yardımcı olur. AND fonksiyonu oluşturmamız gerektiğini varsayalım, giriş (p) -çıkış (t) çifti

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

resim açıklamasını buraya girin

Şimdi karar sınırı bulmalıyız, fikir sınırı şöyle olmalıdır:

resim açıklamasını buraya girin

Görmek? W, sınırımıza diktir. Bu yüzden W'nun sınır yönüne karar verdiğini söylüyoruz.

Ancak, ilk seferde doğru W'yi bulmak zordur. Çoğunlukla orijinal W değerini rastgele seçiyoruz. Dolayısıyla, ilk sınır şu olabilir: resim açıklamasını buraya girin

Şimdi sınır y ekseni için pareller.

Sınırı döndürmek istiyoruz, nasıl?

W. değiştirerek

Bu nedenle, öğrenme kuralı işlevini kullanıyoruz: W '= W + P: resim açıklamasını buraya girin

W '= W + P, W' = W + bP'ye eşdeğerken, b = 1'dir.

Bu nedenle, b (sapma) değerini değiştirerek, W 've W arasındaki açıya karar verebilirsiniz. Bu, "YSA'nın öğrenme kuralı" dır.

Sinir Ağı Tasarımını Martin T. Hagan / Howard B.'den okuyabilirsiniz . Demuth / Mark H. Beale, bölüm 4 "Perceptron Öğrenme Kuralı"


1
Faydalı Açıklama / İllüstrasyon
Javadba

10

Özellikle Nate'in yanıtı , zfy'nin yanıtı ve Pradi'nin yanıtı harika.

Daha basit terimlerle, önyargılar giderek daha fazla ağırlık varyasyonunun öğrenilmesini / depolanmasını sağlar ... ( yan not : bazen bir miktar eşik verilir). Her neyse, daha fazla varyasyon , önyargıların giriş alanının modelin öğrenilen / depolanan ağırlıklarına daha zengin gösterimini eklediği anlamına gelir . (Daha iyi ağırlıkların sinir ağının tahmin gücünü artırabileceği yerlerde)

Örneğin, öğrenme modellerinde, hipotez / tahmin, bazı girdiler, belki bazı sınıflandırma görevlerinde verilen y = 0 veya y = 1 ile istenir. Yani bazı x = (1,1) ve bazıları için bazı y = 0 bazı x = (0,1) için y = 1. (Hipotez / sonuç üzerindeki koşul, yukarıda bahsettiğim eşiktir. Örneklerimin X girişlerini, Nate'in bazı koleksiyon X'in tek değerli x girişleri yerine her bir x = bir çift veya 2 değerli-vektör olduğunu unutmayın).

Biz ise göz ardı önyargı, birçok girişi aynı ağırlıktaki bir çok ile temsil edilmektedir sona erebilir öğrenilen ağırlıkları yani ( çoğunlukla, başlangıca yakın olarak meydana (0,0). Model, daha sonra iyi ağırlıkların daha düşük miktarlar ile sınırlı olacaktır, yerine çok çok daha iyi ağırlıkların daha iyi önyargı ile öğrenebilirler. (kötü öğrenilen ağırlıklar yoksul tahminler veya nöral net tahmin gücünde azalmaya yol nerede)

Bu nedenle, modelin hem başlangıç ​​noktasına yakın hem de eşik / karar sınırı içinde mümkün olduğunca çok yerde öğrenmesi en uygunudur. Önyargı ile menşe yakın özgürlük dereceleri sağlayabilir, ancak menşein yakın bölgesi ile sınırlı değildir.


9

@Zfy üzerinde genişleyen açıklama ... Bir giriş, bir nöron, bir çıkış için denklem şöyle görünmelidir:

y = a * x + b * 1    and out = f(y)

burada x, giriş düğümündeki değer ve 1, bias düğümünün değeridir; y doğrudan çıktınız olabilir veya bir işleve, genellikle sigmoid bir işleve geçirilebilir. Ayrıca önyargının herhangi bir sabit olabileceğini unutmayın, ancak her şeyi daha basit hale getirmek için her zaman 1'i seçeriz (ve muhtemelen bu @zfy'ın göstermeden ve açıklamadan yapması çok yaygındır).

Ağınız, verilerinize uyum sağlamak için a ve b katsayılarını öğrenmeye çalışıyor. Böylece, öğeyi eklemenin neden b * 1daha fazla veriye daha iyi uymasını sağladığını görebilirsiniz: şimdi hem eğimi hem de kesmeyi değiştirebilirsiniz.

Birden fazla girişiniz varsa denkleminiz aşağıdaki gibi görünecektir:

y = a0 * x0 + a1 * x1 + ... + aN * 1

Denklemin hala bir nöron, bir çıkış ağı tarif ettiğini unutmayın; daha fazla nöronunuz varsa, katsayı matrisine bir boyut eklersiniz, girdileri tüm düğümlere çoğaltır ve her düğüm katkısını toplarsınız.

Vectorized formatında şöyle yazabilirsiniz:

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

yani bir dizideki katsayıları ve diğerine (girişler + sapma) koyarak iki vektörün nokta ürünü olarak istediğiniz çözümü elde edersiniz (şeklin doğru olması için X'i transpoze etmeniz gerekir, XT'ye bir 'X transposed' yazdım)

Sonuç olarak, çıktınızın aslında girdinizden bağımsız olan kısmını temsil eden bir giriş daha olduğu gibi önyargınızı da görebilirsiniz.


Andrew Ng'in sınıfından, eğitim sürecinin bir bölümünde önyargının dışında kaldığını hatırlıyorum. Cevabınızı "sadece başka bir girdi" olduğu sonucunu dikkate alarak açıklayabilir misiniz?
17'de

Andrew Ng'in sınıfından hatırlamıyorum, ancak bu birkaç yıl önceydi. Ayrıca, öğrenmeye çalıştığınız şeye bağlı olarak Önyargı açık veya kapalı olabilir. Görüntü işlemede ölçeklemeye izin vermek için kullanmadığını okudum. Benim için kullanırsanız, eğitimde de kullanırsınız. Etki, girdilerin tamamı veya bir kısmı boş veya neredeyse boş olduğunda katsayıları stabilize etmektir. Neden antrenman sırasında önyargıyı kullanmıyorsunuz ve daha sonra yeni girdiler için çıktıları tahmin etmek için NN kullanırken bunu kullanmıyorsunuz? Bu nasıl faydalı olabilir?
RobMcZag

Hayır, daha çok ileri geçişte kullanmak gibiydi, ancak backprop için degradeyi hesaplarken veya bunun gibi bir şey kullanmayın.
AwokeKnowing

Sanırım bu biraz bellek ve zamandan tasarruf etmenin bir yolu. Önyargı birimleri için katsayıları öğrenmeyi umursamaya karar verebilirsiniz. Önyargı bu katmana bir miktar girdi sağlayacağından ve çıktı ilk kattan ikinci kattaki katsayılar tarafından öğrenilebileceğinden, en az bir gizli katmanınız varsa bu iyi olabilir. Yakınsama hızının değişip değişmeyeceğinden emin değilim. Tek katmanlı örneğimde, çıktıya uygulandığı için önyargı katsayısını da öğrenmek zorundasınız.
RobMcZag

Birçok basit problemde, hedef veriler çıkarıldı ve ölçeklendi, bu yüzden önyargıya gerek yok. Ve geniş aralıklı değişkenlerde aşırı dışa dönük etki potansiyeli azaltıldı.
IRTFM

9

Bahsedilen cevaplar dışında .. Başka noktalar eklemek istiyorum.

Önyargı, bizim çapa gibi davranır. Bunun altına inmediğimiz bir çeşit temel almamızın bir yolu. Bir grafik açısından, y = mx + b gibi düşünün, bu fonksiyonun y kesmesi gibidir.

output = input ağırlık değerini katlar ve bir bias değeri ekler ve ardından bir aktivasyon fonksiyonu uygular.


8

Eğer varsa, basit bir şekilde düşünmek y = w1 * x nerede y çıktı ve w1 ağırlığı bir koşul hayal olduğu x = 0 , sonra y = w1 * x eşittir 0 , sahip Kilonuzu güncellemek istiyorsanız Hedefin hedef çıktınız olduğu yerde delw = target-y ile ne kadar değişiklik olduğunu hesaplamak için, bu durumda 'delw' değişmez, çünkü y 0 olarak hesaplanır. Yani, biraz ekstra değer ekleyebiliyorsanız, y = w1 * x + w0 * 1 ; burada sapma = 1 ve ağırlık, doğru bir sapma elde etmek için ayarlanabilir.

Çizgi açısından Eğim-kesme noktası lineer denklemlerin spesifik bir şeklidir.

y = mx + b

resmi kontrol et

görüntü

b burada (0,2)

Eğer bunu (0,3) 'e yükseltmek istiyorsanız, önyargınız olacak b değerini değiştirerek nasıl yapacaksınız?


7

Çalıştığım tüm ML kitapları için, W her zaman iki nöron arasındaki bağlantı endeksi olarak tanımlanır, bu da iki nöron arasındaki bağlantının daha yüksek olduğu anlamına gelir, sinyallerin ateşleme nöronundan hedef nörona veya Y = w'ye daha güçlü iletileceği anlamına gelir * Nöronların biyolojik karakterini korumak için bir sonuç olarak, 1> = W> = -1 tutmamız gerekir, ancak gerçek regresyonda, W | W | > = 1, Nöronların nasıl çalıştığı ile çelişiyor, sonuç olarak W = cos (teta) öneririm, 1> = | cos (teta) | ve Y = a * X = W * X + b ise a = b + W = b + cos (teta), b bir tamsayıdır


7

Sinir ağlarında:

  1. Her bir Nöronun bir yanlılığı vardır
  2. Yanlılığı eşik olarak görüntüleyebilirsiniz (genellikle eşiğin ters değerleri)
  3. Giriş katmanlarından ağırlıklı ağırlık + sapma nöronun aktivasyonuna karar verir
  4. Sapma, modelin esnekliğini artırır.

Önyargı yokluğunda, nöron sadece giriş katmanından ağırlıklı toplam dikkate alınarak etkinleştirilemez. Nöron etkinleştirilmezse, bu nörondan gelen bilgiler sinir ağının geri kalanından geçirilmez.

Yanlılığın değeri öğrenilebilir.

resim açıklamasını buraya girin

Etkili, yanlılık = - eşik. Önyargıyı, nöronun bir 1 çıkarması için ne kadar kolay olduğunu düşünebilirsiniz - gerçekten büyük bir önyargı ile, nöronun bir 1 çıkışı için çok kolaydır, ancak önyargı çok olumsuz ise, o zaman zordur.

özet olarak: yanlılık, etkinleştirme işlevinin tetikleyeceği değerin denetlenmesine yardımcı olur.

Daha fazla ayrıntı için bu videoyu izleyin

Birkaç faydalı bağlantı:

geeksforgeeks

towardsdatascience


1
Güzel yorum. Ancak önyargının nasıl öğrenilebilir (veya eğitilebilir?) Olduğu konusunda net değilim. Kayıp = ReLU (omega * x + a) olan basit bir durumda, omega ağırlığı zincir kuralı üzerinden eğitilebilir, ancak aeğim aher zaman sabit olduğunda önyargı nasıl eğitilebilir ?
Libin Wen

4

Eğilim terimi, y çıkış noktasının yaptığı gibi son çıkış matrisini ayarlamak için kullanılır. Örneğin, klasik denklemde, y = mx + c, c = 0 ise, çizgi daima 0'dan geçecektir. Önyargı terimini eklemek Sinir Ağı modelimize daha fazla esneklik ve daha iyi genelleme sağlar.


0

Genel olarak, makine öğreniminde bu temel formül Bias-Variance Tradeoff'a sahibiz çünkü NN'de Overfitting (verilerdeki küçük değişikliklerin model sonuçlarında büyük değişikliklere yol açtığı model genelleme sorunu) ve bu nedenle büyük bir varyansımız var. küçük önyargı çok yardımcı olabilir. Yanlılığın kare olduğu Önyargı-Varyans Tradeoff'un formülünü göz önünde bulundurursak , küçük yanlılık eklemek varyansı çok azaltabilir. Bu nedenle, büyük bir varyansınız ve aşırı takılma tehlikeniz olduğunda önyargı getirin.


3
Önyargı birimleri ve önyargı-varyans dengesi ayrı kavramlardır. Soru birincisi ile ilgili.
SigmaX

0

Önyargı daha iyi bir denklem elde etmeye yardımcı olur

Bir işlev gibi giriş ve çıkış düşünün y = ax + bböyle denklemi tutarsanız ve her noktanın doğruya küresel hatayı en aza indirmek için giriş (x) ve çıkış (y) arasındaki doğru çizgiyi koymak gerekir, y = ax, sahip olacak sadece uyarlama için bir parametre a, global hatayı en aza indiren en iyi bulsanız bile , istenen değerden biraz uzak olacaktır.

Önyargı, denklemi en iyi değerlere uyarlamak için daha esnek hale getirebilir

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.