优化算法
实际上,机器学习算法=模型表征+模型评估+优化算法。
其中,优化算法所做的事情就是在模型表征空间中找到模型评估指标最好的模型。
有监督学习的损失函数
有监督学习涉及的损失函数有哪些?请列举并简述它们的特点。
-
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) Lhinge(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
LSquare(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条件,对速记中所提给出一种解释:
事实上,“带正则项”和带约束条件是等价的。