最優化問題之如何逃離(跳出)鞍點(Saddle Points)

看了點鞍點相關的知識,做一下備錄。

我們知道在,優化問題中,深度學習的優化問題中,經常存在鞍點,就是這一點的導數爲0,從某些維度看是極小值,從另一些維度看是極大值,比如:

這裏寫圖片描述

深度學習的尋優過程中,鞍點所造成的困難,遠比局部最小值大的多,因爲

1)在高維參數空間,鞍點存在較多
2)大量工作表面局部最優解,對於模型而言已經足夠好。

此外,正是因爲深度學習中鞍點的大量存在,傳統的牛頓法不適合,來尋優,因爲牛頓法是通過直接尋找梯度爲0的點,來尋優的,那麼極有可能陷入鞍點。
(ps: 也正因爲如此,牛頓法在Hessian爲正定的時候,比梯度下降速度快,因爲牛頓法直接找梯度爲0 的點,而梯度下降則是一次一次的尋找當前點的最優梯度)

那麼如何逃離,跳出鞍點呢?

1)利用Hessian矩陣,判斷是否爲鞍點,因爲,Hessian在鞍點具有正負特徵值,而在局部最小值點正定。

2)隨機梯度,相當於給正確的梯度加了一點noise,一定程度上避免了鞍點(但是隻是一定程度),達到類似於如下公式的效果

這裏寫圖片描述

3)隨機初始化起點,也有助於逃離鞍點,原因見here

4)增加偶爾的隨機擾動,詳見here

上一張各算法逃離鞍點的效果圖,有一個直觀的感覺:

這裏寫圖片描述

最後,推薦大家看這兩篇博客,幫助大家理解:

Escaping from Saddle Points

Saddles Again

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