机器学习中的优化问题

参考书:MLAPP

机器学习中,从监督学习到非监督学习、从线性回归到聚类降维,最终都转化成求解一个优化问题。本文从数学角度记录机器学习中的优化问题,内容包括优化问题类型、求解算法、应用,这其实对应着:

  1. 定义问题—>模型
  2. 解决问题—>算法
  3. 应用

1.目标函数的类型

机器学习常用最小化损失函数的思想求解参数,其优化问题对应:
min ⁡ θ ∈ Θ L ( θ ) \min_{\theta\in\Theta}L(\theta) θΘminL(θ)
不同的 L L L和变量空间 Θ \Theta Θ确定了不同的优化模型,而模型的特征和性质决定了解的存在性、判断最优解和求解的方法

  • 无约束优化VS有约束优化
    假设 Θ \Theta Θ是整个 R D \mathbb{R}^D RD,那么相当于可以在整个D维空间上搜索解,无需考虑范围限制,这时对应的是无约束优化。
    假设 Θ ⊂ R D \Theta\subset\mathbb{R}^D ΘRD,那么需要考虑目标变量的搜索范围,这时对应的是约束优化。

在这里插入图片描述
上图可知,有无约束对于解的存在性和求解方法非常重要。

  • 凸优化VS非凸优化
    假设目标函数 L L L是凸函数,并且参数空间 Θ \Theta Θ是凸集,那么模型就是凸优化模型,否则即为非凸模型。
    在这里插入图片描述
    凸优化是一类性质非常好的模型,理论十分完善。由于凸优化的局部最优就是全局最优,所以求解凸优化时只需要找到局部最优解即可。
    而非凸优化不仅不能保证局部解就是全局解,还存在一类非常特殊的鞍点,使得梯度下降陷入局部解无法继续下降。

  • 光滑优化VS非光滑优化
    假设目标函数 L L L满足一定的光滑条件,比如拉普拉斯光滑条件 ∣ L ( x ) − L ( y ) ∣ ≤ a ∣ x − y ∣ |L(x)-L(y)|\leq a|x-y| L(x)L(y)axy就称为一阶光滑。
    在这里插入图片描述
    优化问题常用梯度下降,对于非光滑的目标函数,无法求得梯度,因此需要用到别的方法求解,比如下一节提到的次梯度下降等。

2.求解算法

2.1 一阶方法

一阶方法是指在求解过程中用到了目标函数的一阶梯度(次梯度)信息。

梯度下降

迭代格式:
θ t + 1 = θ t + η t d t \theta_{t+1}=\theta_t+\eta_td_t θt+1=θt+ηtdt

  • 下降方向:使得目标函数减少的 d t d_t dt,即 L ( θ t + 1 ) < L ( θ t ) L(\theta_{t+1})<L(\theta_t) L(θt+1)<L(θt)
  • 步长:每次走的步长 η t \eta_t ηt,步长的选取十分关键,选的太小导致迭代次数过多收敛太慢,选的太大容易错过最优点,它的选择叫learning rate schedule,内容可以单独写出一章,常用的选择方法:
    • 常数
    • 线性搜索
  • 收敛性:衡量算法是否适用就是看它是否收敛以及收敛速度是多少,梯度下降一般能到线性收敛
  • 加速方法:
    • momentum
      指数平均的思想,将之前的信息汇总,都反映到这次的下降方向中,越靠前的信息影响越小
      m t = β m t − 1 + g t − 1 θ t = θ t − 1 − η t m t m_t=\beta m_{t-1}+g_{t-1}\\ \theta_t=\theta_{t-1}-\eta_tm_t mt=βmt1+gt1θt=θt1ηtmt
    • nesterov momentum
      AIt

2.2 二阶方法

二阶方法指用到了目标函数的二阶导数信息。

牛顿法

迭代格式:
θ t + 1 = θ t − η t H t − 1 g t \theta_{t+1}=\theta_t-\eta_tH_t^{-1}g_t θt+1=θtηtHt1gt
其中 H t H_t Ht是二阶hessian矩阵

