葫蘆書筆記----優化演算法
優化演算法
實際上,機器學習演算法=模型表徵+模型評估+優化演算法。
其中,優化演算法所做的事情就是在模型表徵空間中找到模型評估指標最好的模型。
有監督學習的損失函式
有監督學習涉及的損失函式有哪些?請列舉並簡述它們的特點。
-
0-1損失
L 0 − 1 ( f , y ) = 1 f y ≤ 0 L_{0-1}(f,y)=1_{fy\le0} L0−1(f,y)=1fy≤0
其中 1 p 1_p 1p是知識函式,f為模型,當且僅當P為真時取值為1,否則取值為0。該函式能直觀滴刻畫分類的錯誤率,但是由於其非凸、非光滑的特點,使得演算法很難直接對該函式進行優化。
-
Hinge損失函式
L h i n g e ( g , y ) = m a x ( 0 , 1 − f y ) L_{hinge}(g,y)=max(0,1-fy)
Hinge損失函式是0-1損失函式的一個代理損失函式和相對緊的上界,且當fy$\ge$1時,該函式不對其做任何懲罰。Hinge損失再fy-1時不可導,因此不能用梯度下降法進行優化,而是用次梯度下降法。 -
Logistic損失函式
0-1損失的另一個代理損失函式
L l o g i s t i c ( f , y ) = l o g 2 ( 1 + e x p ( − f y ) ) L_{logistic}(f,y)=log_2(1+exp(-fy)) Llogistic(f,y)=log2(1+exp(−fy))
該函式也是0-1損失的凸上界,且該函式處處光滑,因此可以用梯度下降法進行優化,但是因為對所有樣本點都有懲罰,因此對異常值相對更敏感一些。 -
交叉熵(Cross Entropy)
L c r o s s e n t r o p y ( f , y ) = − l o g 2 ( 1 + f y 2 ) L_{cross entropy}(f,y)=-log_2(\frac{1+fy}{2}) Lcrossentropy(f,y)=−log2(21+fy)
對於迴歸問題,
Y
=
R
Y=\mathbb{R}
Y=R,我們希望
f
(
x
i
,
θ
)
≈
y
i
f(x_i,\theta)\approx y_i
f(xi,θ)≈yi,最常用的損失函式是平方損失函式
L
S
q
u
a
r
e
(
f
,
y
)
=
(
f
−
y
)
2
L_{Square}(f,y)=(f-y)^2
但是平方損失函式對異常點比較敏感,為解決此問題,可以採用絕對損失函式
L
a
b
s
o
l
u
t
e
(
f
,
y
)
=
∣
f
−
y
∣
L_{absolute}(f,y)=|f-y|
Labsolute(f,y)=∣f−y∣
但絕對損失函式在f=y處無法求導。綜合考慮可導性和對異常點的魯棒性,可以採用Huber損失函式
L
H
u
b
e
r
(
f
,
y
)
=
{
(
f
−
y
)
2
,
∣
f
−
y
∣
δ
2
δ
∣
f
−
y
∣
−
δ
2
,
∣
f
−
y
∣
>
δ
L_{Huber}(f,y)= \begin{cases} (f-y)^2, \qquad |f-y|\delta\\ 2\delta|f-y|-\delta^2,\qquad |f-y|>\delta \end{cases}
LHuber(f,y)={(f−y)2,∣f−y∣δ2δ∣f−y∣−δ2,∣f−y∣>δ
機器學習中的優化問題
機器學習中的優化問題,哪些是凸優化問題,哪些是非凸優化問題?請各舉以個例子。
速記:凸:邏輯迴歸。非凸:主成分分析
詳細:對於凸優化問題,所有的區域性極小值都是全域性極小值。
經典優化演算法
無約束優化問題的優化方法有哪些?
設有一道無約束優化問題:
m
i
n
θ
L
(
θ
)
\underset{\theta}{min}L(\theta)
θminL(θ)
其中國目標函式
L
(
⋅
)
L(\cdot)
L(⋅)是光滑的。請問求解該問題的優化演算法有哪些?它們的適用場景是什麼?
速記:直接求導,迭代估計。條件允許就直接求,不然就迭代修正估計。
詳細:直接法要求目標函式需要滿足兩個條件。第一個條件是
L
(
⋅
)
L(\cdot)
L(⋅)是凸函式。若
L
(
⋅
)
L(\cdot)
L(⋅)是凸函式,那麼
θ
∗
\theta^*
θ∗是最優解的充分必要條件是
L
(
⋅
)
L(\cdot)
L(⋅)在
θ
∗
\theta^*
θ∗處的梯度為0。即
Δ
L
(
θ
∗
)
=
0
\Delta L(\theta^*)=0
ΔL(θ∗)=0
第二個條件為式9有閉式解(就是bai一些嚴格du的公式,給出任意的自變數就可以求zhi出其因變數,也就是問題的解, 他人可以利用這些公式計算各自的問題)。
同時滿足著兩個條件的經典例子是嶺迴歸,其目標函式為
L
(
θ
)
=
∣
∣
X
θ
−
y
∣
∣
2
2
+
λ
∣
∣
θ
∣
∣
2
2
L(\theta)=||X\theta-y||_2^2+\lambda||\theta||_2^2
L(θ)=∣∣Xθ−y∣∣22+λ∣∣θ∣∣22
推導可得
θ
∗
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
\theta^*=(X^TX+\lambda I)^-1X^Ty
θ∗=(XTX+λI)−1XTy
因為直接法需要兩個條件,限制了它的應用範圍。因此,在很多實際問題中,會採用迭代法。
迭代法就是迭代地修正最優解的估計。假設當前對最優解的估計值為
θ
\theta
θ,我i網球界優化問題
δ
t
=
a
r
g
m
i
n
δ
L
(
θ
t
+
δ
)
\delta_t=\underset{\delta}{argmin}L(\theta_t+\delta)
δt=δargminL(θt+δ)
迭代法分為一階法(梯度法)和二階法(牛頓法)。
梯度驗證
較複雜,感覺都是重點,看書。
##隨機梯度下降法
###當訓練資料量特別大時,經典的梯度下降法存在什麼問題,需要做如何改進?
速記:計算量大,耗費時間長。隨機梯度下降法。
詳細:通常採用小批量梯度下降法解決訓練資料量過大的問題,即用m個訓練資料的平均損失來近似全部資料的平均損失。
隨機梯度下降法的加速
###隨機梯度下降法失效的原因?
速記:靠單個樣本的來蒙梯度蒙不準。
詳細:隨機梯度下降法每步僅隨機取樣一個(或少量)樣本來估計當前梯度,接受的資訊有限,對梯度的估計常常出現偏差,造成目標函式曲線收斂得很不穩定,伴有劇烈波動,有時甚至出現不收斂的情況。
上述問題的解決方法是什麼?
速記:慣性保持和環境感知。
詳細:隨機梯度的更新公式表示為
θ
t
+
1
=
θ
t
−
η
g
t
\theta_{t+1}=\theta_t-\eta g_t
θt+1=θt−ηgt
其中,當前估計的負梯度
−
g
t
-g_t
−gt表示子步的方向,
η
\eta
η表示學習率。
動量方法:
更新公式改為:
v
t
=
γ
v
t
−
1
+
η
g
t
v_t=\gamma v_{t-1}+\eta g_t
vt=γvt−1+ηgt
θ t + 1 = θ t − v t \theta_{t+1}=\theta_t-v_t θt+1=θt−vt
具體來說
AdaGrad方法:
Adam方法:
將慣性保持和環境感知這兩個優點集於一身
L1正則化與稀疏性
###L1正則化捨得模型引數具有稀疏性的原理
速記:L1正則化約束的解空間是多邊形,多邊形的解空間更容易在尖角處與登高線碰撞出稀疏解。
詳細:通過KKT條件,對速記中所提給出一種解釋:
事實上,“帶正則項”和帶約束條件是等價的。