函式的次梯度如何理解?

時間 2021-05-31 10:42:46

1樓:王源

次梯度的定義如下:

對於凸函式 , 其中為定義在 維歐式空間上的凸集。若對 有如下表示式成立

" eeimg="1"/>

則稱向量 為 在 處的次梯度。

其實定義都能在教科書上查到,主要是如何理解這個定義。我第一次看到次梯度的定義的時候不是很能理解,因為這個定義的長相是有點奇怪的。當然要想對次梯度有乙個基本理解,還需要對凸優化有乙個基本了解,否則想要理解次梯度還是比較困難的。

, \forall y\in D" eeimg="1"/>是對所有的 都成立,那麼對最小值 也應該成立,由此可得

" eeimg="1"/>

由於是最優值,所以上式中不等式左端是小於等於0的,由此進一步可得:

\geq0 " eeimg="1"/>

看到這裡我們已經有點明朗了,上式表明 與 內積大於等於0,內積反應的是兩個向量之間的夾角關係,內積大於等於0表明兩個向量夾角小於等於90度。那麼我們在點 處沿著該點次梯度的負方向前進,那麼在很大可能性上(並不能嚴格保證)就會靠近最小值 。

這一點和梯度法的出發點是一樣的,負梯度是可導函式區域性的最速下降點,那麼再每個區域性點都沿著負梯度搜尋下去就能收斂到全域性最優點。由次梯度的定義可知,次梯度也具備著類似的性質,只不過次梯度不依賴於可導的條件罷了。

需要注意的是函式在某點處的次梯度一般來說是乙個集合,而並非乙個點,這一點和梯度是有很大不同的,梯度一般是唯一的。我們用如下符號表示某點的次梯度

, \forall y \in E^n \right\}" eeimg="1"/>

只要滿足次梯度那個定義的就是次梯度了,所有滿足次梯度定義的構成了乙個集合。

對於凸函式在定義域的內部點上有:

函式在該點處的次梯度存在且唯一 函式該點是可微的

最常見被拿來舉例子說明次梯度的就是L1 norm,L1 norm的一維版本就是絕對值函式 ,如下圖所示是絕對值函式的影象:

紅色的線表示函式值,2條虛線表示,絕對值函式在 處的支撐超平面,其支撐超平面的斜率就是次梯度。熟悉凸優化的童鞋會支撐超平面應該比較熟悉。何謂支撐超平面呢?

簡單點說就是乙個平面會把空間劃分為2塊,要保證函式影象僅在其中1塊就可以。嚴謹定義參考凸優化的教材[1],總之就是次梯度就是支撐超平面的斜率。

在絕對值函式這個例子中,我們不難看出在 的地方,其次梯度就是梯度並且唯一,這也剛好驗證了我們上面所論述的次梯度和梯度之間的關係。在這個地方絕對值函式是不可微的,其支撐超平面的斜率是範圍是 ,因此其次梯度也是。可以把這個結果帶入到次梯度定義中去驗證一下:

由次梯度定義有如下不等式

, \forall y\in D" eeimg="1"/>

進一步整理得

由此可得

那麼到這裡就可以建立起函式的次梯度的乙個幾何直觀感受。若不熟悉支撐超平面則想要理解這塊內容有點困難,建議先熟悉凸優化的內容再反過頭來看。

對優化問題而言最優性條件有著舉足輕重的地位,肯定要問一下次梯度還有類似導數那樣一階最優性條件嗎?答案是有的。這個定理被稱為 Fermat's optimal condition [2]

是乙個凸函式, 為最小值當且僅當

這個定理和基於導數的一階最優性條件十分相似,不同點在於函式某點的次梯度是乙個集合,所以要只能是 ,而不是

值得注意的是有些時候我們無法得到 的closed form的形式,所以也就很難判斷這個最優性條件是否成立,這一點在梯度法里則不存在。

最後要回答乙個問題,次梯度啥時候存在?梯度有不存在的時候,同理次梯度肯定也有其存在的條件。

凸函式是次梯度存在的必要條件,若不是凸函式,則必然會有某些點次梯度是空集(這點從支撐超平面的幾何觀點就能很好解釋)。但是僅僅是凸函式還不夠,主要是因為在邊界點處會出現凸函式次梯度為空集的情況。

這塊想要嚴謹說明話就比較長了,初學者的話只需知道最起碼是凸函式才能保證任意一點的次梯度存在即可。

[1] Boyd S, Boyd S P, Vandenberghe L. Convex optimization[M]. Cambridge university press, 2004.

[2] Beck A. First-order methods in optimization[M]. SIAM, 2017.

[3] Nesterov Y. Introductory lectures on convex programming volume i: Basic course[J].

Lecture notes, 1998, 3(4): 5.

2樓:鶴嘯九天

搬運:次梯度方法(subgradient method)是傳統的梯度下降方法的拓展,用來處理不可導的凸函式。它的優勢是比傳統方法處理問題範圍大,劣勢是演算法收斂速度慢。

藍色是凸函式,若干點不可導,如x0,紅色直線的集合是次導數集合

參考:【機器學習】次梯度(subgradient)方法

3樓:考拉抱大樹

首先你要理解次導數,但是我懶得打公式和畫圖,簡單說一下,希望幫到你。

次導數:對於一元函式來講,若在點x處的左導數<右導數,那麼在該點的次導數是乙個集合:[左導數,右導數],即大於左導數小於右導數的任意數值都可以作為該點的次導數。

考慮y=|x|,在x=0處的左導數是-1,右導數是1,那麼在該點的次導數就是從-1到1的所有數值組成的集合。

推廣到多元函式:次梯度就是在各個維度上的次導數組成的向量。當次梯度中包含0向量時,凸函式在該點達到最小值(一元函式在該點有水平次切線,二元函式在該點有水平次切面)。

能否將海森矩陣理解成梯度的梯度?

幷州達人 這麼理解屬於方向對了,細節不是很正確。case1,乙個從實數域對映到實數域的方程,做微分後形成了乙個新的函式,依舊是從實數域對映到實數域,這個方程叫導數。case2,乙個從維度n向量域對映到實數域的方程,微分後成了乙個新的函式,不過這時是乙個從維度n向量域對映到維度n向量域的向量方程,叫做...

如何理解似然函式

SleepyBag P x 是引數 下 x 出現的可能性,同時也是 x 出現時引數為 的似然。這個怎麼理解呢?很簡單。P x 越大,就說明引數如果為 你的觀測資料 x 就越可能出現。那你既然已經觀測到資料 x 了,那麼越可能讓這個 x 出現的引數 就越是乙個靠譜的模型引數。這個引數的靠譜程度,就是似...

如何理解Haskell中的函式呼叫

並不是你想的語法糖,按照你的思路,只返回的函式咋辦?事實是這是一種叫柯里化的東西,用必應會谷歌自行查詢 Currying Function 事實上,對於Haskell 很多地方與一般的面相過程與物件的語言是不一樣的。 UWRF 對於 a b 是函式嗎?a 和 b 是什麼不重要,但 a 和 b 的型別...