拟牛顿法(BFGS)

实践中,求解二阶hessian矩阵十分耗时,一般会对二阶hessian矩阵进行近似,按照不同的规则,有不同的近似方法,常用的是BFGS:
在这里插入图片描述

信任域方法

2.3 随机方法

之前的目标函数都是确定性的,无随机变量,但在实际机器学习中目标函数中会有随机变量:
L ( θ ) = E q ( z ) [ L ( θ , z ) ] L(\theta)=\mathbb E _{q(z)}[L(\theta,z)] L(θ)=Eq(z)[L(θ,z)]

随机梯度下降

每步迭代格式:
θ t + 1 = θ t − η t g t \theta_{t+1}=\theta_t-\eta_tg_t θt+1=θtηtgt
其中 g t = ∇ θ L ( θ t , z t ) , z t ∼ q ( z ) g_t=\nabla_{\theta} L(\theta_t,z_t),z_t\sim q(z) gt=θL(θt,zt),ztq(z)
例如在样本数N,损失函数 l ( y , f ( x ) ) l(y,f(x)) l(y,f(x))的损失最小化优化模型中:
L ( θ t ) = 1 N ∑ n = 1 N l ( y n , f ( x ( i ) , θ t ) ) L(\theta_t)=\frac{1}{N}\sum_{n=1}^N l(y_n,f(x^{(i)},\theta_t)) L(θt)=N1n=1Nl(yn,f(x(i),θt))

  • 方向 g t g_t gt
    如果每次用到N个样本去更新参数,就是批量梯度下降
    如果每次只用一个样本更新参数,就是SGD
  • 步长
    为保证收敛,一般要求Robbins-Monro conditions
    Alt
    还有其他的learning rate schedule

preconditioned SGD

迭代格式:
θ t + 1 = θ t − η t M t − 1 g t \theta_{t+1}=\theta_t-\eta_tM_t^{-1}g_t θt+1=θtηtMt1gt
其中 M t − 1 M_t^{-1} Mt1就是preconditioned矩阵,它不一定涉及二阶导数信息

  • AdaGrad ( M t = d i a g ( s t + ϵ ) 1 / 2 M_t=diag(s_t+\epsilon)^{1/2} Mt=diag(st+ϵ)1/2)
    在这里插入图片描述
    其中Alt
    由此可算出每步迭代的变化量:
    Alt
  • RMSProp \ AdaDelta
    在这里插入图片描述
    每步更新量:
    Alt
    更简单的Adadelta
    Alt
    Alt
  • Adam
    在这里插入图片描述
    每步更新量:
    Alt
  • M t M_t Mt非对角

2.4 求解有约束优化

  • 拉格朗日乘子法
  • proximal gradient descent
    思想:将约束通过惩罚函数写成成目标函数
    对于非光滑的目标函数,如果能把目标函数写成复合函数:
    L ( θ ) = L s ( θ ) + L r ( θ ) L(\theta)=L_s(\theta)+L_r(\theta) L(θ)=Ls(θ)+Lr(θ)
    其中 L s L_s Ls光滑, L r L_r Lr非光滑,则可用PGD算法更新参数:
    在这里插入图片描述)
    其中
    在这里插入图片描述

2.5 bound optimization

有时候求解原目标函数比较困难,退一步求解一个它的下界,这个下界要满足几个条件:

  • 它的最优解好求
  • 它和原目标函数相差不大,最好能衡量两者的差距

这样的函数称为surrogate function,满足
Q ( θ , θ t ) ≤ L ( θ ) , Q ( θ t , θ t ) = L ( θ t ) Q(\theta,\theta_t)\leq L(\theta),Q(\theta_t,\theta_t)=L(\theta_t) Q(θ,θt)L(θ),Q(θt,θt)=L(θt)
每步转而求解
Alt

  • EM
    目标函数:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    定义:
    在这里插入图片描述
    在这里插入图片描述

2.6 blackbox和derivative-free

2.7 贝叶斯优化

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值