解析:牛頓法(newton』s method)
牛頓法是一種在實數域和複數域上近似求解方程的方法。方法使用函式f (x)的泰勒級數的前面幾項來尋找方程f (x) = 0的根。牛頓法最大的特點就在於它的收斂速度很快。
具體步驟:
首先,選擇乙個接近函式 f (x)零點的 x0,計算相應的 f (x0) 和切線斜率f 』 (x0)(這裡f 』 表示函式 f 的導數)。
然後我們計算穿過點(x0,f(x0))並且斜率為f '(x0)的直線和x軸的交點的x座標,也就是求如下方程的解:
我們將新求得的點的 x 座標命名為x1,通常x1會比x0更接近方程f (x) = 0的解。
因此我們現在可以利用x1開始下一輪迭代。迭代公式可化簡為如下所示:
已經證明,如果f』是連續的,並且待求的零點x是孤立的,那麼在零點x周圍存在乙個區域,只要初始值x0位於這個鄰近區域內,那麼牛頓法必定收斂。 並且,如果f』(x)不為0, 那麼牛頓法將具有平方收斂的效能. 粗略的說,這意味著每迭代一次,牛頓法結果的有效數字將增加一倍。
由於牛頓法是基於當前位置的切線來確定下一次的位置,所以牛頓法又被很形象地稱為是"切線法"。牛頓法的搜尋路徑(二維情況)如下圖所示:
關於牛頓法和梯度下降法的效率對比:
a)從收斂速度上看 ,牛頓法是二階收斂,梯度下降是一階收斂,前者牛頓法收斂速度更快。但牛頓法仍然是區域性演算法,只是在區域性上看的更細緻,梯度法僅考慮方向,牛頓法不但考慮了方向還兼顧了步子的大小,其對步長的估計使用的是二階逼近。
b)根據wiki上的解釋,從幾何上說,牛頓法就是用乙個二次曲面去擬合你當前所處位置的區域性曲面,而梯度下降法是用乙個平面去擬合當前的區域性曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。
注:紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。
牛頓法的優缺點總結:
優點:二階收斂,收斂速度快;
缺點:牛頓法是一種迭代演算法,每一步都需要求解目標函式的hessian矩陣的逆矩陣,計算比較複雜。
梯度下降法和牛頓下降法
泰勒公式可以表示為 f boldsymbol boldsymbol f boldsymbol boldsymbol boldsymbol frac boldsymbol boldsymbol boldsymbol o boldsymbol tag 在 2 中 boldsymbol x 1,x n b...
梯度下降法與牛頓法
梯度下降法,是迭代演算法。在求最值時,常常用到。bp網路中,最小化 誤差cost function,求解對應網路中的weights,即可用梯度下降法來更新weights.梯度下降法基本思想 給定乙個函式 f 假設求 f 最大值 最小值 初始化函式上的乙個點,對該點求導,該點往導數的方向 反方向 移動...
梯度下降法與牛頓法
梯度 f 在 0 處的梯度表示f 在點 0 處函式值變化最快的方向。對於凸函式f 來說,沿著負梯度方向尋找可以找到函式的極小值 k 1 k f k k 表示第 k步迭代,表示修正因子 步長 因為梯度方向變化最快,只在區域性有效 如果對於多維情形,表示為 k 1 k f k 其中 k k1,k2,kn...