本節是上一節的延續,主要介紹一下損失函數的概率解釋,以及梯度下降和牛頓法兩種可以用於極值求解的優化演算法。

1. 損失函數的概率解釋

對於線性回歸模型,為什麼最小化損失函數J是一種合理的選擇?

假設目標變數和輸入的關係如下:

其中,varepsilon ^{(i)} 代表偏差,可能是一些模型未覆蓋的因素導致的偏差或者隨機雜訊,並且進一步假設它們服從高斯分佈且獨立同分布,varepsilon ^{(i)} sim N(0,sigma ^2)

即:

p(y^{(i)} |x^{(i)}; w)表示給定x^{(i)}情況下y ^{(i)} 的條件分佈。注意w是參數,並非隨機變數,因此不能表示成p(y^{(i)} |x^{(i)}, w)

給定X(design matrix,包含所有的x^{(i)})和參數w,採用極大似然法來求取Y的分佈:

因此,最大化l(w)即為最小化frac{1}{2}  sum_{i=1}^{m}(y^{(i)}  - w^T x^{(i)})^2 ,即最小二乘法的損失函數。需要注意的是,sigma ^2的大小對最終參數w的選擇沒有影響。

2. 梯度下降法(Gradient descent)

梯度下降法是一種求取函數的局部極小值的迭代演算法, 每一步沿當前點的負梯度的方向按一定比例下降。

按照導數的定義:

由公式可見,x_{0} 處的導數反映了函數在該點的瞬時變化速率,或者叫做在x_{0} 處的斜率。推廣到多維函數中,就有了梯度的概念,梯度是一個向量組合,反映了多維圖形中變化速率最快的方向。

也就是說,多元可微函數f(x),在x_{n} 處下降最快的方向即為-f(x_n)。當gamma 在足夠小時,對於x_{(n+1)}= x_{n} - gamma f(x_n)可以保證f{(x_n)}geq f(x_{(n+1)}) 。根據這個結論,為求得函數的局部最小值,我們從初始位置x_0開始,進行減去?F(x_n)的迭代操作得到x_{0} x_{1} x_{2} ,……,可以得到f(x_{0} )geq f(x_{1} )geq f(x_{2} )geq  cdot cdot cdot geq f(x_{n} ),因此F(x_{n} )將有可能收斂至預期的局部最小值。其中,每次迭代時的步長gamma 並不一定要固定不變。

如果F是凸函數,局部最小值即為其全局最小值。

回到本篇開頭,我們試圖最小化J(w),採用梯度下降法:

即:

上述方法稱為批梯度下降(Batch Gradient Descent),在迭代過程中,每次更新ω時均要遍歷整個數據集,如果樣本數量m很大時收斂過程可能非常慢。

隨機梯度下降演算法(Stochastic Gradient Descent),每次只採用一個樣本(或一部分樣本)來更新ω,需要注意外層循環Loop,因為只遍歷一次樣本,不見得會收斂。

Loop {

for i=1 to m {

(for every j)

}

}

3. 牛頓法

牛頓法就是求解函數零值位置的一種優化演算法。

對於定義在實數域的函數f(x),其導數為f(x),選取初始點x_{0} ,求出該點的導數(即切線的斜率),延長使其與x軸相交,以相交點的x值作為下次迭代的值,因此,迭代的更新規則為:

至於求解函數極值的過程中,我們經常轉化為求解其導數為零的問題。比如極大似然法時,求解似然函數iota (omega )的極大值:

f(omega ω)=l(omega ω) =0,採用牛頓法,更新規則為:


推薦閱讀:
相關文章