邏輯回歸2(極大似然與梯度下降)

邏輯回歸2(極大似然與梯度下降)

來自專欄 全職媽媽愛學習

上篇文章簡單介紹了邏輯回歸的概念和它與概率的關係機器學習:邏輯回歸(邏輯回歸與概率),本文主要講利用極大似然估計求邏輯回歸的參數w的表達式,和利用梯度下降法實現w的迭代運算。


極大似然估計(Maximum likelihood)

極大似然的核心思想是如果現有樣本可以代表總體,那麼極大似然估計就是找到一組參數使得出現現有樣本的可能性最大。

通過上篇文章已經知道知道邏輯回歸表達式可以寫為對數幾率形式:

z=e^{w^{T}x}=log(frac{P}{1-P})

現在的情況要求我們,在已知結果的情況下,求係數w,所以可以把先驗概率 P(y)即,已知模型,求y分類的概率),寫為後驗概率估計 P(y^{(i)}|x^{(i)}) ,其中i為樣本數量,i∈[1,m])(即,在已知 y 的類型已知的情況下 x 符合模型的概率),統計學界的頻率學派認為每個事件的概率是一個客觀存在的常數值,這是我們進行接下來推導的背景,所以有 P(y)=P(y^{(i)}|x^{(i)})

根據這個結論改寫 z=e^{w^{T}x}=log(frac{P}{1-P}) 為:

e^{w^{T}x}=log(frac{P(y^{(i)}=1|x^{(i)})}{P(y^{(i)}=0|x^{(i)})})

所以有:

P(y^{(i)}=1|x^{(i)})=frac{e^{w^{T}x}}{1+e^{w^{T}x}} P(y^{(i)}=0|x^{(i)})=frac{1}{1+e^{w^{T}x}}

我們要求的就是所有樣本數據的後驗概率 P(y^{(i)}|x^{(i)}) 最大的情況下參數 w 的取值,假設,每個數據點都是獨立於其他數據點生成的,如果事件(即生成數據的過程)是獨立的,那麼觀察所有數據的總概率就是單獨觀察到每個數據點的概率的乘積(即邊緣概率的乘積)。

概率的連乘積的表達式如下式:

prod_{m}^{i=1}{P(y^{(i)}=1|x^{(i)})·P(y^{(i)}=0|x^{(i)})}

=prod_{m}^{i=1}{P(y^{(i)}=1|x^{(i)})^{(y^{(i)})}·P(y^{(i)}=0|x^{(i)})^{(1-y^{(i)})}}

可以看出當真實值 y^{(i)}=1 時,上式等於 P(y^{(i)}=1|x^{(i)}) ,當 y^{(i)}=0 時,上式等於 P(y^{(i)}=0|x^{(i)}) ,所有樣本邊緣概率的連乘積,通常被稱之為似然函數 L(w)

為簡潔書寫,令P(y^{(i)}=1|x^{(i)}) = h_{w}(x^{(i)})

似然函數寫為:

L(w)=prod_{m}^{i=1}{h_{w}(x^{(i)}))^{y^{(i)}}·(1-h_{w}(x^{(i)}))^{1-y^{(i)}}}


梯度下降法

最大似然估計的目標是求,似然函數 L(w) (即,所有樣本出現的總概率)最大時,對應的參數 w 的組合,而我們希望構造一個代價函數(Cost Function)來衡量我們在某組參數下預估的結果和實際結果的差距,當代價函數值最小的時候,相應的參數w就是我們希望的最優解,

即求 l(w)=?L(w) 的最小值。

梯度下降演算法是調整參數 w 的組合,使代價函數,取最小值,的最基本方法之一。

從直觀上理解就是,我們在碗狀結構的凸函數上,取一個初始值,然後挪動這個值,一步步靠近最低點,的過程,如下圖所示:

因此我們知道,運用梯度下降演算法求解,要求代價函數(Cost Function)是凸函數(為碗狀),因為凸函數具有良好的性質(對於凸函數來說局部最小值點即為全局最小值點),這個性質使我們,一般會將非凸函數,轉換為凸函數,進行求解。

而極大似然法得到的函數,為非凸函數,因此要對,最大似然函數,採用對數變換,轉換為,對數似然函數

log(l(w))=-sum_{i=1}^{m}{[y_{i} log h_{w}(x^{(i)})+(1?y_{i})log(1?h_{w}(x^{(i)})]}

又因為log(l(w))是,對所有樣本求得的對數似然函數,而代價函數希望可以描述一個樣本,所以需要對log(l(w))取平均值,我們定義邏輯回歸的代價函數為:

J(w)=?frac{1}{m}sum_{i=1}^{m}{[y_{i} log h_{w}(x^{(i)})+(1?y_{i})log(1?h_{w}(x^{(i)})]}

從代價函數的直觀表達上來看,當 y_{i}=1,h_{w}(x^{(i)})=1 時(預測類別和真實類別相同), J(w|x^{(i)})=0 ;當 y_{i}=1,h_{w}(x^{(i)})
ightarrow0 時(預測類別和真實類別相反), J(w|x^{(i)})
ightarrowinfty (注意對數函數前有個負號)。這意味著,當預測結果和真實結果越接近時,預測產生的代價越小,當預測結果和真實結果完全相反時,預測會產生很大的懲罰。該理論同樣適用於 y^{(i)}=0 的情況。代價函數(Cost Function)也被稱為,損失函數、目標函數。

在求解時,我們為了找到最小值點,將分為兩個步驟操作:

  1. 找到下降速度最快的方向(導函數/偏導方向);
  2. 朝這個方向邁進一小步,再重複步驟1、2,直至最低點。

針對步驟1,通過 J(w)w_{j} 的一階導數來找下降方向 g

g=frac{?J(w)}{?w} =sum_{i=1}^{m}{frac{y^{(i)}}{h_{w}(x^{(i)})}h_{w}(x^{(i)})(1?h_{w}(x^{(i)}))(?x^{(i)}_{j})+(1?y^{(i)})frac{1}{1?h_{w}(x^{(i)})}h_{w}(x^{(i)})(1?h_{w}(x^{(i)}))x^{(i)}_{j}} =sum_{i=1}^{m}{(y^{(i)}-h_{w}(x^{(i)}))x^{(i)}_{j} }

針對步驟2,以迭代的方式來實現,迭代方式為 w_{j}^{(k+1)}=w_{j}^{(k)}-αg ,α表示步長,k為迭代次數,則梯度下降法的迭代表達式為:

w_{j}=w_{j}+αsum_{i=1}^{m}{(y^{(i)}-h_{w}(x^{(i)}))x^{(i)}_{j} }

對單個樣本 y^{(i)} 來說,參數 w_{j} 的表達式為:

w_{j}=w_{j}+α(y^{(i)}-h_{w}(x^{(i)}))x^{(i)}_{j}


——完——

P.S.題圖想表達的是機器自己學習,但特別像學暈了乾脆一起子戳死自己,哈哈哈~~3


推薦閱讀:

數據可視化之我在人大單身四年的原因
一個運營數據分析的案例
「大數據」時代,什麼是數據分析做不了的?
分析泰坦尼克號遇難數據 - 張然
SQL學習三部曲

TAG:機器學習 | 邏輯回歸 | 數據分析 |