SVM只選自己喜歡的男神,Softmax把所有備胎全部拉出來評分,最后還歸一化一下
1.引入---為何種問題存在
2.Softmax回歸的預設函數、代價函數
2.1Softmax函數
2.2Softmax回歸的預設函數
2.3Softmax回歸的代價函數
3.梯度下降法求解最優值
4.softmax regression模型參數的特點(參數冗余)
5.Softmax回歸與Logistic 回歸的關系
1.引入---為何種問題存在
線性回歸解決的連續值的預測,邏輯回歸解決的是離散值的預測,而且針對二分類問題。那么問題來了,如果是離散值預測,但是是多類別預測,也就是有多個類別標簽,這種情況怎么辦呢?Softmax回歸針對的就是這種問題。
2.Softmax回歸的預設函數、代價函數
2.1Softmax函數(wiki)
Softmax函數,或稱歸一化指數函數[1]:198,是邏輯函數的一種推廣。它能將一個含任意實數的K維向量 “壓縮”到另一個K維實向量
中,
使得每一個元素的范圍都在之間,並且所有元素的和為1。
這個函數的作用就是使得P(i)在負無窮到0的區間趨向於0,在0到正無窮的區間趨向於1。同樣,softmax函數加入了e的冪函數正是為了兩極化:正樣本的結果將趨近於1,而負樣本的結果趨近於0。這樣為多類別分類提供了方便(可以把P(i)看作是樣本屬於類別i的概率)
2.2Softmax回歸的預設函數
softmax regression主要用於解決多元分類問題,假設對於樣本,樣本有K個類別,即
。例如對於手寫體識別來說
。softmax回歸主要是估算對於輸入樣本
屬於每一類別的概率,所以softmax回歸的假設函數如下:
其中 是模型的參數,乘以
的目的是為了使概率在[0,1]之間且概率之和為1。因此,softmax回歸將樣本
標記為類別
的概率為:
2.3 Softmax回歸的代價函數
其中, 是示性函數,所謂示性函數即
,舉例來說就是:
。
其他博客有一種說法:
但感覺解釋並不合理,這種推理類似於倒推,由特殊情況推導一般情況。
我的推導過程,不知道對不對。
推導過程如下:(沒搞懂)
極大似然估計法:
假設當前輸入為x1,x2,⋯,xmx1,x2,⋯,xm,yiyi表示xixi的正確標簽類別,似然函數可定義為:
使得似然函數最大化:

等價於:

使得似然函數最大化的參數就是極大似然估計希望得到的參數,因此可以定義以下損失函數, 然后用梯度下降逼近最優解

3.梯度下降法求解最優值
1.法一:
這里面幾個容易踩得坑:1.對求偏導,這個 不要和 這里的 混淆了,還有就是除 項外其他項為0。2.紅色框起來的地方結果為1,因為僅有一種類別滿足條件是真,其他是0。
2.法二:如果上面的推導過程沒看明白,可以看看下面這種推導方法,之所以要拆成兩項,是因為分母中總含有 這一項,於是我們可以下列的方法拆成兩項:
好吧,不得不承認編輯公式是一件費時費力的事情。。。
4.softmax regression模型參數的特點(參數冗余)
Softmax 回歸有一個不尋常的特點:它有一個“冗余”的參數集。為了便於闡述這一特點,假設我們從參數向量 中減去了向量
這時,每一個
都變成了
。此時假設函數變成了以下的式子:
- 換句話說,從
中減去
完全不影響假設函數的預測結果!這表明前面的 softmax 回歸模型中存在冗余的參數。更正式一點來說, Softmax 模型被過度參數化了。對於任意一個用於擬合數據的假設函數,可以求出多組參數值,這些參數得到的是完全相同的假設函數
。
- 進一步而言,如果參數
是代價函數
的極小值點,那么
同樣也是它的極小值點,其中
可以為任意向量。
- 因此使
最小化的解不是唯一的。(有趣的是,由於
仍然是一個凸函數,因此梯度下降時不會遇到局部最優解的問題。但是 Hessian 矩陣是奇異的/不可逆的,這會直接導致采用牛頓法優化就遇到數值計算的問題)
- 注意,當
時,我們總是可以將
替換為
(即替換為全零向量),並且這種變換不會影響假設函數。因此我們可以去掉參數向量
(或其他
中的任意一個)而不影響假設函數的表達能力。
- 實際上,與其優化全部的
個參數
(其中
),我們可以令
,只優化剩余的
個參數,這樣算法依然能夠正常工作。
在實際應用中,為了使算法實現更簡單清楚,往往保留所有參數,而不任意地將某一參數設置為 0。但此時我們需要對代價函數做一個改動:加入權重衰減。權重衰減可以解決 softmax 回歸的參數冗余所帶來的數值問題。
5.Softmax回歸與Logistic 回歸的關系




前面說過softmax回歸的參數具有冗余性,從參數向量 中減去向量
,完全不影響結果。現在我們令
,並且兩個參數向量都減去
,則有: