2018.2.18 基於梯度上升的最優化算法

梯度上升算法求最優參數的數學公式推導

今天在學習《機器學習實戰》這本書的時候,對於梯度上升算法求最Logistic迴歸的最優參數的那部分數學實現一直不明白,今天上午的時間,查閱了很多的資料,然後自己推導了一下數學公式。

首先,需要介紹的是Sigmoid函數,公式如下:

g(x)=11+ex
大致圖像如下:

這裏寫圖片描述

然後我們定義一組向量z=[θ1,θ2,θ3...θn] ,這一些參數就是最後要求的Logistic迴歸模型的最佳參數.

然後我們定義一個函數

hθ(x)=g(θTx)=11+eθTx

然後,我們根據sigmoid函數的特性,我們可以得到對於樣本的一個概率分佈

P(y=1|x:θ)=hθ(x)

P(y=0|x:θ)=1hθ(x)

綜合起來是

P(y|x:θ)=hθ(x))y((1hθ(x))1y

符號表示:

x 是樣本向量組,對應於機器學習實戰裏面是100*3的矩陣。

θTθ 向量的轉置


接下來是見證奇蹟的時刻,用已知的樣本結果,反推最有可能(最大概率)導致這樣結果的參數的值。沒錯,就是最大似然估計。考研這麼多天,第一次感覺數學一還是學的很有用的。

我們定義似然函數

L(θ)=P(Y|X;θ)=p(y(i)|x(i):θ)=(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

先取對數

l(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))

考研數學這個時候就可以去進行求導,算極值了。但是實際環境中,函數往往很複雜,就算求出了函數的導數,也很難精確計算出函數的極值。

此時我們就可以用迭代的方法來做,一點一點逼近極值。這個時候應該引入這一章的重點內容了–基礎梯度上升的最優化方法

沒錯,又是考研數學的內容,梯度(gradient)

我們的迭代公式爲

θ=θ+αL(θ)

爲什麼要使用梯度,因爲梯度是函數變化最快的方向,具體定義我也不記得了。

。。待續,太困了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章