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

2021-08-14 09:44:30 字數 2234 閱讀 2734

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

p(i)=ex

p(θt

ix)∑

kk=1

exp(

θtkx

)

其中 θi

和x是列向量, θ

tix 可能被換成函式關於x的函式 f

i(x)

。 通過softmax函式,可以使得p(

i)的範圍在[0,1]之間。在回歸和分類問題中,通常

θ 是待求引數,通過尋找使得p(

i)最大的θi

作為最佳引數。

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

p(i)=11

+exp

(−θt

ix)

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

雖然softmax函式得到的是乙個[0,1]之間的值,且∑k

k=1p

(i)=

1 ,但是這個softmax求出的概率是否就是真正的概率?換句話說,這個概率是否嚴格等於期望呢?為此在這裡進行推導。

假設現在有k個類,樣本屬於類別i的概率為ϕ(

i),i

=1,…

,k,由於∑k

i=1ϕ

(i)=

1 ,所以只需要前k-1個引數即可: 

ϕi=p(y=

i,ϕ)

,i=1

,…,k

−1.ϕ(

k)=1

−∑i=

1k−1

ϕi引入乙個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∑i

keβi

=∑ik

ϕi=1

所以 ϕk

=1∑k

i=1e

βi將 ϕk

=ϕiβ

i 代入,有 ϕ

i=eβ

i∑ki

=1eβ

i

由於分母中是求和操作,可以將i換成k,得 ϕ

i=eβ

i∑kk

=1eβ

k

所以實際的期望是具有softmax函式的形式的,當fi

(x)=

βi=l

ogϕi

ϕk時實際期望與softmax函式嚴格相等,所求概率為真實值。

在回歸和分類問題中,我們假設βi

與樣本x正相關,即βi

=θti

x 。由於是估計值,並不是嚴格意義上的期望,所以用p(

i)代替ϕi

。代入上式可得 

p(i)=ex

p(θt

ix)∑

kk=1

exp(

θtkx

)

此外softmax函式同樣可用於非線性估計,此時引數

θ 可根據現實意義使用其他列向量替代。在詞向量的計算中1,計算基於skip-gram的當前詞wi

下輸出詞wo

出現的概率為:

p(wo|wi

)=ex

p(vw

o′tv

w)∑w

w=1e

xp(v

′twv

w)vwo′

為根據當前詞向量vw

估計出的上下文詞向量。使用softmax函式求得的概率最大值為實際上與當前詞向量在維度空間上最接近的詞。

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

softmax是一種形如下式的函式 p i exp tix kk 1ex p t kx 其中 i 和x是列向量,t ix可能被換成函式關於x的函式fi x 通過softmax函式,可以使得p i 的範圍在 0,1 之間。在回歸和分類問題中,通常 是待求引數,通過尋找使得p i 最大的 i 作為最佳引...

memset 函式及其作用

void memset void s,int ch,size t n 函式解釋 將s中前n個位元組替換為ch並返回s memset 作用是在一段記憶體塊中填充某個給定的值,它是對較大的結構體或陣列進行清零操作的一種最快方法。函式作用 1,memset 函式常用於記憶體空間初始化。2,memset 的...

C 虛函式及其作用

虛函式的作用 虛函式的作用主要是為了能夠實現多型而設計的。可以讓成員函式操作一般化,用基類的指標指向不同的派生類的物件時,基類指標呼叫其虛成員函式,則會呼叫其真正指向物件的成員函式,而不是基類中定義的成員函式 只要派生類改寫了該成員函式 若不是虛函式,則不管基類指標指向的哪個派生類物件,呼叫時都 會...