所謂softmax regression 是在logistic regression基礎上的升級版。
logistics是二分類,,而softmax可以多分類,。
1 logistic regression
學習softmax regression之前 我們先回歸一下 logistic regression的相關知識。
(參見http://blog.csdn.net/bea_tree/article/details/50432411#t6)
logistic regression的函數是
他的名字雖然是回歸,,但是功能卻是分類,,原因是,原有數據回歸的曲線是logistic的曲線,,他們的值要么接近1 要么接近0,。
另外他們的目標函數是利用概率相乘得到的最大似然估計:
為了好計算一般取對數,L最大時就擬合好了,。
這里的利用梯度下降法得到的迭代公式與線性回歸的迭代公式是一樣的,,好巧。還有其他算法(perceptron learning algorithm)的迭代形式也是這樣,。
文中的代價函數是處理之后的,,直接求最小值就行了
2 softmax regression
上面可以看到logistic的公式主要的思想是用的概率,當y等于0時得到的是等于0的概率,,y=1時得到的是等于1的概率,。
softmax的思想是分別得到多分類的概率,其公式如下:
好好理解下上式:
可以看成這是k個式子組成的矩陣形式,。屬于一組x會得到k個類別的概率,。
既然我們對每個類別的概率已經做了假設
那么可以仿照最大似然的思想來得到下面的代價函數
如果輸入x對應的類別是j,那么對應的概率就是,。
將所有的m個x的概率相乘就是最大似然函數,,求log(乘積變相加)然后加負號之后求最小值就相當于求最大似然的最大值,。
上面的代價函數就是這個意思。
其梯度的迭代公式如下
3 softmax 的參數特性
知道了它的基本原理之后,,我們思考一個問題,,如果我們知道前k-1個分類的概率,那么第k個的概率還需要知道么,?顯然 是沒有必要的,,這可以理解為softmax參數冗余性overparameterized 的直接理解(博主的理解,慎信),。
文中的理解更加嚴密些:
將概率公式中的參數直接減去一個向量ψ得到概率公式依然沒有變
也就是說得到的最優(yōu)化結果直接減去這個向量之后的結果依然是滿足條件的最優(yōu)解,,換句話說,最優(yōu)解有無數個,。也就是hessian矩陣是奇異的(singular/non-invertible),,使用牛頓法就不好用了。
按照上面的理解我們可以將其中一類的參數全都設為0,,這樣就不會產生冗余了,,但是實際中我們并不這然做,而是加了規(guī)則相,,不過這里不叫做規(guī)則化而叫作Weight Decay,。
4 weight decay
加入懲罰項之后的樣子
由于后面一項一定會大于零,那么Hessian 矩陣就不會是不可逆了,,這樣就變成了嚴格的凸函數,,各類求解方法就可以用了。也可以直接的理解為,,所有的參數有兩個一個新的約束或者優(yōu)化方向,,因此最優(yōu)解只有一個。迭代公式如下:
5 softmax VS. Binary Classifiers
當有k種分類時我們是選擇softmax呢還是選擇k個二分類呢,?
答案是如果這k中分類時相互排斥的我們就選擇softmax,,但是如果是相互有疊加的部分就不行了,比如在 男人,,女人,,小孩,小女孩 這樣的分類就沒法用softmax了
|