Optimization

梯度下降可以應用於非凸函數嗎?

  • September 17, 2015

我只是在學習優化,並且無法理解凸優化和非凸優化之間的區別。據我了解,凸函數是“函數圖形上任意兩點之間的線段位於圖形上方或圖形上”的函數。在這種情況下,可以使用梯度下降算法,因為只有一個最小值,並且梯度總是會帶你到那個最小值。

但是,這個圖中的函數呢:

在此處輸入圖像描述

在這裡,藍色線段穿過紅色函數下方。但是,該函數仍然有一個最小值,因此梯度下降仍然會將您帶到這個最小值。

所以我的問題是:

1)這個圖中的函數是凸的還是非凸的?

2)如果是非凸的,那麼凸優化方法(梯度下降)還能用嗎?

您繪製的函數確實不是凸的。但是,它是準凸的。

梯度下降是一種用於連續優化的通用方法,因此它可以並且非常普遍地應用於非凸函數。具有平滑的函數和合理選擇的步長,它將生成點序列具有嚴格遞減的值.

不管凸性如何,梯度下降最終都會收斂到函數的一個固定點。如果函數是凸的,這將是一個全局最小值,但如果不是,它可能是一個局部最小值,甚至是一個鞍點。

擬凸函數是一個有趣的例子。擬凸函數的任何局部最小值也是全局最小值,但擬凸函數也可以有非局部最小值的駐點(取例如)。因此,理論上梯度下降可能會卡在這樣的靜止點上,而不是進展到全局最小值。在您的示例中,如果圖表左側的肩部要完美平整,則梯度下降可能會卡在那裡。但是,諸如重球方法之類的變體可能能夠“滾動”並達到全局最小值。

引用自:https://stats.stackexchange.com/questions/172900

comments powered by Disqus

相關問答