1. 程式人生 > >常用優化方法總結

常用優化方法總結

本篇博文總結一些常用的優化演算法。

梯度下降法

最常見的優化方法是SGD ,基礎的原理不詳細講了,講下其缺陷。
從泰勒公式的角度來看,梯度下降法將f(x) 展開到了一階。

θ=θηθJ(θ)
1. 當學習率太小,到達最優點會很慢。
2. 當學習率太高,可能會跳過最優點,出現震盪的現象。
3. 可能會陷入區域性最優。
3. 如果輸入樣本的不同特徵的大小差別很大,thefeaturehavedifferentscale,則優化時會很慢,其原因為什麼要對特徵進行縮放(歸一化)

這裡寫圖片描述

牛頓法

牛頓法用於方程求解(也稱切線法)

f(x) 進行一階泰勒公式展開:

f(x)f(x0)+f(x0)(xx0)
此時,將非線性方程 f(x)=0 近似為線性方程:
f(x0)+f(x0)(xx0)=0
f(x)0,則下一次迭代解為:
xk+1=xkf(xk)f(xk)
在多元函式中,f(xk) 稱為雅克比矩陣。
這裡寫圖片描述
故牛頓迭代又稱切線法。

牛頓法用於函式最優化求解

f(x) 按照泰勒公式展開到二階得:

f(x)=f(x0)+(xx0)f(x0)+12(xx0)2f(x0)

我們希望f(x) 能取得極小值,那麼必有f(x)=0,我們對右式中的x 求導可得:

f(x0)+(xx0)f(x0)=0
xx0=f(x0)f(x0)