机器学习笔记之最优化理论与方法(五)凸优化问题(上)

机器学习笔记之最优化理论与方法——凸优化问题[上]

  • 引言
    • 凸优化问题的基本定义
      • 凸优化定义:示例
    • 凸优化与非凸优化问题的区分
      • 局部最优解即全局最优解
      • 凸优化问题的最优性条件
      • 几种特殊凸问题的最优性条件
        • 无约束凸优化
        • 等式约束凸优化
        • 非负约束凸优化

引言

本节将介绍凸优化问题,主要介绍凸优化问题的基本定义凸优化与非凸优化问题的区分

凸优化问题的基本定义

关于最优化问题 P \mathcal P P描述如下:
P ⇒ { min ⁡ f ( x 1 , x 2 , ⋯ , x n ) s.t.  { G i ( x 1 , x 2 , ⋯ , x n ) ≤ 0 i = 1 , 2 , ⋯ , m H j ( x 1 , x 2 , ⋯ , x n ) = 0 j = 1 , 2 , ⋯ , l \mathcal P \Rightarrow \begin{cases} \min f(x_1,x_2,\cdots,x_n) \\ \text{s.t. } \begin{cases} \mathcal G_i(x_1,x_2,\cdots,x_n) \leq 0 \quad i=1,2,\cdots,m \\ \mathcal H_j(x_1,x_2,\cdots,x_n) = 0 \quad j=1,2,\cdots,l \end{cases} \end{cases} P minf(x1,x2,,xn)s.t. {Gi(x1,x2,,xn)0i=1,2,,mHj(x1,x2,,xn)=0j=1,2,,l
同时记最优化问题可行域 S \mathcal S S为:
可行域中采样出的 x ∈ S x \in \mathcal S xS也被称作可行解
S = { x ∈ R n ∣ G i ( x ) ≤ 0 , i = 1 , 2 , ⋯ , m ; H j ( x ) = 0 , j = 1 , 2 , ⋯ , l } \mathcal S = \{x \in \mathbb R^n \mid \mathcal G_i(x) \leq 0,i=1,2,\cdots,m;\mathcal H_j(x) = 0,j=1,2,\cdots,l\} S={xRnGi(x)0,i=1,2,,m;Hj(x)=0,j=1,2,,l}
什么情况下,最优化问题 P \mathcal P P被称作凸优化问题 ? ? ?针对上述描述,需要满足如下三个条件:

  • 目标函数 f ( x ) f(x) f(x)是关于决策变量 x x x凸函数
  • m m m不等式约束函数 G i ( x ) , i = 1 , 2 , ⋯ , m \mathcal G_i(x),i=1,2,\cdots,m Gi(x),i=1,2,,m均是关于决策变量 x x x的凸函数
  • l l l等式约束函数 H j ( x ) , j = 1 , 2 , ⋯ , l \mathcal H_j(x),j=1,2,\cdots,l Hj(x),j=1,2,,l均是关于决策变量 x x x的线性函数

观察不等式约束函数 G i ( x ) \mathcal G_i(x) Gi(x),为什么要强调它们是凸函数 ? ? ?,首先,观察不等式约束的描述:
G i ( x ) ≤ 0 i = 1 , 2 , ⋯ , m \mathcal G_i(x) \leq 0 \quad i=1,2,\cdots,m Gi(x)0i=1,2,,m
这种描述明显是:关于函数 G i ( x ) \mathcal G_i(x) Gi(x)在水平值 a = 0 a=0 a=0处的水平集 L i ; 0 \mathcal L_{i;0} Li;0
关于水平集的概念,详见凸函数:定义与基本性质。
L i ; 0 = { x ∣ G i ( x ) ≤ 0 , x ∈ R n ; i = 1 , 2 , ⋯ , m } \mathcal L_{i;0} = \{x \mid \mathcal G_i(x) \leq 0,x \in \mathbb R^n;i=1,2,\cdots,m\} Li;0={xGi(x)0,xRn;i=1,2,,m}
根据水平集的定义:如果 G i ( x ) , i = 1 , 2 , ⋯ , m \mathcal G_i(x),i=1,2,\cdots,m Gi(x),i=1,2,,m凸函数,那么其对应的水平集 L i ; 0 , i = 1 , 2 , ⋯ , m \mathcal L_{i;0},i=1,2,\cdots,m Li;0,i=1,2,,m必然是凸集。而 m m m个不等式约束对应的结果是 m m m个水平集的交集,而该交集必然也是凸集
关于凸集的交集也是凸集同样见上述链接几种保持函数凸性的运算

同样,观察等式约束函数 H j ( x ) , j = 1 , 2 , ⋯ , l \mathcal H_j(x),j=1,2,\cdots,l Hj(x),j=1,2,,l,如果它们是线性函数
H j ( x ) : A j T x + b j = 0 j = 1 , 2 , ⋯ , l \mathcal H_j(x):\mathcal A_j^T x + b_j = 0 \quad j=1,2,\cdots,l Hj(x):AjTx+bj=0j=1,2,,l
而线性函数同样是凸函数,因而等式约束函数描述的集合同样也是凸集。从而在上述两类约束条件下的可行域 S \mathcal S S也必然是凸集。根据凸集的简单认识中介绍的:凸优化问题与凸集合凸函数的关系中的两个条件:

  • 目标函数 f ( x ) f(x) f(x)是一个凸函数
  • x x x可行域 S ⇒ x ∈ S \mathcal S \Rightarrow x \in \mathcal S SxS是一个凸集

满足条件的最优化问题才属于凸优化问题。

相反,如果目标函数 f ˉ ( x ) \bar{f}(x) fˉ(x)描述为: max ⁡ f ˉ ( x ) \max \bar{f}(x) maxfˉ(x),想要将其转化为凸优化问题,我们需要判定: f ˉ ( x ) \bar{f}(x) fˉ(x)是否为凹函数。如果 f ˉ ( x ) \bar{f}(x) fˉ(x)是凹函数,可以将其转化为相应凸函数的优化问题
关于凹函数,同样见凸函数:定义与基本性质
max ⁡ f ˉ ( x ) ⇔ min ⁡ − f ˉ ( x ) \max \bar{f}(x) \Leftrightarrow \min - \bar{f}(x) maxfˉ(x)minfˉ(x)

凸优化定义:示例

观察:下面的最优化问题是否为凸优化问题 ? ? ?
{ min ⁡ f ( x ) = x 1 2 + x 2 2 s.t.  { G ( x ) = x 1 1 + x 2 2 ≤ 0 H ( x ) = ( x 1 + x 2 ) 2 = 0 \begin{cases} \min f(x) = x_1^2 + x_2^2 \\ \text{s.t. } \begin{cases} \begin{aligned} \mathcal G(x) & = \frac{x_1}{1 + x_2^2} \leq 0 \\ \mathcal H(x) & = (x_1 + x_2)^2 = 0 \end{aligned} \end{cases} \end{cases} minf(x)=x12+x22s.t.  G(x)H(x)=1+x22x10=(x1+x2)2=0

  • 首先,观察到该最优化问题是最小化问题,并且目标函数 f ( x ) = x 1 2 + x 2 2 f(x) = x_1^2 + x_2^2 f(x)=x12+x22凸函数
    该函数对应决策变量 x x x Hessian Matrix ⇒ ∇ 2 f ( x ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(x) Hessian Matrix2f(x)是固定结果: ( 2 0 0 2 ) \begin{pmatrix}2 \quad 0 \\ 0 \quad 2\end{pmatrix} (2002),它是一个正定矩阵(凸函数的二阶条件)
  • 观察不等式约束 G ( x ) = x 1 1 + x 2 2 \begin{aligned}\mathcal G(x) = \frac{x_1}{1 + x_2^2}\end{aligned} G(x)=1+x22x1,从表面上看:它并不是一个凸函数。但我们可以推出如下表达:
    由于分母 1 + x 2 2 > 0 1 +x_2^2 > 0 1+x22>0恒成立,因此只需要观察分子的符号即可。
    G ( x ) = x 1 1 + x 2 2 ≤ 0 ⇔ x 1 ≤ 0 ⇒ G ˉ ( x ) = x 1 \mathcal G(x) = \frac{x_1}{1 + x_2^2} \leq 0 \Leftrightarrow x_1 \leq 0 \Rightarrow \bar{\mathcal G}(x) = x_1 G(x)=1+x22x10x10Gˉ(x)=x1
    G ˉ ( x ) = x 1 \bar{\mathcal G}(x) = x_1 Gˉ(x)=x1线性函数,自然也是凸函数
  • 观察等式约束 H ( x ) = ( x 1 + x 2 ) 2 = 0 \mathcal H(x) = (x_1 + x_2)^2 = 0 H(x)=(x1+x2)2=0,很明显它不是线性函数。但我们同样可以推出如下表达:
    H = ( x 1 + x 2 ) 2 = 0 ⇔ x 1 + x 2 = 0 ⇒ H ˉ ( x ) = x 1 + x 2 \mathcal H = (x_1 + x_2)^2 =0 \Leftrightarrow x_1 + x_2 = 0 \Rightarrow \bar{\mathcal H}(x) = x_1 + x_2 H=(x1+x2)2=0x1+x2=0Hˉ(x)=x1+x2
    H ˉ ( x ) \bar{\mathcal H}(x) Hˉ(x)是线性函数。综上,该示例描述的最优化问题是凸优化问题
    关于约束条件,可能并不是上来直接用,能够化简的部分需要进行化简。

凸优化与非凸优化问题的区分

凸集的简单认识中,介绍了凸优化相关的两个优秀性质

局部最优解即全局最优解

关于局部最优解 x ˉ \bar{x} xˉ的定义表示为:
f ( x ˉ ) ≤ f ( x ) ∀ ∈ S ∩ N ϵ ( x ˉ ) f(\bar{x}) \leq f(x) \quad \forall \in \mathcal S \cap \mathcal N_{\epsilon}(\bar {x}) f(xˉ)f(x)SNϵ(xˉ)
其中 N ϵ ( x ˉ ) \mathcal N_{\epsilon}(\bar{x}) Nϵ(xˉ)表示包含 x ˉ \bar{x} xˉ的小的邻域范围。也就是说:仅在较小的邻域范围 S ∩ N ϵ ( x ˉ ) \mathcal S \cap \mathcal N_{\epsilon}(\bar{x}) SNϵ(xˉ)内,某可行解 x ˉ \bar{x} xˉ的目标函数值 ≤ \leq 所有目标函数值,称可行解 x ˉ \bar{x} xˉ局部最优解
相反,关于全局最优解 x ∗ x^* x的定义表示为:
f ( x ∗ ) ≤ f ( x ) ∀ x ∈ S f(x^*) \leq f(x) \quad \forall x \in \mathcal S f(x)f(x)xS
也就是说:在整个可行域 S \mathcal S S范围内,某可行解 x ∗ x^* x的目标函数值 ≤ \leq 所有目标函数值。称可行解 x ∗ x^* x全局最优解

回到凸优化问题上:如果在 S \mathcal S S中找到某一个局部最优解,那么该解一定也是全局最优解

(反证法)证明

  • 假设找到某个解 x ˉ \bar{x} xˉ是局部最优解,但不是全局最优解,可以推出:必然存在某个解 x ∗ ∈ S x^* \in \mathcal S xS,有:
    如果不存在,这个局部解就是全局解~
    f ( x ∗ ) < f ( x ˉ ) f(x^*) < f(\bar{x}) f(x)<f(xˉ)
  • x ˉ \bar{x} xˉ开始,沿着 x ∗ − x ˉ x^* - \bar{x} xxˉ方向前进一个小的步长,得到一个新的点 x ˉ + λ ⋅ ( x ∗ − x ˉ ) , λ ∈ ( 0 , 1 ) \bar {x} + \lambda \cdot (x^* - \bar{x}),\lambda \in (0,1) xˉ+λ(xxˉ),λ(0,1),它的目标函数结果: f [ x ˉ + λ ⋅ ( x ∗ − x ˉ ) ] f[\bar{x} + \lambda \cdot (x^* - \bar{x})] f[xˉ+λ(xxˉ)]可表示为:
    可以将 x ˉ + λ ⋅ ( x ∗ − x ˉ ) = ( 1 − λ ) ⋅ x ˉ + λ ⋅ x ∗ \bar{x} + \lambda \cdot (x^* - \bar{x}) = (1 - \lambda) \cdot \bar{x} + \lambda \cdot x^* xˉ+λ(xxˉ)=(1λ)xˉ+λx重新组合,可看作点 x ˉ , x ∗ \bar{x},x^* xˉ,x凸组合
    将上面的 f ( x ∗ ) < f ( x ˉ ) f(x^*) <f(\bar{x}) f(x)<f(xˉ)代入。
    f [ λ ⋅ x ∗ + ( 1 − λ ) ⋅ x ˉ ] ≤ λ ⋅ f ( x ∗ ) + ( 1 − λ ) ⋅ f ( x ˉ ) < λ ⋅ f ( x ˉ ) + ( 1 − λ ) ⋅ f ( x ˉ ) = f ( x ˉ ) \begin{aligned} f[\lambda \cdot x^* + (1 - \lambda) \cdot \bar{x}] & \leq \lambda \cdot f(x^*) + (1 - \lambda) \cdot f(\bar{x}) \\ & < \lambda \cdot f(\bar{x}) + (1 - \lambda) \cdot f(\bar{x}) \\ & = f(\bar{x}) \end{aligned} f[λx+(1λ)xˉ]λf(x)+(1λ)f(xˉ)<λf(xˉ)+(1λ)f(xˉ)=f(xˉ)
  • 可以发现:无论 λ \lambda λ如何取值, f [ x ˉ + λ ⋅ ( x ∗ − x ˉ ) ] < f ( x ˉ ) f[\bar{x} + \lambda \cdot (x^* - \bar{x})] < f(\bar{x}) f[xˉ+λ(xxˉ)]<f(xˉ)恒成立。如果 λ ⇒ 0 \lambda \Rightarrow 0 λ0,小到 x ˉ + λ ⋅ ( x ∗ − x ˉ ) \bar{x} + \lambda \cdot (x^* - \bar{x}) xˉ+λ(xxˉ)位于局部最优解邻域 N ϵ ( x ˉ ) \mathcal N_{\epsilon}(\bar{x}) Nϵ(xˉ)内,会出现矛盾: x ˉ \bar{x} xˉ是该邻域内的最优解,但存在另一个解 x ˉ + λ ⋅ ( x ∗ − x ˉ ) \bar{x} +\lambda \cdot (x^* - \bar{x}) xˉ+λ(xxˉ),其函数值小于 f ( x ˉ ) f(\bar{x}) f(xˉ),这意味着: x ˉ \bar{x} xˉ不是该邻域内的最优解。至此,得证:如过 x ˉ \bar{x} xˉ是局部最优解,那么它一定是全局最优解

凸优化问题的最优性条件

什么样的解是凸优化问题的最优解 ? ? ?关于最优解有如下充要条件
x ∗ ∈ S is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 ∀ x ∈ S x^* \in \mathcal S \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T (x - x^*) \geq 0 \quad \forall x \in \mathcal S xS is Optimal [f(x)]T(xx)0xS
为什么满足该充要条件就一定是最优解 ? ? ?证明如下:
充分性:已知某解 x ∗ x^* x满足 [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 , ∀ x ∈ S [\nabla f(x^*)]^T(x - x^*) \geq 0,\forall x \in \mathcal S [f(x)]T(xx)0,xS

  • 观察 f ( x ) f(x) f(x) f ( x ∗ ) + [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) , ∀ x ∈ S f(x^*) + [\nabla f(x^*)]^T(x - x^*),\forall x \in \mathcal S f(x)+[f(x)]T(xx),xS两者之间的大小关系。必然有:

    • 其中不等式右侧描述:过 [ x ∗ , f ( x ∗ ) ] [x^*,f(x^*)] [x,f(x)]点并与凸函数 f ( ⋅ ) f(\cdot) f()相切的直线。根据凸函数的定义,函数图像必然全部在切线上方。
    • 又根据上述条件,必然有: f ( x ∗ ) + [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ f ( x ∗ ) f(x^*) + [\nabla f(x^*)]^T(x - x^*) \geq f(x^*) f(x)+[f(x)]T(xx)f(x)

    f ( x ) ≥ f ( x ∗ ) + [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ f ( x ∗ ) f(x) \geq f(x^*) + [\nabla f(x^*)]^T (x - x^*) \geq f(x^*) f(x)f(x)+[f(x)]T(xx)f(x)

  • 总上,对于 x ∈ S x \in \mathcal S xS,都有上述式子 f ( x ) ≥ f ( x ∗ ) f(x) \geq f(x^*) f(x)f(x)成立,因而 x ∗ x^* x全局最优解

必要性:已知某解 x ∗ x^* x全局最优解。(反证法)证明

  • 假设 ∃ x ˉ ∈ S \exist \bar{x} \in \mathcal S xˉS,使得: [ ∇ f ( x ∗ ) ] T ( x ˉ − x ∗ ) < 0 [\nabla f(x^*)]^T(\bar{x} - x^*) < 0 [f(x)]T(xˉx)<0
  • 基于上述假设,以 x ∗ x^* x为起始,向 x ˉ \bar{x} xˉ方向移动一个较小距离 λ ⋅ ( x ˉ − x ∗ ) , λ ∈ ( 0 , 1 ) \lambda \cdot (\bar{x} - x^*),\lambda \in (0,1) λ(xˉx),λ(0,1),观察函数值从 f ( x ∗ ) f(x^*) f(x) f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] f[x^* + \lambda \cdot (\bar{x} - x^*)] f[x+λ(xˉx)]的变化情况。这里使用泰勒公式 f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] f[x^* + \lambda \cdot (\bar{x} - x^*)] f[x+λ(xˉx)] x ∗ x^* x处进行展开:
    其中 O ( ⋅ ) \mathcal O(\cdot) O()表示高阶无穷小。
    f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] = f ( x ∗ ) + 1 1 ! ⋅ λ [ ∇ f ( x ∗ ) ] T ( x ˉ − x ∗ ) + O ( λ ∣ ∣ x ˉ − x ∗ ∣ ∣ ) λ ∈ ( 0 , 1 ) f[x^* + \lambda \cdot(\bar{x} - x^*)] = f(x^*) + \frac{1}{1 !} \cdot \lambda [\nabla f(x^*)]^T(\bar{x} - x^*) +\mathcal O(\lambda ||\bar{x} - x^*||) \quad \lambda \in (0,1) f[x+λ(xˉx)]=f(x)+1!1λ[f(x)]T(xˉx)+O(λ∣∣xˉx∣∣)λ(0,1)
    整理得:
    f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] − f ( x ∗ ) λ = [ ∇ f ( x ∗ ) ] T ( x ˉ − x ∗ ) + O ( λ ⋅ ∣ ∣ x ˉ − x ∗ ∣ ∣ ) λ \frac{f[x^* + \lambda \cdot (\bar{x} - x^*)] - f(x^*)}{\lambda} = [\nabla f(x^*)]^T(\bar{x} - x^*) + \frac{\mathcal O(\lambda \cdot ||\bar{x} - x^*||)}{\lambda} λf[x+λ(xˉx)]f(x)=[f(x)]T(xˉx)+λO(λ∣∣xˉx∣∣)
    λ ⇒ 0 \lambda \Rightarrow 0 λ0时,等式右侧的符号由 [ ∇ f ( x ∗ ) ] T ( x ˉ − x ∗ ) [\nabla f(x^*)]^T(\bar{x} - x^*) [f(x)]T(xˉx)控制 < 0 <0 <0;等式左侧自然也 < 0 <0 <0
    关于高阶无穷小: O ( λ ⋅ ∣ ∣ x ˉ − x ∗ ∣ ∣ ) λ \begin{aligned}\frac{\mathcal O(\lambda \cdot ||\bar{x} - x^*||)}{\lambda}\end{aligned} λO(λ∣∣xˉx∣∣) λ ⇒ 0 \lambda \Rightarrow 0 λ0时,分子趋于 0 0 0的速度更快。因而 lim ⁡ λ ⇒ 0 O ( λ ⋅ ∣ ∣ x ˉ − x ∗ ∣ ∣ ) λ = 0 \begin{aligned}\mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{\mathcal O(\lambda \cdot ||\bar{x} - x^*||)}{\lambda} = 0\end{aligned} λ0limλO(λ∣∣xˉx∣∣)=0
    lim ⁡ λ ⇒ 0 f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] − f ( x ∗ ) λ < 0 ⇒ lim ⁡ λ ⇒ 0 f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] − f ( x ∗ ) < 0 \mathop{\lim}\limits_{\lambda \Rightarrow 0} \frac{f[x^* + \lambda \cdot (\bar{x} - x^*)] - f(x^*)}{\lambda} <0 \Rightarrow \mathop{\lim}\limits_{\lambda \Rightarrow 0} f[x^* + \lambda \cdot(\bar{x} - x^*)] - f(x^*) <0 λ0limλf[x+λ(xˉx)]f(x)<0λ0limf[x+λ(xˉx)]f(x)<0
    这意味着:存在一点 x ∗ + λ ⋅ ( x ˉ − x ∗ ) x^* + \lambda \cdot(\bar{x} - x^*) x+λ(xˉx),其函数值 f [ x ∗ + λ ⋅ ( x ˉ − x ∗ ) ] < f ( x ∗ ) f[x^* + \lambda \cdot(\bar{x} - x^*)] < f(x^*) f[x+λ(xˉx)]<f(x)。也就是说: x ∗ x^* x不是全局最优解。这与条件相矛盾,证毕。

关于凸优化问题最优性条件几何解释

对上述最优性条件变换成如下形式:
x ∗ ∈ S is Optimal  ⇔ − [ ∇ f ( x ∗ ) ] T x ∗ ≥ − [ ∇ f ( x ∗ ) ] T x ∀ x ∈ S x^* \in \mathcal S \text{ is Optimal } \Leftrightarrow - [\nabla f(x^*)]^T x^* \geq - [\nabla f(x^*)]^T x \quad \forall x \in \mathcal S xS is Optimal [f(x)]Tx[f(x)]TxxS
根据凸集的支撑超平面定理,如果 − [ ∇ f ( x ∗ ) ] ≠ 0 -[\nabla f(x^*)] \neq 0 [f(x)]=0,则可以找到 x ∗ x^* x为边界点,并垂直于向量 − [ ∇ f ( x ∗ ) ] -[\nabla f(x^*)] [f(x)]的超平面,使该超平面支撑凸集 S \mathcal S S。而 − [ ∇ f ( x ∗ ) ] -[\nabla f(x^*)] [f(x)]作为负梯度方向,必然有: ∀ x ∈ S , s.t.  − [ ∇ f ( x ∗ ) ] ( x − x ∗ ) ≤ 0 \forall x \in \mathcal S,\text{ s.t. }-[\nabla f(x^*)](x - x^*) \leq 0 xS, s.t. [f(x)](xx)0。对应图像表示如下:

  • 其中支撑超平面定理是凸集的自身性质。
  • 也就是说:向量 − [ ∇ f ( x ∗ ) ] -[\nabla f(x^*)] [f(x)]与向量 x − x ∗ x -x^* xx之间的夹角 ≥ 9 0 。 \geq 90^。 90恒成立。
    凸优化问题最优性条件的几何解释

个人深度思考:上述最优性条件成立建立在 − [ ∇ f ( x ∗ ) ] ≠ 0 -[\nabla f(x^*)] \neq 0 [f(x)]=0的情况下,如果 − [ ∇ f ( x ∗ ) ] = 0 - [\nabla f(x^*)] =0 [f(x)]=0时,有: ∀ x ∈ S , [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 \forall x \in \mathcal S,[\nabla f(x^*)]^T (x - x^*) \geq 0 xS,[f(x)]T(xx)0恒成立。也就是说:在凸集中的任意一点,都可以满足该条件。在迭代寻找最优解的过程中,如果 − [ ∇ f ( x ∗ ) ] = 0 -[\nabla f(x^*)] = 0 [f(x)]=0,可能会选择错误的方向

什么时候会出现这种情况:梯度消失的时候。也就是说:如果出现梯度消失的情况下,在迭代寻找最优解的过程中,可能会选择错误的方向。最终找到的最优解可能并不是凸集的某个边界点,而是某个内点
当然,如果选择的点是内点并且目标函数结果又返回至较大的情况,此时的梯度又存在了,会继续重新收敛至最优解。这里只是描述出现的这种反弹现象。

几种特殊凸问题的最优性条件

无约束凸优化

无约束凸优化问题:在目标函数 f ( ⋅ ) f(\cdot) f()是凸函数的条件下, x ∈ R n x \in \mathbb R^n xRn,关于 min ⁡ f ( x ) \min f(x) minf(x)最优性条件表示如下:
x ∗ is Optimal  ⇔ ∇ f ( x ∗ ) = 0 x^* \text{ is Optimal } \Leftrightarrow \nabla f(x^*) = 0 x is Optimal f(x)=0
如果将该问题带入凸优化问题最优性条件中,可以得到:
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 , ∀ x ∈ R n ⇔ ∇ f ( x ∗ ) = 0 x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T(x - x^*) \geq 0,\forall x \in \mathbb R^n \Leftrightarrow \nabla f(x^*) = 0 x is Optimal [f(x)]T(xx)0,xRnf(x)=0
可以理解为: ∀ x ∈ R n \forall x \in \mathbb R^n xRn构成的向量 x − x ∗ x - x^* xx均满足 [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 [\nabla f(x^*)]^T(x - x^*) \geq 0 [f(x)]T(xx)0,由于 x − x ∗ x - x^* xx结果可以是任意方向,因而只存在一种情况: ∇ f ( x ) \nabla f(x) f(x)是零向量
这里需要与上面描述的梯度消失的情况区分一下。上述的最优性条件必须满足可行域 S \mathcal S S是凸集。如果在 S \mathcal S S是凸集情况下, ∇ f ( x ∗ ) = 0 \nabla f(x^*) =0 f(x)=0会导致无法找到 x ∗ x^* x位置下关于凸集 S \mathcal S S的支撑超平面;相反,在无约束凸优化问题中,对可行域 S \mathcal S S没有约束

等式约束凸优化

等式约束的凸优化问题:在目标函数 f ( ⋅ ) f(\cdot) f()是凸函数的条件下,关于 min ⁡ { f ( x ) ∣ A x = b } \min \{f(x) \mid \mathcal A x = b\} min{f(x)Ax=b}最优性条件表示如下:
关于凸优化问题的等式约束函数是线性函数
x ∗ is Optimal  ⇔ ∃ μ , s.t.  ∇ f ( x ∗ ) + A T μ = 0 , A x ∗ = 0 x^* \text{ is Optimal } \Leftrightarrow \exist \mu, \text{ s.t. } \nabla f(x^*) + \mathcal A^T \mu = 0,\mathcal A x^* = 0 x is Optimal μ, s.t. f(x)+ATμ=0,Ax=0
证明
如果 x ∗ x^* x全局最优解,必然有:
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 ∀ x : A x = b , A x ∗ = b x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T(x - x^*) \geq 0 \quad \forall x:\mathcal Ax = b,\mathcal Ax^* = b x is Optimal [f(x)]T(xx)0x:Ax=b,Ax=b
根据 A x = A x ∗ = b \mathcal Ax = \mathcal Ax^* = b Ax=Ax=b,因而有: A ( x − x ∗ ) = b − b = 0 \mathcal A(x - x^*) = b - b =0 A(xx)=bb=0。记向量 d = x − x ∗ d = x - x^* d=xx,从而有:
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T d ≥ 0 ∀ d : A d = 0 x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T d \geq 0 \quad \forall d:\mathcal Ad = 0 x is Optimal [f(x)]Td0d:Ad=0
很明显, A d = 0 \mathcal Ad =0 Ad=0是一个齐次线性方程组,可以将 d d d描述为: A x = 0 \mathcal Ax = 0 Ax=0解集中的一个解。即: d ∈ N ( A ) d \in \mathcal N(\mathcal A) dN(A)
其中 N ( A ) \mathcal N(\mathcal A) N(A)表示系数矩阵 A \mathcal A A的零空间。
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T d ≥ 0 ∀ d ∈ N ( A ) x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T d \geq 0 \quad \forall d \in \mathcal N(\mathcal A) x is Optimal [f(x)]Td0dN(A)
发现这样一个现象:如果 d ∈ N ( A ) d \in \mathcal N(\mathcal A) dN(A)那么 − d ∈ N ( A ) ⇒ − A d = 0 -d \in \mathcal N(\mathcal A) \Rightarrow -\mathcal Ad = 0 dN(A)Ad=0,将 d , − d d,-d d,d都带入上式中:
{ [ ∇ f ( x ∗ ) ] T d ≥ 0 [ ∇ f ( x ∗ ) ] T ( − d ) ≥ 0 ⇒ [ ∇ f ( x ∗ ) ] T d ≤ 0 \begin{cases} [\nabla f(x^*)]^Td \geq 0 \\ [\nabla f(x^*)]^T(-d) \geq 0 \Rightarrow [\nabla f(x^*)]^T d \leq 0 \end{cases} {[f(x)]Td0[f(x)]T(d)0[f(x)]Td0
也就是说:关于 [ ∇ f ( x ∗ ) ] T d [\nabla f(x^*)]^T d [f(x)]Td可行域 d ∈ N ( A ) d \in \mathcal N(\mathcal A) dN(A)只能取等
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T d = 0 ∀ d ∈ N ( A ) x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T d = 0 \quad \forall d \in \mathcal N(\mathcal A) x is Optimal [f(x)]Td=0dN(A)
这意味着:向量 ∇ f ( x ∗ ) \nabla f(x^*) f(x) N ( A ) \mathcal N(\mathcal A) N(A)中的任意解向量 d d d均是垂直关系,即向量 ∇ f ( x ∗ ) \nabla f(x^*) f(x) N ( A ) \mathcal N(\mathcal A) N(A)垂直
x ∗ is Optimal  ⇔ ∇ f ( x ∗ ) ∈ N ( A ) ⊥ x^* \text{ is Optimal } \Leftrightarrow \nabla f(x^*) \in \mathcal N(\mathcal A)^{\bot} x is Optimal f(x)N(A)
对应图像表示如下:
其中 [ ∇ f ( x ∗ ) ] T d = ∥ ∇ f ( x ∗ ) ∥ ⋅ ∥ d ∥ ⋅ cos ⁡ θ = 0 → cos ⁡ θ = 0 [\nabla f(x^*)]^Td = \|\nabla f(x^*)\| \cdot \|d\| \cdot \cos \theta = 0\rightarrow \cos \theta = 0 [f(x)]Td=∥∇f(x)dcosθ=0cosθ=0
垂直描述
因而 ∇ f ( x ∗ ) \nabla f(x^*) f(x)必然能够表达为系数矩阵 A \mathcal A A行向量的线性组合。对应数学符号表示为:
这实际上就是 KKT \text{KKT} KKT条件在等式约束凸问题的具体化。后续有机会介绍~
x ∗ is Optimal  ⇔ ∇ f ( x ∗ ) + A T μ = 0 x^* \text{ is Optimal } \Leftrightarrow \nabla f(x^*) + \mathcal A^T \mu = 0 x is Optimal f(x)+ATμ=0

非负约束凸优化

基于非负约束的凸优化问题:在目标函数 f ( ⋅ ) f(\cdot) f()是凸函数的条件下,关于 min ⁡ { f ( x ) ∣ x ≥ 0 } \min\{f(x) \mid x \geq 0\} min{f(x)x0}最优性条件表示如下:
x ∗ is Optimal  ⇔ ∇ f ( x ∗ ) i ⋅ x i ∗ = 0 x ∗ ≥ 0 ; ∇ f ( x ∗ ) ≥ 0 x^* \text{ is Optimal } \Leftrightarrow \nabla f(x^*)_i \cdot x_i^* = 0\quad x^* \geq 0;\nabla f(x^*) \geq 0 x is Optimal f(x)ixi=0x0;f(x)0
证明:依然根据凸优化问题的最优性条件,有:
其中 x ∗ x^* x作为可行域内的最优解,必然也满足 x ∗ ≥ 0 x^* \geq 0 x0
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T ( x − x ∗ ) ≥ 0 ∀ x ≥ 0 ; x ∗ ≥ 0 x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T (x - x^*) \geq 0 \quad \forall x \geq 0;x^* \geq 0 x is Optimal [f(x)]T(xx)0x0;x0
将上式展开,整理有:
x ∗ is Optimal  ⇔ [ ∇ f ( x ∗ ) ] T x ≥ [ ∇ f ( x ∗ ) ] T x ∗ ∀ x ≥ 0 ; x ∗ ≥ 0 x^* \text{ is Optimal } \Leftrightarrow [\nabla f(x^*)]^T x \geq [\nabla f(x^*)]^T x^* \quad \forall x \geq 0;x^* \geq 0 x is Optimal [f(x)]Tx[f(x)]Txx0;x0
观察上式: ∀ x ≥ 0 \forall x \geq 0 x0,并满足: [ ∇ f ( x ∗ ) ] T x ≥ [ ∇ f ( x ∗ ) ] T x ∗ [\nabla f(x^*)]^T x \geq [\nabla f(x^*)]^T x^* [f(x)]Tx[f(x)]Tx,必然有:

  • 解释:如果 ∇ f ( x ∗ ) \nabla f(x^*) f(x)中存在某一个/若干个分量 < 0 <0 <0,在执行线性运算 [ ∇ f ( x ∗ ) ] T x [\nabla f(x^*)]^Tx [f(x)]Tx时,由于 x x x可在 x ≥ 0 x\geq 0 x0范围内任意取值,假设 x x x中对应上述 ∇ f ( x ∗ ) \nabla f(x^*) f(x)分量 < 0 <0 <0的分量位置是 + ∞ +\infty +,那么 [ ∇ f ( x ∗ ) ] T x [\nabla f(x^*)]^Tx [f(x)]Tx的结果必然是 − ∞ -\infty 。这是可能发生的结果。但该结果可能不满足 [ ∇ f ( x ∗ ) ] T x ≥ [ ∇ f ( x ∗ ) ] T x ∗ [\nabla f(x^*)]^T x \geq [\nabla f(x^*)]^T x^* [f(x)]Tx[f(x)]Tx。因此: ∇ f ( x ∗ ) ≥ 0 \nabla f(x^*) \geq 0 f(x)0必须成立
  • x = 0 x = 0 x=0时,必然也满足: [ ∇ f ( x ∗ ) ] T x ∗ ≤ [ ∇ f ( x ∗ ) ] ⋅ 0 = 0 [\nabla f(x^*)]^Tx^* \leq [\nabla f(x^*)] \cdot 0 = 0 [f(x)]Tx[f(x)]0=0
    x ∗ is Optimal  ⇔ { ∇ f ( x ∗ ) ≥ 0 ; x ∗ ≥ 0 [ ∇ f ( x ∗ ) ] T x ∗ ≤ 0 x^* \text{ is Optimal } \Leftrightarrow \begin{cases} \nabla f(x^*) \geq 0;x^* \geq 0 \\ [\nabla f(x^*)]^T x^* \leq 0 \end{cases} x is Optimal {f(x)0;x0[f(x)]Tx0

继续观察上式:在 ∇ f ( x ∗ ) , x ∗ ≥ 0 \nabla f(x^*),x^* \geq 0 f(x),x0情况下, [ ∇ f ( x ∗ ) ] T x ∗ ≤ 0 [\nabla f(x^*)]^T x^* \leq 0 [f(x)]Tx0。因此只有一种情况
x ∗ is Optimal  ⇔ { ∇ f ( x ∗ ) ≥ 0 ; x ∗ ≥ 0 [ ∇ f ( x ∗ ) ] T x ∗ = 0 x^* \text{ is Optimal } \Leftrightarrow \begin{cases} \nabla f(x^*) \geq 0;x^* \geq 0 \\ [\nabla f(x^*)]^T x^* = 0 \end{cases} x is Optimal {f(x)0;x0[f(x)]Tx=0
这意味着:线性运算 [ ∇ f ( x ∗ ) ] T x [\nabla f(x^*)]^T x [f(x)]Tx过程执行加法运算的每一个分量 ∇ f ( x ∗ ) i ⋅ x i ( i = 1 , 2 , ⋯ , n ) \nabla f(x^*)_i \cdot x_i(i=1,2,\cdots,n) f(x)ixi(i=1,2,,n)均为 0 0 0
相反,如果存在某分量乘积结果 ∇ f ( x ∗ ) k ⋅ x k ∗ > 0 ( k ∈ { 1 , 2 , ⋯ , n } ) \nabla f(x^*)_k \cdot x_k^*> 0(k \in \{1,2,\cdots,n\}) f(x)kxk>0(k{1,2,,n})最终的 [ ∇ f ( x ∗ ) ] T x [\nabla f(x^*)]^T x [f(x)]Tx结果必然 > 0 >0 >0,不满足上述条件。

证毕。

Reference \text{Reference} Reference
最优化理论与方法-第四讲-凸优化问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/123819.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows打包uniapp应用p12证书和证书profile文件的制作方法

参考文章1&#xff1a; uniapp打包ios app所需的证书的制作流程-腾讯云开发者社区-腾讯云使用uniapp进行开发&#xff0c;既可以打包小程序&#xff0c;也可以打包app&#xff0c;假如需要打包app&#xff0c;需要p12格式的证书和一个证书profile文件&#xff0c;这个在uniapp…

php - fpm 请求达到max_children最大值后,新进入的请求工作流程

前言 偶然之间想了解下&#xff0c;php-fpm 请求达到max_children最大值后&#xff0c;新进入的请求怎么办&#xff1f;是抛出502还是等待前面的请求完成后&#xff0c;再将请求交给处理完毕的进程处理呢。 准备工作 运行环境&#xff1a;LNMP php 版本&#xff1a;php8.1 …

Elasticsearch:自动使用服务器时间设置日期字段并更新时区

在大多数情况下&#xff0c;你的数据包含一个以 create_date 命名的字段。 即使没有日期字段&#xff0c;处理各种格式和时区的日期对数据仓库来说也是一个重大挑战。 与此类似&#xff0c;如果要检测变化的数据&#xff0c;则必须准确设置日期字段。 在 Elasticsearch 中还有…

OJ练习第165题——修车的最少时间

修车的最少时间 力扣链接&#xff1a;2594. 修车的最少时间 题目描述 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars &#xff0c;表示总…

《TCP/IP网络编程》阅读笔记--getsockopt和setsockopt的使用

目录 1--Socket的多种可选项 2--getsocketopt() 3--setsockopt() 4--代码实例 1--Socket的多种可选项 Socket 拥有多种可选项&#xff0c;其可分为 SOL_SOCKET 层&#xff0c;IPPROTO_IP 层和IPPROTO_TCP 层等&#xff0c;一般通过 getsocketopt() 和 setsockopt() 函数进行…

python趣味编程-太空入侵者游戏

在 Python 中使用 Turtle 的简单太空入侵者游戏免费源代码 使用 Turtle 的简单太空入侵者游戏是一个用Python编程语言编码的桌面游戏应用程序。该项目包含克隆实际太空入侵者游戏的多种功能。该项目可以使正在学习计算机相关课程的学生受益。该应用程序易于学习,可以帮助您发现…

入行测试一年半的心得体会

成为xx一员测试已经有1年半了&#xff0c;一直没有真正坐下来花些时间将自己的思路理清一下。刚好近期公司落地了OKR&#xff0c;给自己制定了OKR之后思路终于开始清晰起来&#xff0c;朦朦胧胧地开始看清了远方的路&#xff0c;麻着胆子分析一下自己&#xff0c;毕竟摸黑走路的…

程序分区:全局区、常量区、栈区、堆区、代码区

#include <iostream> using namespace std; //全局变量 int g_a 10; int g_b 10; //全局常量 const int c_g_a 10; const int c_g_b 10;int main() { //局部变量 int a 10; int b 10; //打印地址 cout << "局部变量a地址为&#xff1a; " <…

云原生架构如何助力大数据和AI技术在软件开发中的深度整合

文章目录 1. 云原生架构简介2. 大数据与云原生的融合a. 弹性计算和存储b. 容器化大数据应用c. 数据湖和数据仓库 3. AI与云原生的深度融合a. 弹性AI模型训练b. 容器化AI应用c. 自动化部署和监控 4. 对软件开发的影响a. 更快的开发周期b. 更低的成本c. 更高的灵活性和可伸缩性 5…

OpenCL编程指南-10.1C++包装器API

C包装器API概述 CAPI划分为多个类&#xff0c;分别映射到一个OpenCL C类型&#xff0c;例如&#xff0c;cl::Memory类就映射到OpenCL C中的cl_mem。不过&#xff0c;C API会尽可能使用继承提供额外的一层类型抽象&#xff1b;例如&#xff0c;类cl::Buffer派生自基类cl::Memor…

h5开发网站-使用jquery来实现二层嵌套的左侧列表,点击后显示右侧内容的效果

一、需求&#xff1a; 使用jquery来实现二层嵌套的左侧列表&#xff0c;点击后显示右侧内容的效果。 二、思路&#xff1a; 为一级列表项和二级子列表项分别添加了点击事件处理程序。当一级列表项被点击时&#xff0c;使用.slideToggle()方法展开或收起对应的二级子列表项。…

Unity项目包体优化经验方法论(Android平台)

前言 本篇文章主要讲解对于Unity Android平台也就是APK包体的优化经验&#xff0c;使用哪些工具能够更加便利的定位资源重灾区。本篇讲解的方法中对于Unity资源使用的AssetBundle的方式&#xff0c;如果使用addressable或其他资源管理方式&#xff0c;我还不是很清楚是否适用&…

Midjourney学习(四)光源类型prompt

序号类别光线名称英文名称描述用途示例1光线质地硬光Hard Light直接照射在主题上&#xff0c;产生明显的阴影和高对比度。强调轮廓&#xff0c;增加照片的戏剧性2光线质地软光/柔光Soft Light光线经过散射或扩散&#xff0c;产生柔和的阴影和低对比度。平滑细节&#xff0c;适合…

SQL注入案例

目录 一、简介 二、案例 1.发现注入点 2.寻找注入类型 3.寻找字段数 4.将传参值设为超出数据量的大值&#xff0c;联合查询找到回显位置 5.找到数据库 6.寻找库中的表 7.寻找表中列 8.查看表中数据 附&#xff1a;SQLMap注入 1.输入指令查数据库 2.输入指令查表 3…

物联网智慧种植农业大棚系统

一、项目背景 智慧农业是是将物联网技术和农业生产箱管理的新型农业&#xff0c;依托部署在农业生产现场的各种传感节点&#xff0c;以物联网网关为通道形成数据传输网络&#xff0c;可以实现控制柜、环境监测传感器、气象监测机器等设备的远程监控&#xff0c;达到及时高校的…

git:亲测体验rebase与merge

rebase与merge异同与最佳使用场景[1] 这个dev-cui分支从devlop分支切出后,一直都只有我一个人在开发&维护. 假如还有一位同事张三, 在devlop分支切出的分支dev-zhangsan上进行开发,他添加了一个glossary.md,而后进行了add & commit 此时项目开发完成,需要将两个分支合并…

kubernetes 之 minikube折腾记

参考官网教程&#xff0c;链接&#xff1a; https://minikube.sigs.k8s.io/docs/start/ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube安装完启动minikube&#xff1a;…

使用vue-pdf出现的卡顿,空白,报错,浏览器崩溃解决办法

如果想直接知道解决办法&#xff0c;请翻到最下面 今天&#xff0c;接到了一个新的需求&#xff0c;我们公司的PDF展示卡住了&#xff0c;导致浏览器直接奔溃。我也刚来公司不久&#xff0c;就去看看是怎么发生的&#xff0c;公司前同事用的vue-pdf&#xff0c;刚开始以为是文…

2023高教社杯 国赛数学建模B题思路 - 多波束测线问题

1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到信…

基于Java+SpringBoot+Vue前后端分离精简博客系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…