深度理解牛頓法 and 梯度下降

這裏主要是對比兩者不同,和優缺點,具體的兩者的推導過程可以參考https://blog.csdn.net/weixin_44467105/article/details/104841966

一.對於一階導和二階導的理解。
網上大部分都是說由於牛頓法用了二階導,而梯度下降算法用了一階導,所以牛頓法更快,基本都沒說具體原因,這裏我結合下自己對於數學的理解,談談對於這個點的理解,如果不對,希望也能有人指出讓我有一個正確的理解。
梯度下降算法也被稱爲“最速下降”,顧名思義就是因爲他的下降速度很快,因爲它是沿着梯度的方向,意思就是沿着變化速度最快的方向,所以收斂速度比較快。
這也就是所謂梯度下降算法的一階導數的作用。
但是相對於牛頓法來說,牛頓法不僅考慮一階導數而且採用了二階導數,個人理解這裏的含義就是不僅考慮到下降最快的方向(一階導數),而且考慮到更新之後的梯度的變化幅度(二階導數)。
所以牛頓法的收斂速度應該是比梯度下降算法更快的。

二.爲什麼說Hessian矩陣要正定.
牛頓法的目標是求極小值,對於極小值點我們要求一階導數爲0,二階導數大於零,同時滿足這兩個條件纔是極小值點,這是從數學上的定義,我們用牛頓法做迭代時,公式的得出就是假設一階導數爲0的(具體什麼個公式可以看上面鏈接,那裏有推導過程),所以我們還需要二階導大於0。當Hessian矩陣正定時,我們就可以得出X(轉置)HX,這個大於,這個東西一定是大於0的,因爲正定矩陣的條件就是XHX>0,(H爲正定矩陣,這裏前面的X實際是轉置)。

三.優缺點對比
牛頓法優點:收斂速度快

牛頓法缺點:
1.需要計算Hessian的逆矩陣,計算量比較大,而且是每次迭代都要計算
2.牛頓法是局部收斂的

梯度下降算法優點:對於凸函數問題可以全局最優

梯度下降算法缺點:收斂比較慢

本文是通過閱讀了其它的一些文章,用自己的理解寫出來的,水平有限,可能理解會出一些問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章