【最優化】無約束優化方法-阻尼牛頓法

一、前言

在上篇文章中,我介紹了無約束優化方法-牛頓法,見下:

憶臻:【最優化】無約束優化方法-牛頓法zhuanlan.zhihu.com圖標

最後我們說道了牛頓法的缺點,這裡重新回顧一下,好引出阻尼牛頓法。

缺點:保證不了迭代方向是下降方向,這就是致命的!先看一個定理:

假設我們認可這個定理:直觀理解見下:)

憶臻:多元函數判斷是否為函數值下降方向的直觀理解zhuanlan.zhihu.com圖標

我們判斷牛頓法的迭代方向是否朝著函數值下降的方向移動,也就是判斷一下迭代方向和當前點的梯度值做內積,如果小於0就說明是下降方向,我們來計算一下:

迭代方向和當前點的梯度做內積為:

想讓它小於0,也就是要求

大於0,這恰好是海塞矩陣正定的條件,也就是需要滿足當前點的海塞矩陣是正定的,這個要求是很強的,因此並不能保證牛頓法的迭代方向是一定沿著函數值下降的方向

為了解決這個問題,我們引入了阻尼牛頓法。

二、阻尼牛頓法

在前面說到的牛頓法缺點中,確定了迭代方向之後,迭代步長默認為1,但是這個迭代方向並不一定是朝著函數值下降的方向。

所以阻尼牛頓法為了解決這個問題,採取的做法是確定了迭代方向(和牛頓法一樣的迭代方向)之後,還需要在該方向做一維搜索,尋找使得在該迭代方向上最優的迭代步長。公式如下:

阻尼牛頓法的演算法步驟如下:

阻尼牛頓法演算法

我們也給出牛頓法的演算法步驟:

牛頓法演算法

可以對比出,阻尼牛頓法與牛頓法的唯一差別就在於阻尼牛頓法在得到迭代方向之後,還在該方向進行了一維搜索,它能夠保證每一次的迭代是朝著函數值下降的方向移動。

例如,本來牛頓法的迭代方向如果是沿著函數值上升的方向,那麼在阻尼牛頓法中我的迭代步長變為負數即可。具體數值直接通過對步長求偏導數為0求解即可。

參考:

牛頓法與擬牛頓法學習筆記(一)牛頓法 - CSDN博客blog.csdn.net圖標
推薦閱讀:

TAG:凸優化 | 最優化 | 機器學習 |