參考答案:
解析:
牛頓法(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矩陣的逆矩陣,計算比較複雜。
本題解析來源:@wtq1993
連結:http://blog.csdn.net/wtq1993/article/details/51607040
題目來源:七月在線官網(www.julyedu.com)——面試題庫——面試大題——機器學習
BAT大咖一對一個性化定製輔導
定製學習路線
保就業 保高薪 先就業 後付費
新一輪金三銀四之際來了
又到了各大企業狂招人的季節
也是跳槽漲薪的最佳時節啦
有意的親們抓緊時間嘍
挑戰高薪,玩轉AI~
長按識別下方二維碼
查看更多課程詳情
☟
長按識別二維碼