Softmax 函数及其作用(含推导)
Softmax函數(shù)的定義及作用
Softmax是一種形如下式的函數(shù):
P(i)=exp(θTix)∑Kk=1exp(θTkx) 其中 θi和x是列向量, θTix可能被換成函數(shù)關(guān)于x的函數(shù) fi(x)。
通過softmax函數(shù),可以使得P(i)的范圍在[0,1]之間。在回歸和分類問題中,通常θ是待求參數(shù),通過尋找使得P(i)最大的θi作為最佳參數(shù)。
但是,使得范圍在[0,1]之間的方法有很多,為啥要在前面加上以e的冪函數(shù)的形式呢?參考logistic函數(shù):
P(i)=11+exp(?θTix)
這個函數(shù)的作用就是使得P(i)在負無窮到0的區(qū)間趨向于0,在0到正無窮的區(qū)間趨向于1。同樣,softmax函數(shù)加入了e的冪函數(shù)正是為了兩極化:正樣本的結(jié)果將趨近于1,而負樣本的結(jié)果趨近于0。這樣為多類別分類提供了方便(可以把P(i)看作是樣本屬于類別i的概率)。可以說,Softmax函數(shù)是logistic函數(shù)的一種泛化。
softmax的推導(dǎo)
雖然Softmax函數(shù)得到的是一個[0,1]之間的值,且∑Kk=1P(i)=1,但是這個softmax求出的概率是否就是真正的概率?換句話說,這個概率是否嚴(yán)格等于期望呢?為此在這里進行推導(dǎo)。
假設(shè)現(xiàn)在有K個類,樣本屬于類別i的概率為?(i),i=1,…,K,由于∑ki=1?(i)=1,所以只需要前K-1個參數(shù)即可:
引入一個k-1維列向量 T(y),y=1,…,K?1,樣本屬于第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,i≠K
令 βi=log?i?K,i=1,…,K,則有
eβi=?i?K??k=?iβi??K∑iKeβi=∑iK?i=1
所以 ?k=1∑Ki=1eβi
將 ?K=?iβi代入,有 ?i=eβi∑Ki=1eβi
由于分母中是求和操作,可以將i換成k,得 ?i=eβi∑Kk=1eβk
所以實際的期望是具有softmax函數(shù)的形式的,當(dāng)fi(x)=βi=log?i?K時實際期望與softmax函數(shù)嚴(yán)格相等,所求概率為真實值。
在回歸和分類問題中,我們假設(shè)βi與樣本x正相關(guān),即βi=θTix。由于是估計值,并不是嚴(yán)格意義上的期望,所以用P(i)代替?i。代入上式可得
此外Softmax函數(shù)同樣可用于非線性估計,此時參數(shù)θ可根據(jù)現(xiàn)實意義使用其他列向量替代。在詞矢量的計算中1,計算基于Skip-gram的當(dāng)前詞WI下輸出詞WO出現(xiàn)的概率為:
p(WO|WI)=exp(vwo′Tvw)∑Ww=1exp(v′Twvw)
vwo′為根據(jù)當(dāng)前詞矢量vw估計出的上下文詞矢量。使用softmax函數(shù)求得的概率最大值為實際上與當(dāng)前詞矢量在維度空間上最接近的詞。
總結(jié)
以上是生活随笔為你收集整理的Softmax 函数及其作用(含推导)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输入 vscode_【Python技术入
- 下一篇: Deep Learning学习 之 CN