機器學習的本質是建立優化模型,通過優化方法,不斷迭代參數向量,找到使目標函數最優的參數向量。最終建立模型
通常用到的優化方法:梯度下降方法、牛頓法、擬牛頓法等。這些優化方法的本質就是在更新參數。
一、梯度下降法
0、梯度下降的思想
· 通過搜索方向和步長來對參數進行更新。其中搜索方向是目標函數在當前位置的負梯度方向。因為這個方向是最快的下降方向。步長確定了沿着這個搜索方向下降的大小。
迭代的過程就像是在不斷的下坡,最終到達坡地。
接下來的目標函數以線性回歸的目標函數為例:
![]()

1、批量梯度下降法


參數更新是要用到全部樣本。如上式中的m
2、隨機梯度下降法


參數的更新只用到某一個樣本。而不是全部的樣本。批量梯度下降公式中的m變為了1
3.隨機梯度下降和梯度下降的比較
批量梯度下降:1.是最小化所有樣本的損失函數,最終得到全局最優解。
2.由於每次更新參數需要重新訓練一次全部的樣本,代價比較大,適用於小規模樣本訓練的情況。
隨機梯度下降:1.是最優化每個樣本的損失函數。每一次迭代得到的損失函數不是,每次每次向着全局最優的方向,但是大體是向着全局最優,最終的結果往往是在最優解的附近。
2.當目標函數是凸函數的時候,結果一定是全局最優解。
3.適合大規模樣本訓練的情況。
3、小批量梯度下降法
將上述兩種方法作結合。每次利用一小部分數據更新迭代參數。即樣本在1和m之間。
二、牛頓法
首先牛頓法是求解函數值為0時的自變量取值的方法。
利用牛頓法求解目標函數的最小值其實是轉化成求使目標函數的一階導為0的參數值。這一轉換的理論依據是,函數的極值點處的一階導數為0.
其迭代過程是在當前位置x0求該函數的切線,該切線和x軸的交點x1,作為新的x0,重復這個過程,直到交點和函數的零點重合。此時的參數值就是使得目標函數取得極值的參數值。
其迭代過程如下:

迭代的公式如下:

當θ是向量時,牛頓法可以使用下面式子表示:

其中H叫做海森矩陣,其實就是目標函數對參數θ的二階導數。
三、牛頓法和梯度下降法的比較
1.牛頓法:是通過求解目標函數的一階導數為0時的參數,進而求出目標函數最小值時的參數。
收斂速度很快。
海森矩陣的逆在迭代過程中不斷減小,可以起到逐步減小步長的效果。
缺點:海森矩陣的逆計算復雜,代價比較大,因此有了擬牛頓法。
2.梯度下降法:是通過梯度方向和步長,直接求解目標函數的最小值時的參數。
越接近最優值時,步長應該不斷減小,否則會在最優值附近來回震盪。
