Softmax sınıflandırıcısında normalizasyonu yapmak için neden exp fonksiyonunu kullanmalısınız?


30

Neden standart normalleştirme yerine softmax kullanılır? Bu sorunun en üst cevabının yorum alanında, @Kilian Batzner da beni şaşırtan 2 soru sordu. Sayısal faydalar dışında kimse açıklama yapmıyor gibi görünüyor.

Çapraz Entropi Kaybı kullanma nedenlerini anlıyorum, ancak bunun softmax ile ilişkisi nedir? "Softmax işlevi tahminler ile gerçekler arasındaki çapraz entropiyi en aza indirmeye çalışıyor gibi görünebilir" dedin. Diyelim ki standart / lineer normalizasyon kullanırdım, fakat yine de Çapraz Entropi Kaybı kullanıyordum. Sonra da Çapraz Entropi'yi minimize etmeye çalışırdım. Peki softmax, sayısal faydalar dışında Çapraz Entropi ile nasıl bağlantılıdır?

Olasılık görüşüne gelince: log olasılıklarına bakmak için motivasyon nedir? Akıl yürütme "softmax'ta e ^ x kullanıyoruz, çünkü x'i log-probabilties olarak yorumluyoruz" gibi görünüyor. Söyleyebileceğimiz aynı mantıkla, softmax'ta e ^ e ^ e ^ x kullanıyoruz, çünkü x'i log-log-log-olasılıkları olarak yorumluyoruz (Tabii ki abartılı). Softmax'ın sayısal faydalarını anlıyorum, fakat bunu kullanmak için teorik motivasyon nedir?


Bu farklılaştırılabilir, negatif olmayan sonuçlara yol açar (örneğin, çapraz entropinin hesaplanabilmesi için gerekli olabilir) ve bir sınıflandırma ayarında uygun olan maksimum fonksiyon gibi davranır. Siteye Hoşgeldiniz!
Emre

@Emre Teşekkürler! Fakat "maksimum işlev gibi davranır" ne demek? Ayrıca, farklılaşabilen, monoton artan ve negatif olmayan sonuçlara yol açan başka bir işleve sahipsem, bunu formüldeki exp işlevinin yerine koymak için kullanabilir miyim?
Hans

Kullanarak normalleştirdiğinizde , en büyük argüman 1'e eşlenirken, geri kalanlar üstel fraksiyonun büyümesi nedeniyle sıfıra eşlenir. max
Emre

Yanıtlar:


37

Sayısal olmaktan öte bir şey. Softmax'a hızlı bir hatırlatma:

P(y=j|x)=exjk=1Kexk

Burada , K sınıflarının sayısına eşit uzunlukta bir giriş vektörüdür . Softmax işlevi 3 çok güzel özelliğe sahiptir: 1. verilerinizi normalleştirir (uygun bir olasılık dağılımı verir), 2. farklılaştırılır ve 3. bahsettiğiniz exp'i kullanır. Birkaç önemli nokta:xK

  1. Kayıp fonksiyonu doğrudan softmax ile ilişkili değildir. Standart normalleştirme kullanabilir ve yine de çapraz entropi kullanabilirsiniz.

  2. Bir "hardmax" işlevi (yani argmax) ayırt edilemez. Softmax, çıkış vektöründeki tüm elemanlara en azından minimum bir olasılık verir ve bu nedenle, softmax'ta "yumuşak" terimi oldukça farklılaştırılabilir.

  3. Şimdi sorunuza ulaşıyorum. Softmax içindeki , doğal üstel fonksiyondur. Normalleştirmeden önce , x'i e grafiğindeki gibi dönüştürürüz .ex :ex

natural exponential function

Eğer 0 ise o zaman y = 1 , eğer x 1 ise, o zaman y = 2.7 , ve x 2 ise, şimdi y =xy=1xy=2.7x ! Büyük bir adım! Normal olmayan günlük skorlarımızın doğrusal olmayan bir dönüşümü denir. SoftMax normalizasyon ile birlikte üstel fonksiyon ilginç özelliği olmasıyla yüksek puanlar xy=7x çok daha muhtemel düşük puanları daha olur.

