1. 程式人生 > >機器學習演算法之一-logistic迴歸、softmax模型

機器學習演算法之一-logistic迴歸、softmax模型

開始一個新的系列,換一換口味
分析機器學習演算法的一般思路:
1、確定預測函式或者判別函式,一般表示為H函式;
2、確定Cost函式,表示的是預測輸出值與訓練資料之間的偏差;
3、確定優化演算法。

一、前言
logistic迴歸是常用的二分類模型,屬於判別模型。softmax模型是logistic迴歸的多分類拓展。最大熵模型是由最大熵理論推匯出來的,推導可以證明最大熵模型的極大似然估計與最大熵模型的學習問題等價。
二、logistic迴歸基本原理
logistic迴歸與線性迴歸的原理相似,不同的是前者是在後者的基礎上,將線性迴歸的結果通過sigmod函式對映到(0,1)區間,從而表徵了輸入資料屬於某一類別的概率的大小。

1、預測函式
輸入為(x,y),其中x=(x1,x2,...,xn),y{01}
權值w=(w1,w2,...,wn)
為了表示的方便,可以作如下擴充:
x=(x1,x2,...,xn,1);
w=(w1,w2,...,wn,b);
那麼根據前述可得其預測函式為:
P(Y=1|x)=z=11+ewx
P(Y=0|x)=11+ewx
上述二式分別表示在輸入為x的情況下,輸出為1或者0的概率。
對數機率:
一件事的機率為該件事情發生的概率與不發生的概率的比值。機率的log函式就是對數機率函式。

因為P

(Y=1|x)=z=11+ewx

log(P(Y=1|x)1P(Y=1|x))=wx

注: 下面將用θ表示w

2、損失函式
綜合其預測函式可得:
P(Y|X;w)=zy(1z)1y;
假設輸入都條件獨立,那麼其聯合概率分佈就是邊緣概率分佈的乘積,那麼就可以得到其對數似然函式:
L(θ)=N1[yilog(zi)+(1yi)log(1zi)]
從另一方面講,這裡的損失函式就是負log函式。

3、優化方法
這樣實際上將問題轉變為了對數似然函式為目標函式的最優化問題,採用梯度下降法。
J

(w)=1mL(w)
如果不做此更改就使用梯度上升法,只是符號不同而已。
梯度下降法就是求J(θ)的偏導為0時的w取值,求偏導還不簡單:
wj:=wjαwjJ(w)
wJ(w)=1mm1(ziyi)xij
雖然求偏導確實簡單,但是還是寫一下吧….
J(w)=1mN1[yilog(zi)+(1yi)log(1zi)]
J(w)w=1mN1[yilog(