【数值分析】学习笔记3——凸优化1:凸函数和凸优化问题


前言

在南方科技大学学习何炳生老师的数值分析课程期间有很多收获与感悟,由衷的感谢何老师的谆谆教导,当然我希望能将课程中所学习到的,能应用到未来科研和工作中的这部分知识,以学习笔记的方式记录下来,也希望能通过这种帖子将自己作为小白对于这些知识的通俗理解分享给大家,文中一些不够准确或错误的表达,还望大家指证。
【数值分析】学习笔记目录

本章节将分享凸优化的基础知识——凸函数和凸优化问题


一.凸函数(Convex Function)

在学习机器学习或者深度学习的知识时,损失函数(Loss Function)都是无法绕开的知识,它表征了预测值与真实值之间的不一致程度,通过构建合理的损失函数模型,对于算法整体学习效率是有很大帮助的。而对于一个损失函数的构建,我们通常希望它是一个凸函数,这样可以利用梯度下降法,来实现模型参数的不断迭代优化。当然凸函数在很多实际生活中的线性规划问题也有其用武之地。

1.什么是凸函数

下图所示的就是一个凸函数 f f f,用图形语言来描述的话,就是函数上任意两点 ( x , f ( x ) ) , ( y , f ( y ) ) (x,f(x)),(y,f(y)) (x,f(x)),(y,f(y))的连线均位于在 [ x , y ] [x,y] [x,y]区间的函数上方。如果我们用稍微数学一点,但是不严谨的语言来描述,就是这个函数 f f f,其二阶导数 f ′ ′ ( x ) > 0 f^{''}\left ( x \right ) > 0 f(x)>0。从图形上,我们可以明显看到凸函数并不是单调函数,其一定具有“底部”,而正是这个原因,所以用它来构建损失函数或者其他一些求最小值问题的模型。

题外话1:如果我们需要求一个问题的最大值,则我们用与凸函数相反的凹函数来拟合即可,即 − f -f f;
题外话2:你可能会有疑问为啥凸函数的形状是下凹的,却要叫其凸函数,而且很多国外的教材是用形状上凸作为凸函数,我建议在具体教材中按照教材里的定义来看,但是理解的话可以直接用这个最常用的模型。

在这里插入图片描述
若我们将这个一元凸函数 f ( x ) f\left ( x \right ) f(x)展开到多元凸函数 f ( X ) f\left ( X \right ) f(X),即此时的未知量是一个向量 X = { x 1 , x 2 . . . , x n } X=\left \{ x_{1},x_{2}..., x_{n}\right \} X={x1,x2...,xn}。那这个凸函数 f ( X ) f\left ( X \right ) f(X)需要满足其Hessian矩阵(由多元函数的二阶导数组成的方阵)正定。

2.凸函数的性质

(1) 凸函数上任一点的切线均位于函数下方

如下图所示,通过图像,我们很容易可以看到对于凸函数在定义域内的任意取值,其切线均位于函数的下方,即函数的值均大于或等于函数在这一点的一阶近似。我们将这一性质化作数学语言的话可以得到如下性质

性质:对于一个可微凸函数 f f f,若其定义域上两点 y , x y,x y,x 满足 y > x y>x y>x,则有
f ( y ) − f ( x ) ⩾ ▽ f ( x ) T ( y − x ) f\left ( y \right ) - f\left ( x \right )\geqslant \bigtriangledown f\left ( x \right )^{T}\left ( y-x \right ) f(y)f(x)f(x)T(yx)其中 ▽ f ( x ) \bigtriangledown f\left ( x \right ) f(x)代表了函数在 x x x处的梯度即一阶导数值, T T T是转置符号,若凸函数为一元时,可以忽略不计,若凸函数为多元时,需要将向量 X X X的一阶导数组成的向量转置。(该性质的证明画个图就出来了)

基于此性质我们还可以顺便推导出
f ( x ) − f ( y ) ⩾ ▽ f ( y ) T ( x − y ) f\left ( x \right ) - f\left ( y \right )\geqslant \bigtriangledown f\left ( y \right )^{T}\left ( x-y \right ) f(x)f(y)f(y)T(xy)将两式相加,则我们可以得到下面这个不等式,该不等式非常重要,对于定义域上任意两点 y , x y,x y,x均适用
( y − x ) T ( ▽ f ( y ) − ▽ f ( x ) ) ⩾ 0 \left ( y-x \right )^{T}(\bigtriangledown f\left ( y \right )-\bigtriangledown f\left ( x \right ))\geqslant 0 (yx)T(f(y)f(x))0理解起来也很方便,因为二阶导数 f ′ ′ ( x ) > 0 f^{''}\left ( x \right ) > 0 f(x)>0,即梯度在不断升高,若 y > x y>x y>x,则 ▽ f ( y ) > ▽ f ( x ) \bigtriangledown f\left ( y \right )>\bigtriangledown f\left ( x \right ) f(y)>f(x) 不等式成立,反之也满足。
在这里插入图片描述