Bir örnek . diyelim ve log puanınız x vektördür [ 2 , 4 , 2K=4x . Basit argmax işlevi çıktı verir:[2,4,2,1]

[0,1,0,0]

Argmax hedefi, ancak farklı değil ve modelimizi onunla birlikte geliştiremiyoruz :( Farklılaştırılabilen basit bir normalleştirme, aşağıdaki olasılıkları ortaya çıkarır:

[0.2222,0.4444,0.2222,0.1111]

Bu argmax'tan gerçekten uzak! :( SoftMax çıkışları ise:

[0.1025,0.7573,0.1025,0.0377]

Argmax'a çok daha yakın! Doğal üsteli kullandığımız için, en yüksek puanın olasılığını büyük ölçüde arttırır ve standart normalleştirme ile karşılaştırıldığında düşük puanların olasılığını azaltırız. Bu nedenle softmax'ta "max".


3
Harika bilgi Bununla birlikte, kullanmak yerine, esabit 3 veya 4 sayısının kullanılmasına ne dersiniz? Sonuç aynı olacak mı?
Cheok Yan Cheng

7
@CheokYanCheng, evet. Ama edaha güzel bir türevi var;)
vega

Softmax sonucunun tipik olarak her bir sınıfa ait olma olasılıkları olarak kullanıldığını gördüm. Diğer sabit yerine 'e' seçimi keyfi ise, onu olasılık açısından görmek mantıklı değil mi?
javierdvalle

@vega Üzgünüz, ama ben hala soruyu nasıl cevapladığını göremiyorum: neden aynı nedenlerle e ^ e ^ e ^ e ^ e ^ x kullanmıyorsunuz? Lütfen açıklayın
Gulzar

@jvalle değil eyapar bir olasılık olarak, bu SoftMax her çıktı elemanı 1 olarak [0,1] ve bütün toplamlar içinde sınırlanan bir gerçektir yorumlanabilir olduğu
vega

2

Vega'nın açıklamasına ek olarak,

genel softmax tanımlayalım:

P(y=j|x)=ψxjk=1Kψxk
neredeψ bir sabittir> = 1

eğer ψ=1 @vega bahsedildiği gibi, o zaman argmax gelen oldukça uzaktır.

Şimdi ψ=100 olduğunu varsayalım , şimdi argmax'a oldukça yakınsınız ancak negatif değerler için gerçekten küçük sayılar ve pozitifler için büyük sayılar da var. Bu sayılar taşması şamandıra noktası aritmetik sınırı kolayca (numpy float64 örneğin üst sınırı için 10308 ). Buna ek olarak, seçim ψ=e olsa 100 daha küçük olsa bile , çerçeveler daha kararlı bir softmax sürümü (hem pay hem de paydayı C ile çarparak ) uygulamalıdır çünkü sonuçlar ifade edebilmek için küçük hale gelir. Böyle bir hassasiyet.

Bu nedenle, argmax değerine iyi yaklaşacak kadar büyük bir sabit seçmek ve hesaplamalarda bu büyük ve küçük sayıları ifade etmek için yeterince küçük olmak istersiniz.

Ve elbette, e de oldukça hoş bir türevi var.


2

Bu soru çok ilginç. Tam nedeni bilmiyorum ama aşağıdaki nedenin üssel fonksiyon kullanımını açıklamak için kullanılabileceğini düşünüyorum. Bu yazı, istatistik mekaniğinden ve maksimum entropi ilkesinden ilham alıyor.

Nn1C1n2C2, ..., and nK images from the class CK. Then we assume that our neural network was able to apply a nonlinear transform on our images, such that we can assign an 'energy level' Ek to all the classes. We assume that this energy is on a nonlinear scale which allows us to linearly separate the images.

E¯Ek

NE¯=k=1KnkEk.()

At the same time, we see that the total amount of images can be calculated as the following sum

N=k=1Knk.()

The main idea of the maximum entropy principle is that the number of the images in the corresponding classes is distributed in such a way that that the number of possible combinations of for a given energy distribution is maximized. To put it more simply the system will not very likeli go into a state in which we only have class n1 it will also not go into a state in which we have the same number of images in each class. But why is this so? If all the images were in one class the system would have very low entropy. The second case would also be a very unnatural situation. It is more likely that we will have more images with moderate energy and fewer images with very high and very low energy.

The entropy increases with the number of combinations in which we can split the N images into the n1, n2, ..., nK image classes with corresponding energy. This number of combinations is given by the multinomial coefficient

(N!n1!,n2!,,nK!)=N!k=1Knk!.

We will try to maximize this number assuming that we have infinitely many images N. But his maximization has also equality constraints () and (). This type of optimization is called constrained optimization. We can solve this problem analytically by using the method of Lagrange multipliers. We introduce the Lagrange multipliers β and α for the equality constraints and we introduce the Lagrange Funktion L(n1,n2,,nk;α,β).

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

As we assumed N we can also assume nk and use the Stirling approximation for the factorial

lnn!=nlnnn+O(lnn).

Note that this approximation (the first two terms) is only asymptotic it does not mean that this approximation will converge to lnn! for n.

The partial derivative of the Lagrange function with respect nk~ will result in

Lnk~=lnnk~1α+βEk~.

If we set this partial derivative to zero we can find

nk~=exp(βEk~)exp(1+α).()

If we put this back into () we can obtain

exp(1+α)=1Nk=1Kexp(βEk).

If we put this back into () we get something that should remind us of the softmax function

nk~=exp(βEk~)1Nk=1Kexp(βEk).

If we define nk~/N as the probability of class Ck~ by pk~ we will obtain something that is really similar to the softmax function

pk~=exp(βEk~)k=1Kexp(βEk).

Hence, this shows us that the softmax function is the function that is maximizing the entropy in the distribution of images. From this point, it makes sense to use this as the distribution of images. If we set βEk~=wkTx we exactly get the definition of the softmax function for the kth output.

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.