本篇部落格來自其他幾篇部落格的整合(詳見參考文獻),主要是提取了一些利於自己理解的小點。
次梯度方法是傳統梯度下降演算法的拓展,傳統梯度下降演算法是為了解決可導凸函式的問題,而次梯度方法主要是為了解決不可導梯度的問題。但是其演算法收斂速度會相對較慢。
次梯度是指對於函式
f f
上的點x' role="presentation" style="position: relative;">x
x滿足一下條件的g∈
rng ∈r
n: f(
y)≥f
(x)+
gt(y
−x) f(y
)≥f(
x)+g
t(y−
x)
即, (1)若f f
是乙個凸函式,若
f' role="presentation" style="position: relative;">f
f在x處可導,則由一階泰勒展開式: f(
y)≥f
(x)+
▽f(x
)t(y
−x) f(y
)≥f(
x)+▽
f(x)
t(y−
x)
(2)若f f
在x處不可導,則仍可得到乙個下屆: f(
y)≥f
(x)+
gt(y
−x)' role="presentation" style="position: relative;">f(y
)≥f(
x)+g
t(y−
x)f(
y)≥f
(x)+
gt(y
−x)這個
g g就是f
' role="presentation" style="position: relative;">f
f的子梯度。
注意:雖然次梯度是針對不可導函式而設計的,但是可導函式也仍然可以使用,因此f f
是非凸函式也是可以的。在點x
0' role="presentation" style="position: relative;">x0x
0的次導數的集合是乙個非空閉區間[a, b],其中a和b是單側極限 a=
limx
−>x−
0f(x
)−f(
x0)x
−x0 a
=limx−
>x0
−f(x
)−f(
x0)x
−x0,a
=limx−
>x+
0f(x
)−f(
x0)x
−x0 a
=limx−
>x0
+f(x
)−f(
x0)x
−x
0a和b一定存在,且a≤b。所有次導數的集合[a, b]稱為函式f f
在x0' role="presentation" style="position: relative;">x0x
0的次導數。f(
x)=|
x|f (x
)=|x
|在x=
0 x=0
的次梯度為[-1, 1]。 a=
limx
−>0−
|x|−
0x=−
xx=−
1 a
=limx−
>0−
|x|−
0x=−
xx=−
1, b=
limx
−>0+
|x|−
0x=x
x=1 b
=limx−
>0+
|x|−
0x=x
x=
1因此,f(
x)=|
x|f (x
)=|x
|在x=
0 x=0
的次梯度為[-1, 1]。
次梯度演算法與梯度下降類似,僅僅是使用次梯度代替梯度,即: x(
k)=x
(k−1
)−tk
⋅g(k
−1),
k=1,
2,3...
x (k
)=x(
k−1)
−tk⋅
g(k−
1),k
=1,2
,3...
其中,g(
k−1)
∈∂f(
x(k−
1)) g(k
−1)∈
∂f(x
(k−1
))
為f(x)
f (x
)在x處的次梯度。
與梯度下降演算法不同的地方在於,次梯度演算法並不是下降演算法,每次對於引數的更新並不能保證代價函式是呈單調遞減的趨勢。
stanford 梯度 梯度下降,隨機梯度下降
一 梯度gradient 在標量場f中的一點處存在乙個向量g,該向量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則向量g稱為標量場f的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...
梯度下降?梯度上公升?梯度提公升?
最近被這三個詞搞蒙了。原本沒覺得它們有多難區分,但真要向乙個人解釋清類似 為何要有梯度提公升 這類問題,似乎還是很吃力,從而發現自己其實並沒有完全理解其中的含義。也許根本就不存在什麼 梯度上公升 只有 梯度提公升 罷,但我覺得,至少在中文環境裡,大家越發的喜歡無意識地將這兩個詞分別開來,從而這兩個詞...
梯度下降 隨機梯度下降 批梯度下降
下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...