(2)可微凸函数极小值点(实际问题中的最优解点)的特性

以最简单的一元凸函数来考虑,凸函数的极小值点即此处梯度为0时候的点,这就是这一极小值点的数学表达含义,那它的逻辑意义是什么呢?(如果我们有一个通用的逻辑意义,那就可以根据这一逻辑意义推导任意情况下的最优解条件了)

现在我们将未知量 x x x拓展到一个空间中,即此时 x x x是个多维向量,如下图所示 x ∈ Ω x\in \Omega xΩ,红色点为理想目标,那最优解点就是空间 Ω \Omega Ω中距离红色点最近的点,即 x ∗ x^{*} x。梯度 ▽ f ( x ) \bigtriangledown f\left ( x \right ) f(x)表征了空间中任意点 x x x的行进方向。我们回到一元凸函数中,极小值点是不是正好意味着这一点在凸函数空间中无法再进一步下降。我们将其用严谨的语言表述将其拓展到多维空间即函数在这一点的行进方向(梯度)没有一个是下降方向。

关于这一表述,老师举了一个很形象的例子,即瞎子爬山,最优解点即山顶,那对于瞎子而言如何判断山顶,实际就是此处没有可以继续向上的方向。若还可以向上则沿着向上的方向继续行进。【梯度下降法实际就是这样的思想】

现在我们来推导其逻辑表达式和数学表达式,设以下两个方向集和

  • x x x 处的下降方向集: S d ( x ∗ ) = { s ∈ ℜ n ∣ s T ∇ f ( x ∗ ) < 0 } S_{d}\left(x^{*}\right)=\left\{s \in \Re^{n} \mid s^{T} \nabla f\left(x^{*}\right)<0\right\} Sd(x)={snsTf(x)<0}
  • x x x 处的可行方向集: S f ( x ∗ ) = { s ∈ ℜ n ∣ s = x − x ∗ , x ∈ Ω } S_{f}\left(x^{*}\right)=\left\{s \in \Re^{n} \mid s=x-x^{*}, x \in \Omega\right\} Sf(x)={sns=xx,xΩ}

根据我们刚刚得到的表述即两者集合为空集,我们可以得到如下逻辑表达式
S f ( x ∗ ) ∩ S d ( x ∗ ) = ∅ S_{f}\left(x^{*}\right) \cap S_{d}\left(x^{*}\right)=\emptyset Sf(x)Sd(x)=写成数学表达式(这一表达式也被称为变分不等式,后面的笔记会着重讲解)即
x ∗ ∈ Ω , ( x − x ∗ ) T F ( x ∗ ) ≥ 0 , ∀ x ∈ Ω x^{*} \in \Omega, \quad\left(x-x^{*}\right)^{T} F\left(x^{*}\right) \geq 0, \quad \forall x \in \Omega xΩ,(xx)TF(x)0,xΩ此时我们就将一个实际的问题转换成了一个数学不等式,若此时我需要求一个极小值问题时,这个不等式就代表了最优解点所要满足的条件,即一个最优性条件

在这里插入图片描述

二.凸优化问题

凸函数是凸优化的函数模型,根据凸函数的性质推导出具体凸优化问题的最优性条件是找到最优解的必要步骤。

1.最简单凸优化问题(一个凸函数)

所谓最简单的凸优化问题其实是找到上一章中凸函数的极小值点。我们将这种问题写成数学形式即
a r g min ⁡ { f ( x ) ∣ x ∈ Ω } arg \min \{f(x) \mid x \in \Omega\} argmin{f(x)xΩ} a r g arg arg的意义:当 f ( x ) f(x) f(x)取最小值时, x x x的取值

根据上一章推导的“特性”,这个问题的最优性条件即:
x ∗ ∈ Ω , ( x − x ∗ ) T F ( x ∗ ) ≥ 0 , ∀ x ∈ Ω x^{*} \in \Omega, \quad\left(x-x^{*}\right)^{T} F\left(x^{*}\right) \geq 0, \quad \forall x \in \Omega xΩ,(xx)TF(x)0,xΩ也就是只要找到一个点满足上面的条件,即可认为此点为最优解点。

2.两个凸函数的凸优化问题

