牛頓法(英語:Newton's method)又稱爲牛頓-拉弗森方法(英語:Newton-Raphson method),它是一種在實數域和複數域上近似求解方程的方法。方法使用函數f(x)的泰勒級數的前面幾項來尋找方程f(x)=0的根。算法
通常狀況對於f(x)是一元二次的狀況直接應用求根公式就能夠了,可是對於更高次(在5次方以上),沒有求根公式,因而牛頓想了個近似求解的辦法——牛頓法函數
首先以一元函數爲例來講明牛頓法的具體過程3d
假設咱們要求解函數f(x)=0的根,咱們首先把函數在處展開成泰勒級數的形式並取其線性部分:blog
令g(x)=0,則class
g(x)=0的根與f(x)=0的根近似相等,因此咱們能夠將這次計算看作一次迭代的過程,即:效率
看下面的定理:方法
關於牛頓法和梯度降低法的效率對比:im
從本質上去看,牛頓法是二階收斂,梯度降低是一階收斂,因此牛頓法就更快。若是更通俗地說的話,好比你想找一條最短的路徑走到一個盆地的最底部,梯度降低法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不只會考慮坡度是否夠大,還會考慮你走了一步以後,坡度是否會變得更大。因此,能夠說牛頓法比梯度降低法看得更遠一點,能更快地走到最底部。(牛頓法目光更加長遠,因此少走彎路;相對而言,梯度降低法只考慮了局部的最優,沒有全局思想。)d3
牛頓法應用f(x)求極值的問題中就是將求f(x)的極值能夠轉化爲求的解,這時咱們會用到f(x)泰勒展開式中的二階偏導數,對於多元函數,其泰勒展開式中的二階項能夠寫成以下形式:總結
其中H(f)是海森矩陣,其形式爲
假設咱們要求解f(x)在多元條件下的極值
首先須要求
f(x)在處的包含二階項的泰勒展開式(省去高階無窮小)爲
令可得:
解得
因此多元函數的梯度更新公式
牛頓法的優缺點總結:
優勢:二階收斂,收斂速度快;
缺點:牛頓法是一種迭代算法,每一步都須要求解目標函數的Hessian矩陣的逆矩陣,計算比較複雜。