3 优化方法简介 Optimization Methods

2023-05-19
2023-05-19

第三章 优化方法简介 Optimization Methods

梯度下降及不同形式

拉格朗日乘子法与KKT条件

对偶

3.1 为什么要优化?

机器学习问题最后都归结为优化问题。

优化问题的一般形式:

image-20230515212233702

3.2 预备知识

泰勒展开 Taylor series

f(x)=f(x0)+∇f(x0)⊤(x−x0)+o(∥x−x0∥2)f(x)=f(x0)+∇f(x0)⊤(x−x0)+12(x−x0)⊤∇2f(x0)(x−x0)+o(∥x−x0∥22)\begin{aligned} f(\mathbf{x})&=f(\mathbf{x}_0)+\nabla f(\mathbf{x}_0)^{\top}(\mathbf{x}-\mathbf{x}_0)+o(\|\mathbf{x}-\mathbf{x}_0\|_2)\\ f(\mathbf{x})&=f(\mathbf{x}_0)+\nabla f(\mathbf{x}_0)^{\top}(\mathbf{x}-\mathbf{x}_0)+\frac{1}{2}(\mathbf{x}-\mathbf{x}_0)^{\top}\nabla^2f(\mathbf{x}_0)(\mathbf{x}-\mathbf{x}_0)+o(\|\mathbf{x}-\mathbf{x}_0\|^2_2) \end{aligned}

梯度 Gradient

∇f(x)=[∂f(x)∂x1∂f(x)∂x2⋮∂f(x)∂xd]\nabla f(\mathbf{x})=\left[\begin{array}{cc}\frac{\partial f(\mathbf{x})}{\partial x_1}\\ \frac{\partial f(\mathbf{x})}{\partial x_2}\\ \vdots\\ \frac{\partial f(\mathbf{x})}{\partial x_d}\end{array}\right]

海森矩阵 Hessian

∇2f(x)=[∂2f(x)∂x12⋯∂2f(x)∂x1∂xd⋮⋱⋮∂2f(x)∂xd∂x1⋯∂2f(x)∂xd2]\nabla^2f(\mathbf{x})=\left[\begin{array}{ccc}\frac{\partial^2f(\mathbf{x})}{\partial x_1^2}&\cdots&\frac{\partial^2f(\mathbf{x})}{\partial x_1\partial x_d}\\ \vdots&\ddots&\vdots\\ \frac{\partial^2f(\mathbf{x})}{\partial x_d\partial x_1}&\cdots&\frac{\partial^2f(\mathbf{x})}{\partial x_d^2}\end{array}\right]

半正定矩阵 Positive semi-definiteness

image-20230518141042347

局部最优解的充要条件

image-20230518141051816

优化问题的困难

image-20230518141100317

Go for convex problems!
寻求凸问题

3.3 凸集与凸函数

凸集 Convex Sets

定义

image-20230515212333832

凸集举例

n维实数空间

n维实数非负象限

范式球

image-20230518141132618

仿射子空间

image-20230520132139356
image-20230520132201417

凸函数 Convex Function

定义

image-20230515212441406

凸函数成立的一阶条件

image-20230518141144496

凸函数成立的更一般的条件

凸函数的充要条件:在每处都存在非空的次梯度或次微分集合。

image-20230518141156489

凸函数成立的二阶条件

二阶可微 海森矩阵半正定

image-20230518141213089

凸函数举例

线性函数

二次函数

image-20230520132330846

范数

与仿射函数的组合

Log-sum 形式

image-20230520132341931

机器学习中的例子

image-20230515212613999

保凸运算

image-20230515212620968

为什么关心函数的凸性?

任何局部极值都是全局极值。

这意味着我们找到的解就是最优解。

这使得优化变得容易,因为不必担心陷入局部极值。

凸优化 Convex Optimization

定义

image-20230515212708768

仿射函数
凸集
凸函数

凸优化问题的好处

image-20230515212736096

凸优化的更多性质

image-20230515212749242

3.4 无约束优化

无约束优化

image-20230520132443821

如果没有解析解的话,可以使用梯度下降或牛顿方法等迭代的手段来使x沿负梯度方向逐步逼近极小值点。

★梯度下降 Gradient Descent

image-20230518012647501

梯度的更新公式:

xt+1=xt−ηt∇f(xt)x_{t+1}=x_t-\eta_t\nabla f(x_t)

ηt\eta_t 是学习率

梯度下降算法

image-20230518012716509

梯度下降的学习率

学习率过大,收敛时产生振荡,难以收敛到最优值;

学习率过小,则收敛极其缓慢,可能也难以收敛到最优值。

image-20230518012739548

★梯度下降的不同形式

