机器学习 = 模型表征 + 模型评估 + 优化算法
优化算法:在模型表征空间中,找到模型评估指标最好的模型
7.1 有监督学习的损失函数 *
Binary Classification:Y={1,−1}
L0−1(f,y)=1fy≤0,分类错误率,非凸非光滑
Lhinge(f,y)=max{0,1−fy},在 fy=1 处不可导,次梯度下降
Llogistic(f,y)=log2(1+exp(−fy)),光滑,梯度下降,但所有样本点惩罚,异常值敏感
Lcross entropy(f,y)=−log2(21+fy)
Regression
LMSE(f,y)=(f−y)2,光滑,梯度下降,但异常点敏感
LMAE(f,y)=∣f−y∣,中值回归,但在 f=y 处不可导
LHuber(f,y)={(f−y)2,2δ∣f−y∣−δ2,∣f−y∣≤δ∣f−y∣>δ,可导性、异常点鲁棒性
7.2 机器学习中的优化问题 **
7.3 经典优化算法 **
收敛快,但高维 Hessian 矩阵求逆复杂度高,非凸可能收敛到鞍点(Saddle Point)
7.4 梯度验证 ***
如成立,该下标对应的 M 过大,采用更小的 h 重新验证
7.5 随机梯度下降法 SGD *
采用 所有训练数据 的平均损失,近似目标函数,数据量大时,计算量大
用 单个训练样本 的损失,近似平均损失,加快收敛,适用于 在线更新 场景
如何选择 m?调参,2 的幂次,充分利用矩阵运算,e.g. 32, 64, 128, 256
如何挑选 m 个训练数据?shuffle,然后按顺序遍历
7.6 随机梯度下降法的加速 ***
SGD 失效原因
鞍点停滞(Saddle Point):平地 plateau
惯性保持 和 环境感知
更新频率低的参数 - 较大步幅;更新频率高的参数 - 减小步幅
另外,实现了退火过程,学习率越来越小,从而保证收敛
物理意义
||m|| 大且 v 大:梯度大且稳定,明显的大坡
||m|| 小且 v 大:梯度不稳定,可能峡谷,反弹震荡
||m|| 小且 v 小:local minimum,或平地 plateau
其他变种
Nesterov Accelerated Gradient:惯性方向,计算未来位置梯度
AdaDelta, RMSProp:对 AdaGrad 的改进,采用指数衰减平均,过往梯度均值,代替求和
AdaMax:对 Adam 的变种,梯度平方的处理,指数衰减平均 改为 指数衰退最大值
Nadam:Nesterov Accelerated Gradient 版的 Adam
7.7 L1 正则化与稀疏化 ***
角度2. 函数叠加(考虑一维情况)
在线梯度下降算法中,采用 截断梯度法 产生稀疏性,原理类似
凸函数:L(λx+(1−λ)y)≤λL(x)+(1−λ)L(y)
LR 是凸优化问题 Y={1,−1}
优化问题:minθL(θ)=∑i=1nlog(1+exp(−yiθTxi))
计算二阶 Hessian 矩阵验证,∇2L(θ)=∑i=1n∇2Li(θ)⪰0 半正定
优化问题:minVVT=IkL(V)=∣∣X−VTVX∣∣F2
如果 V∗ 为全局极小值,则 −V∗ 也是全局极小值,且 L(21V∗+21(−V∗))>21L(V∗)+21L(−V∗)
无约束问题 minθL(θ),目标函数光滑
直接法:凸函数,∇L(θ∗)=0 有闭式解
Ridge Regression L(θ)=∣∣Xθ−y∣∣22+λ∣∣θ∣∣22,最优解 θ∗=(XTX+λI)−1XTy
迭代法 δt=argminδL(θt+δ)
一阶法(梯度下降法):θt+1=θt−α∇L(θt)
二阶法(牛顿法):θt+1=θt−∇2L(θt)−1∇L(θt)
∣2hL(θ+hei)−L(θ−hei)−∂θi∂L(θ)∣≈Mh2
取 h 为较小的数(如 10−7),验证左式是否 ≤h
如不成立,固定 θ,减小 h 为原来的 10−1,验证近似误差约减小为原来的 10−2
目标函数 L(θ)=E(x,y)∼PdataL(f(x,θ),y),求解 θ∗=argminθL(θ)
批量梯度下降法 BGD ablaL(θ)=M1∑i=1M∇L(f(xi,θ),yi)
随机梯度下降法 SGD ablaL(θ;xi,yi)=∇L(f(xi,θ),yi)
小批量梯度下降法 mini-batch ablaL(θ)=m1∑j=1m∇L(f(xij,θ),yij)
Momentum:vt=γvt−1+ηgt,θt+1=θt−vt,动量 累积 / 抵消(惯性保持)
AdaGrad:θt+1,i=θt,i−∑k=0tgk,i2+ϵηgt,i,历史梯度平方和 => 参数梯度稀疏性(环境感知)
Adam:θt+1=θt−v^t+ϵη⋅m^t,其中 m^t=1−β1tmt,v^t=1−β2tvt
一阶矩:mt=β1mt−1+(1−β1)gt,过去梯度与当前梯度的平均,惯性保持
二阶矩:vt=β2vt−1+(1−β2)gt2,梯度平方的平均,类似 AdaGrad
正则项 == 约束条件,min∑i=1N(yi−wTxi)2, s.t.∣∣w∣∣22≤m
拉格朗日函数 L(w,λ)=∑i=1N(yi−wTxi)2+λ(∣∣w∣∣22−m)
若 w∗ 和 λ∗ 分别是原问题和对偶问题的最优解, 根据 KKT 条件
{0=∇w(∑i=1N(yi−wTxi)2+λ(∣∣w∣∣22−m))0≤λ∗
L2:L(w)+Cw2
L1:L(w)+C∣w∣