若我们的凸优化问题由两个凸函数共同决定,即问题
arg ⁡ min ⁡ { θ ( x ) + f ( x ) ∣ x ∈ X } \arg \min \{\theta(x)+f(x) \mid x \in \mathcal{X}\} argmin{θ(x)+f(x)xX}其中 θ ( x ) \theta(x) θ(x), f ( x ) f(x) f(x)均为凸函数,且 f ( x ) f(x) f(x)可微。则根据凸函数的性质,我们有两个子问题的最优性条件

  • a r g min ⁡ { θ ( x ) ∣ x ∈ X } : x ∗ ∈ X , θ ( x ) − θ ( x ∗ ) ≥ 0 , ∀ x ∈ X arg\min \{\theta(x) \mid x \in \mathcal{X}\}: \quad x^{*} \in \mathcal{X}, \quad \theta(x)-\theta\left(x^{*}\right) \geq 0, \quad \forall x \in \mathcal{X} argmin{θ(x)xX}xX,θ(x)θ(x)0,xX(由于其不一定满足可微条件,只能写出这一最朴素的不等式表达)
  • a r g min ⁡ { f ( x ) ∣ x ∈ X } : x ∗ ∈ X , ( x − x ∗ ) T ∇ f ( x ∗ ) ≥ 0 , ∀ x ∈ X arg \min \{f(x) \mid x \in \mathcal{X}\}: \quad x^{*} \in \mathcal{X}, \quad\left(x-x^{*}\right)^{T} \nabla f\left(x^{*}\right) \geq 0, \quad \forall x \in \mathcal{X} argmin{f(x)xX}xX,(xx)Tf(x)0,xX

基于上述两个最优性条件,我们可以得到一条重要的引理,该引理在推导之后的凸优化问题的最优性条件时有至关重要的作用,即该问题的最优性条件为:
x ∗ ∈ X , θ ( x ) − θ ( x ∗ ) + ( x − x ∗ ) T ∇ f ( x ∗ ) ≥ 0 , ∀ x ∈ X x^{*} \in \mathcal{X}, \quad \theta(x)-\theta\left(x^{*}\right)+\left(x-x^{*}\right)^{T} \nabla f\left(x^{*}\right) \geq 0, \quad \forall x \in \mathcal{X} xX,θ(x)θ(x)+(xx)Tf(x)0,xX

Lemma 1 Let X ⊂ ℜ n \mathcal{X} \subset \Re^{n} Xn be a closed convex set, θ ( x ) \theta(x) θ(x) and f ( x ) f(x) f(x) be convex functions and f ( x ) f(x) f(x) is differentiable. Assume that the solution set of the minimization problem min ⁡ { θ ( x ) + f ( x ) ∣ x ∈ X } \min \{\theta(x)+f(x) \mid x \in \mathcal{X}\} min{θ(x)+f(x)xX} is nonempty. Then
x ∗ ∈ arg ⁡ min ⁡ { θ ( x ) + f ( x ) ∣ x ∈ X } x^{*} \in \arg \min \{\theta(x)+f(x) \mid x \in \mathcal{X}\} xargmin{θ(x)+f(x)xX}if and only if
x ∗ ∈ X , θ ( x ) − θ ( x ∗ ) + ( x − x ∗ ) T ∇ f ( x ∗ ) ≥ 0 , ∀ x ∈ X x^{*} \in \mathcal{X}, \quad \theta(x)-\theta\left(x^{*}\right)+\left(x-x^{*}\right)^{T} \nabla f\left(x^{*}\right) \geq 0, \quad \forall x \in \mathcal{X} xX,θ(x)θ(x)+(xx)Tf(x)0,xX

3.线性约束的凸优化问题(一个凸函数+线性约束条件)

与上面两个问题不同,我们生活中的凸优化问题除了函数限制以外,往往还需要满足一个条件约束(例如:如何在满足采购需求(线性约束条件)的情况下花费的钱(凸函数)最少),这类问题的数学表达式写作:
arg ⁡ min ⁡ { θ ( x ) ∣ A x = b (  or  ≥ b ) , x ∈ X } \arg \min \{\theta(x) \mid A x=b(\text { or } \geq b), x \in \mathcal{X}\} argmin{θ(x)Ax=b( or b),xX}其最优性条件的求解需要用到拉格朗日函数和鞍点定理,就放到下一章节说明吧。


四.总结

这一章节的知识难度其实很小,但学习笔记我写的非常啰嗦,主要是希望能理清很多思路,我觉得这是比单纯的记背公式更重要的。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViolentElder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值