根据每一步所用的数据量:

  • 批量梯度下降法(Batch Gradient Descent, BGD)
    是梯度下降法最常用的形式 ,就是在更新参数时使用所有的样本来进行更新。
  • 随机梯度下降法(Stochastic Gradient Descent, SGD)
    每一步仅仅选取一个样本来求梯度。
  • 小批量梯度下降法(Mini batch Gradient Descent, MBGD)
    是批量梯度下降法和随机梯度下降法的折衷,每一步采用一部分固定数量的样本来计算。

批量梯度下降法

梯度更新比较耗时,尤其是数据集非常大的情况下 。但是由于每次的下降方向为总体样本的平均梯度,更准确
地朝向极值所在的方向迭代次数少。

批量梯度下降法的速度会比较慢,尤其是数据集非常大的情况下,收敛速度就会非常慢,但是由于每次的下降方向为总体样本的平均梯度,它得到的会是一个全局最优解。

image-20230518141405529

随机梯度下降法

梯度更新快,由于每次迭代并不是都向着全体样本的最优化方向,导致梯度下降的波动非常大,更容易从一个局部最优跳到另一个局部最优,准确度下降。迭代次数多,可能不收敛,或陷入局部极值或鞍点。

训练速度很快,即使在样本量很大的情况下,可能只需要其中一部分样本就能迭代到最优解,由于每次迭代并不是都向着全体样本的最优化方向,导致梯度下降的波动非常大,更容易从一个局部最优跳到另一个局部最优,准确度下降。

image-20230518141414417

小批量梯度下降法

小批量梯度下降法既保证了训练的速度,又能保证最后收敛的准确率。

image-20230518141511498

小批量梯度下降法介于前两者之间,梯度更新比 BGD 快,迭代次数比 SGD 少。学习过程仍会有振荡,为更
接近最小值,需要增加学习率衰减项,避免过度振荡。

机器学习中使用建议

简单的说就是:
批量梯度下降在每次更新参数时,利用全部样本来计算梯度;
随机梯度下降在每次更新参数时,随机选择一个样本来计算梯度;
小批量梯度下降在每次更新参数时,随选择一个样本子集来计算梯度;

  • 当训练集比较小时
    批学习,采用拟牛顿或者共轭梯度下降
  • 当训练集大时
    随机梯度下降
  • 当训练集介于二者之间时
    小批量学习

牛顿法 Newton's method

牛顿法

拟牛顿法

牛顿法与梯度下降的对比

略

共轭梯度法

略

梯度下降的改进

基于学习率

  • 学习率衰减
  • Adagrad
  • Adadelta
  • RMSprop

基于梯度

  • Momentum 基于动量的方法
  • Nesterov accelerated gradient
  • 梯度截断
  • Adam
  • Nadam

AdaGrad 自适应学习率 (2011)

Adadelta 自适应增量算法 (2012)

RMSprop 均方根传递算法 (2012)

动量 Momentum 优化法

ADAM 适应性矩估计算法 (2014)

略

3.5 约束优化

等式约束

等式约束 Equality constraints 问题

image-20230518141708620

约束条件会将解的范围限定在一个可行域,此时不一定能找到使得 ∇xf(x)为 0 的点,只需找到在可行域内使得 f(x)最小的值即可。

可行域

示例:

image-20230518141739527

局部极值的条件

image-20230518141758111

在区域内部,极值点必为驻点,但驻点不一定是极值点

image-20230518141814759 image-20230518141821341

二维情况下的目标函数是 f(x,y) ,在平面中画出 f(x,y)的等高线,如下图的虚线所示,只给出一个约束等式 h(x,y)=0 ,如下图的绿线所示,

image-20230518141842058

目标函数 f(x,y)与约束 h(x,y) 只有三种情况:相交、相切或者没有交集。

  • 没交集肯定不是解。
  • 相交得到的一定不是最优值。因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小。
  • 只有等高线与目标函数的曲线相切的时候,才可能得到可行解。
    ∇xf(x)−α∇xh(x)=0\nabla_xf(x)-\alpha\nabla_x h(x)=0
    两者的法向量是平行的

★等式约束的拉格朗日乘子法

一个等式约束的情况

有等式约束最优化问题的表现形式:

定义拉格朗日函数:

则当 x∗x^* 是一个局部最小 <=> 存在一个 μ∗\mu^\ast 满足约束

image-20230518142104546

其中 ∇xx2L(x∗,μ∗)\nabla_{\mathrm{xx}}^{2}\mathcal{L}({x}^{*},\mu^{*}) 是正定矩阵。

image-20230521133953428

多个等式约束的情况

image-20230518142116354

不等式约束

示例 1

image-20230518142632417 image-20230518142717019

如何确定 xFx_F 是局部极值点?

image-20230518142822338

当约束区域包含目标函数原有的可行解时,此时加上约束可行解仍落在约束区域内部,对应g(x)<0的情况,这时约束条件不起作用.

这个例子中的约束是无效(inactive)约束

示例 2

image-20230518142733689

当约束区域不包含目标函数原有的可行解时,此时加上约束后可行解落在边界 g(x)=0上。

