1. 程式人生 > >Softmax 函式及其作用(含推導)

Softmax 函式及其作用(含推導)

Softmax函式的定義及作用

Softmax是一種形如下式的函式:

P(i)=exp(θTix)Kk=1exp(θTkx) 其中θi和x是列向量,θTix可能被換成函式關於x的函式fi(x)

通過softmax函式,可以使得P(i)的範圍在[0,1]之間。在迴歸和分類問題中,通常θ是待求引數,通過尋找使得P(i)最大的θi作為最佳引數。

但是,使得範圍在[0,1]之間的方法有很多,為啥要在前面加上以e的冪函式的形式呢?參考logistic函式:

P(i)=11+exp(θTix)

這個函式的作用就是使得P(i)在負無窮到0的區間趨向於0,在0到正無窮的區間趨向於1。同樣,softmax函式加入了e的冪函式正是為了兩極化:正樣本的結果將趨近於1,而負樣本的結果趨近於0。這樣為多類別分類提供了方便(可以把P(i)看作是樣本屬於類別i的概率)。可以說,Softmax函式是logistic函式的一種泛化。

softmax的推導

雖然Softmax函式得到的是一個[0,1]之間的值,且Kk=1P(i)=1,但是這個softmax求出的概率是否就是真正的概率?換句話說,這個概率是否嚴格等於期望呢?為此在這裡進行推導。

假設現在有K個類,樣本屬於類別i的概率為ϕ(i),i=1,,K,由於ki=1ϕ(i)=1,所以只需要前K-1個引數即可:

ϕi=P(y=i,ϕ),i=1,,K1.ϕ(k)=1i=1K1ϕi
引入一個k-1維列向量T(y),y=1,,K1,樣本屬於第i類則第i行元素為1,其餘為0,即:(T(i))i=1
因為y只能屬於1類,故(y不等於k時)T(y)只有一個元素為1,其餘元素都為0,則y的期望為:
E
(T(y))i=P(y=i)=ϕi,iK

βi=logϕiϕK,i=1,,K,則有
eβi=ϕiϕKϕk=ϕiβiϕKiKeβi=iKϕi=1
所以ϕk=1Ki=1eβi
ϕK=ϕiβi代入,有ϕi=eβiKi=1eβi
由於分母中是求和操作,可以將i換成k,得ϕ