抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

最优化问题

最优化问题值得四在一定约束条件下,求一个函数最大(小)值的过程;

由于极大极小问题可以互相转换,不失一般性,因此我们统一形式化描述如下:

一般而言,我们的目标是找到全局最小值。但是, 有些复杂的目标函数有多个局部最小值点。需要比较这些点处的目标函数值。

梯度下降

驻点的精确求解往往是困难的,在实践中我们往往通过迭代算法找到近似解:从一个初始点开始,基于某种规则,从移动到下一个点,构造这样一个数列,直到找到使得梯度为0的点为止。

注意Taloy展开如下:

设计f(x+\Delta x)-f(x)\approx(\nabla f(x))^\top\Delta x

希望做到,取可以做到;

其中为预先设置的步长,它尽量小;

Steepest Descent

我们希望在第次迭代时,选取合适的步长来最优化目标函数;

形式化地说,考虑以下优化问题:

但是这仍然面临着一元函数求驻点的问题;

Stochastic Gradient Decent,SGD

随机梯度下降法考虑对每个样本都进行更新:

其中步长也被称为学习率(Learning Rate),损失函数和学习率的关系如下:

image-20240614071347779

随机梯度下降的伪代码如下:

image-20240614071428586

Mini-batch SGD

小批量随机梯度下降法

Stopping Criteria

使用一个验证集(Validation Dataset)来测试每一次迭代的参数在验证集上是否最优。如果在验证集上的错误率不再下降,就停止迭代;

这是为了避免算法陷入了局部最优或者鞍点,但我们要找的是全局最小值;

image-20240614071517964

凸优化

凸集:对于维空间中点的集合,若对集合中的任意两点,以及,都有,则称该集合为凸集;

image-20240614072716490

凸函数的判定:

  1. 对于维空间中点的集合,如果对集合中的任意两点,以及实数,都有;

  2. Hessian矩阵为半正定矩阵

简单来说,凸优化问题就是同时满足凸函数+凸集的最优化问题,全局最优解的寻找直接被简化成局部最优解;

常见的约束条件有:

  1. 线性约束:
  2. 多面体约束:

注意到,多个凸集的交集还是凸集,因此,优化问题中可能有多个等式和不等式约束,只要每个约束条件定义的可行域是凸集,则同时满足这些约束条件的可行域还是凸集;

严谨地说,如果一个最优化问题的可行域是凸集,并且目标函数是凸函数,则该问题为凸优化问题;

形式化描述如下:

仿

目前,不少问题都是凸优化问题,比如线性回归,岭回归,支持向量机,Logistic回归;

损失函数

image-20240614073926119

image-20240614073909378

评论




博客内容遵循 [署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh)
本站使用 Volantis 作为主题 字数统计:318.5k
<