① 梯度類演算法原理:最速下降法、牛頓法和擬牛頓法
梯度類演算法眾多,其中最速下降法、牛頓法和擬牛頓法是最常見的三種。盡管演算法名稱各異,但它們的結構大同小異。這些演算法的基本步驟如下:
(1)首先選定初始點。
(2)然後根據迭代公式進行迭代,其中迭代步長和迭代方向是關鍵。
人們常說,選擇大於努力。在優化演算法中,這一點同樣適用。如果迭代方向設計不當,即使努力嘗試,也可能無法得到最優解。因此,我們應重點關注迭代方向的構造方法。
最速下降法是一種簡單直觀的演算法。其核心思想是針對任意初始點,直接計算出使函數下降最快的方向。具體來說,我們假設函數的一階導數存在,並給定一個方向,然後計算該方向上的增量和變化率。當增量足夠小時,變化率可以通過微分計算得到。通過分析變化率,我們可以確定函數在該點處下降最快的方向。
牛頓法是對最速下降法的一種改進。它不僅考慮了一階導數,還考慮了函數的二次項。通過泰勒公式展開,並保留二次項,我們可以得到一個更精確的迭代公式。牛頓法利用了海森矩陣,它代表了函數的二階導數信息。由於海森矩陣的存在,牛頓法在接近最優解時具有更快的收斂速度。
然而,牛頓法也存在一些問題。首先,函數必須二階可導;其次,計算海森矩陣的過程較為復雜。為了解決這些問題,擬牛頓法應運而生。擬牛頓法通過構造一個復雜度低的函數來替代海森矩陣,從而降低計算復雜度。這種方法不僅簡化了計算過程,還降低了函數的二階可導性要求。