梯度下降(Gradient Descent)小結 -2017.7.20


在求解算法的模型函數時,常用到梯度下降(Gradient Descent)和最小二乘法,下面討論梯度下降的線性模型(linear model)。

1.問題引入

    給定一組訓練集合(training set)yi,i = 1,2,...,m,引入學習算法參數(parameters of learning algorithm)θ1,θ2,.....,θn,構造假設函數(hypothesis function)h(x)如下:

   定義x0 = 1,則假設函數h(x)也可以記為以下形式:

   這里xi(i = 1,2,...,n)稱為輸入特征(input feature),n為特征數。

   對於訓練集合yi,要使假設函數h(x)擬合程度最好,就要使損失函數(loss function)J(θ)達到最小,J(θ)表達式如下:

2.問題推導

目標是使J(θ)達到最小,此時的θ值即為所求參數,首先來看梯度下降的幾何形式。

(1)梯度下降的幾何形式

上圖圈內點為初始設置的參考點,想象這是一座山的地形圖,你站在參考點上准備下山,要從哪里走,下山的速度最快?選擇一個方向,每次移動一小點步伐,直到移動到圖正下方的藍色區域,找到了局部最優解。顯然,對於此圖來說,設置的初始參考點不同,找到的局部最優解也不同。其實,真正的J(θ)大部分是如下圖的形狀,只有一個全局最優解:

(2)批量梯度下降(Batch Gradient Descent)法

方法是對θi進行多次迭代,迭代減去速率因子α(learning rate)乘以J(θ)對θi的偏導數。

下面推導過程取m = 1的特殊情況,即只有一個訓練樣本,並逐步推導至一般過程。

划線部分只有θixi與θi有關,得到的θi迭代表達式為:

推廣至m個訓練樣本,則迭代表達式為:

但批量梯度下降的每一次迭代都要遍歷所有訓練樣本,不適用於訓練樣本數量極多的情況,於是提出了隨機梯度下降(Stochastic Gradient Descent)法

(3)隨機梯度下降(Stochastic Gradient Descent)法

每次都只使用第j個樣本,速度比批量梯度下降快了很多。

(4)兩種梯度下降方法比較


下面是兩種梯度下降算法的迭代等高圖

批量梯度下降:

隨機梯度下降(紫色線所示):

 

隨機梯度下降的每次迭代,有可能變大或變小,但總體趨勢接近全局最優解,通常參數值會十分接近最小值。

 

3.注意事項

 (1)α的取值不宜太大或太小。

         if α is too small then will take very tiny steps and take long time to converge;

         if α is too large then the steepest descent may end up overshooting the minimum.

(2)由於向最優解收斂過程中偏導數會逐漸變小,收斂至最小值時偏導為0,則θi會逐漸變小,因此不需要改變α使其越來越小。

(3)α的取值需要不斷測試更改,直至達到效果最好的α。

(4)當梯度下降到一定數值后,每次迭代的變化很小,這時可以設定一個閾值,只要變化小於該閾值,就停止迭代,而得到的結果也近似於最優解。

 

 

 

圖片來源:百度

參考博客:http://www.cnblogs.com/ooon/p/4947688.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM