⽜頓法是梯度下降法的進一步發展,梯度下降法利利用目標函數的一階偏導數信息、以負梯度方向作為搜索方向,只考慮目標函數在迭代點的局部性質;而牛頓法不僅使用目標函數的一階偏導數,還進一步利⽤了目標函數的二階偏導數,這樣就考慮了梯度變化的趨勢,因⽽而能更全面地確定合適的搜索⽅方向加快收斂,它具二階收斂速度。
但牛頓法主要存在以下兩個缺點:
1. 對目標函數有較嚴格的要求。函數必須具有連續的一、二階偏導數,海海森矩陣必須正定。
2. 計算相當復雜,除需要計算梯度以外,還需要計算二階偏導數矩陣和它的逆矩陣。計算量、存儲量均很⼤,且均以維數N的平⽅增加,當N很⼤時這個問題更加突出。
2. 計算相當復雜,除需要計算梯度以外,還需要計算二階偏導數矩陣和它的逆矩陣。計算量、存儲量均很⼤,且均以維數N的平⽅增加,當N很⼤時這個問題更加突出。
⽜頓法雖然收斂速度快,但是計算過程中需要計算目標函數的二階偏導數,計算復雜度較⼤。而且有時目標函數的海森矩陣無法保持正定,從而使⽜頓法失效。為了克服這兩個問題,⼈們提出了擬⽜牛頓法。這個方法的基本思想是:不⽤⼆階偏導數而構造出可以近似海森矩陣或者海森矩陣的逆的正定對稱陣,在擬⽜頓的條件下優化⽬目標函數。不同的構造⽅法就產生了不同的擬牛頓法。
也有人把“擬牛頓法”翻譯成“准牛頓法”,其實都是表示“類似於牛頓法”的意思,因此只是對算法
中用來計算搜索方向的海森矩陣(或海森矩陣的逆)作了近似計算罷了。