image-20230518142800350

如何确定 xFx_F 是局部极值点?

由图可见可行解 x 只能在 g(x)<0 或者 g(x)=0 的区域里取得:

  • 当可行解 x 落在 g(x)<0 的区域内,此时直接极小化 f(x) 即可;
  • 当可行解 x 落在 g(x)=0 即边界上,此时等价于等式约束优化问题.
image-20230518142847525

约束的局部极值点

在不等式约束中,若 λ≠0,说明可行解 x 是落在约束区域的边界上的,
这时可行解应尽量靠近无约束时的解,
在约束边界上,目标函数的负梯度方向应该远离约束区域朝向无约束时的解,
此时正好可得约束函数的梯度方向与目标函数的负梯度方向应相同

image-20230518142901870

★一个不等式约束情况下优化问题的总结

image-20230518142916727 image-20230521133936210

★不等式约束的拉格朗日乘子法 KKT条件

一个不等式约束的KKT条件

定义拉格朗日函数:

则当­ x∗x^* 是一个局部最小 <=> 存在一个­ λ∗\lambda^* 满足约束:(KKT条件)

  • ∇xL(x∗,λ∗)=0\nabla_{\mathrm{x}}{\mathcal{L}}({\mathbf{x}}^{*},\lambda^{*})=0
  • λ∗≥0\lambda^{*}\geq0
  • λ∗g(x∗)=0\lambda^*g(\mathbf{x}^*)=0
  • g(x∗)≤0g(x^{*})\leq0
  • Plus positive definite constraints on ∇xxL(x∗,λ∗)\nabla_{\mathbf{xx}}\mathcal{L}(\mathbf{x}^{\ast},\lambda^{\ast}) (在 ∇xxL(x∗,λ∗)\nabla_{\mathbf{xx}}\mathcal{L}(\mathbf{x}^{\ast},\lambda^{\ast}) 加上正定的约束)

image-20230518142211589

特别注意:

  • 优化问题是凸优化的话,KKT条件就是极小值点(而且是全局极小)存在的充要条件。
  • 不是凸优化的话,KKT条件只是极小值点的必要条件,不是充分条件。

KKT条件概括了这两种情况:

image-20230518142243142

多个不等式约束的KKT条件

image-20230518142252580

多个等式、不等式约束的KKT条件

image-20230518142309476

KKT条件例题

image-20230520133753603


image-20230518142350557

可行域

image-20230518143117926

一种解法

image-20230518143137499 image-20230518143148896

另一种解法

image-20230518143221478

★对偶函数与对偶问题

在机器学习中,对偶(duality)是指将一个优化问题转化为其对偶形式,从而更容易地解决原始问题。具体来说,对于一个原始优化问题,通过构建一个拉格朗日函数,并对其进行最大化或最小化,可以得到对偶问题。通过解决对偶问题,我们可以获得原始问题的解。这种方法在解决某些优化问题时非常有用,因为对偶问题可能比原始问题更容易求解。

对偶问题

image-20230518142500529

一般描述

image-20230518142515982

对偶问题

image-20230518142524924

不等约束下的最优化一阶必要条件: KKT 条件

image-20230518142446645

为什么要研究对偶问题?

虽然对偶方法并不能保证成功,但是

  • 它对于某些类别的函数有效。
  • 在这些情况下,它总能带来更简单的优化问题。
  • 特别是当原问题中自变量的维度比约束的数量大得多的情况下。
  • 最优解由拉格朗日乘子构成的表达式可以帮助我们理解最优解,例如在SVM中那样。
  • 对偶函数总是凹函数,无论原问题如何。
  • 所以对偶函数的优化是个凸优化问题。

弱对偶&强对偶

令 f∗f^\ast 表示原问题最优解,q∗q^\ast 表示对应的拉格朗日对偶问题的最优解,则

弱对偶,q∗≤f∗q^\ast\le f^\ast,拉格朗日对偶问题的最优解是原问题最优解的最好下界,且原问题不论是否为凸,弱对偶总是成立;

强对偶,q∗=f∗q^\ast=f^\ast,若原问题是凸优化问题、满足KKT条件,则强对偶条件成立,此时可以通过求解对偶问题来得到原始问题的解。

3.6 坐标下降优化

坐标下降法

坐标下降法每次沿着单个维度方向进行搜索,当得到一个当前维度下的最小值之后再循环使用不同的维度方向,最终收敛得到最优解。

image-20230515213023290

块坐标下降法

块坐标下降是坐标下降的更一般化,它通过对变量的子集进行同时优化 ,在下降的过程中更新的次序可以是确定的或随机的。

image-20230515213032510

文章目录

版权

本文遵循署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 标准。

部分内容源自互联网、书本和课堂,仅供交流学习,未用于任何商业用途。如果它们侵犯了您的权益,请与我们联系,我们将立即删除它们。

版权所有 © 2020-2026 Kloudy 保留所有权利.