机器学习笔记之最优化理论与方法(二)凸集的简单认识(上)

news2025/1/20 14:50:32

机器学习笔记之最优化理论与方法——凸集的简单认识[上]

  • 引言
    • 凸优化问题与凸集合凸函数的关系
      • 凸优化问题简单示例
      • 凸集的简单示例
    • 基本定义:凸集
      • 关于凸集性质的等价条件,凸组合,凸包
      • 常见凸集

引言

本节将介绍关于凸集的基本信息,包括概念基本性质以及常见凸集。

凸优化问题与凸集合凸函数的关系

最优化问题范畴中,凸优化问题是一类常见的、并且性质优秀的优化问题。一些情况下可以通过凸优化问题来解决非凸优化问题

凸集合与凸函数决定了该优化问题是凸优化问题。具体表现在:
最优化问题概述中我们介绍了可行域的概念。它可能并不仅仅被定义域空间描述,并且也可能伴随着约束条件的限制。在这里为了简化问题,仅观察定义域空间的描述。

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

{ min ⁡ f ( x ) s.t.  x ∈ S \begin{cases} \min f(x) \\ \text{s.t. } x \in \mathcal S \end{cases} {minf(x)s.t. xS

凸优化问题简单示例

这里通过两个简单示例描述凸优化相关的优秀性质

  • 关于一元函数 G ( x ) \mathcal G(x) G(x)的最小化问题数学符号表示如下:
    { min ⁡ G ( x ) s.t.  x ∈ [ a , b ) \begin{cases} \min \mathcal G(x) \\ \text{s.t. } x \in [a,b) \end{cases} {minG(x)s.t. x[a,b)
  • 假设关于 G ( x ) \mathcal G(x) G(x)函数图像表示如下:
    一元函数图像示例

观察左侧函数图像,在 [ a , b ) [a,b) [a,b)区间内,可以找到该函数的最小点,并且该点是一个平稳点——在该点处函数的导数 0 0 0

同时观察右侧函数图像,同样可以找到该函数的最小点。只不过区别于左侧函数图像的是:该区间内函数的平稳点存在若干个

  • 观察第一、第三个红色点,它们都是其各自邻域内的最小值,也称作局部最优解;其中第一个红色点不仅是局部最优解,而且是 [ a , b ) [a,b) [a,b)范围内的全局最优解
    但这些红色点也同样都是平稳点,也就是说:仅通过平稳点无法确定其是否为全局最优解
  • 再回顾左侧函数图像:它的局部最优解就是全局最优解,并且平稳点对应的解就是全局最优解
    这是凸函数的重要性质;相反地,右侧图像描述的函数被称作非凸函数

凸集的简单示例

已知函数: G ( x 1 , x 2 ) = x 1 2 + x 2 2 \mathcal G(x_1,x_2) = x_1^2 + x_2^2 G(x1,x2)=x12+x22,想要求解在可行域 S \mathcal S S关于 G ( x 1 , x 2 ) \mathcal G(x_1,x_2) G(x1,x2)最小值。对应优化问题表示如下:
{ min ⁡ G ( x 1 , x 2 ) = x 1 2 + x 2 2 s.t.  ( x 1 , x 2 ) ∈ S \begin{cases} \min \mathcal G(x_1,x_2) = x_1^2 + x_2^2 \\ \text{s.t. } (x_1,x_2) \in \mathcal S \end{cases} {minG(x1,x2)=x12+x22s.t. (x1,x2)S
现在存在两个可行域 S 1 , S 2 \mathcal S_1,\mathcal S_2 S1,S2,对应图像表示如下:
可行域图像示例
从几何角度观察,函数 G ( x 1 , x 2 ) \mathcal G(x_1,x_2) G(x1,x2)描述的图像形状是圆,上述图像中的虚线表示函数图像可能出现的等值线

  • 观察左侧图像,在可行域 S 1 \mathcal S_1 S1范围内取到合适的 x ∗ ( x 1 ∗ , x 2 ∗ ) x^*(x_1^*,x_2^*) x(x1,x2),使得 G ( x 1 ∗ , x 2 ∗ ) \mathcal G(x_1^*,x_2^*) G(x1,x2)达到最小,很明显,是上述的红色点。作为最优解的 x ∗ x^* x,可以发现: x ∗ x^* x点所在位置是函数 G ( x 1 , x 2 ) \mathcal G(x_1,x_2) G(x1,x2)与可行域 S 1 \mathcal S_1 S1描述范围的切点;也就是说: x ∗ x^* x点处的负梯度方向 − ∇ G ( x 1 ∗ , x 2 ∗ ) -\nabla \mathcal G(x_1^*,x_2^*) G(x1,x2)与切线方向垂直
    其中红色箭头表示负梯度方向。关于负梯度方向,详见线搜索方法(方向角度)。

    这意味着:从可行域 S 1 \mathcal S_1 S1范围内任取一点 x x x,那么向量 x − x ∗ x - x^* xx负梯度方向之间的夹角总是 ≥ 9 0 o \geq 90^o 90o。如果用向量内积的形式表示,必然有:
    这里的 G ( x ∗ ) \mathcal G(x^*) G(x)表示 ∇ G ( x 1 ∗ , x 2 ∗ ) \nabla \mathcal G(x_1^*,x_2^*) G(x1,x2),后续同理。
    − [ ∇ G ( x ∗ ) ] T ( x − x ∗ ) ≤ 0 ∀ x ∈ S 1 -[\nabla \mathcal G(x^*)]^T(x - x^*) \leq 0 \quad \forall x \in \mathcal S_1 [G(x)]T(xx)0xS1
    最终归纳得到如下等价条件
    x ∗  is Optimal  ⇔ − [ ∇ G ( x ∗ ) ] T ( x − x ∗ ) ≤ 0 ∀ x ∈ S 1 x^* \text{ is Optimal } \Leftrightarrow -[\nabla \mathcal G(x^*)]^T(x - x^*) \leq 0 \quad \forall x \in \mathcal S_1 x is Optimal [G(x)]T(xx)0xS1

  • 观察右侧图像,可以按照上述寻找切点的方式去寻找最优解。假设找到了右侧的红色点。但这个最优解并不满足上述的等价条件
    见下图中右侧两个红色箭头明显是一个锐角
    凸集与非凸集示例

综上,可行域内任意一点 x x x最优解 x ∗ x^* x之间满足如上等价条件,那么该可行域是凸集;反之为非凸集。从而将可行域 S 1 \mathcal S_1 S1称为凸集;而可行域 S 2 \mathcal S_2 S2称作非凸集。相反,如果一个可行域被确定是凸集,那么它同样存在一些优秀性质:

  • 凸集中根据上述等价条件找到的最优解一定是全局最优解
  • 通过求解导数/梯度获取的平稳定一定是最值点

基本定义:凸集

关于凸集 ( Convex Set ) (\text{Convex Set}) (Convex Set)的定义表示如下:
∀ x , y ∈ C ; ∀ λ ∈ [ 0 , 1 ] ⇒ λ ⋅ x + ( 1 − λ ) ⋅ y ∈ C \forall x,y \in \mathcal C;\forall \lambda \in [0,1] \Rightarrow \lambda \cdot x + (1 - \lambda) \cdot y \in \mathcal C x,yC;λ[0,1]λx+(1λ)yC
文字的描述可简单表述为:可行域 C \mathcal C C中任意两点间的连线,其连线上的任一点仍属于该可行域 C \mathcal C C。示例图像表示如下:

  • 第二张图也被称作多面体
  • 很明显,最后一个图描述的可行域不是凸集,其连线上的点并不全在可行域上。
    凸集描述示例

关于凸集性质的等价条件,凸组合,凸包

关于凸集合性质存在如下等价条件:如果某可行域 C \mathcal C C是一个凸集,对于 ∀ x 1 , x 2 , ⋯   , x k ∈ C \forall x_1,x_2,\cdots,x_k \in \mathcal C x1,x2,,xkC,且对于 ∀ λ 1 , λ 2 , ⋯   , λ k ≥ 0 \forall \lambda_1,\lambda_2,\cdots,\lambda_k \geq0 λ1,λ2,,λk0 ∑ i = 1 k λ i = 1 \begin{aligned}\sum_{i=1}^{k} \lambda_i = 1\end{aligned} i=1kλi=1,必然有:
反之同样可以推出 C \mathcal C C是一个凸集。
∑ i = 1 k λ i ⋅ x i ∈ C \sum_{i=1}^k \lambda_i \cdot x_i \in \mathcal C i=1kλixiC
这里以 k = 3 k=3 k=3为例。对于 x 1 , x 2 , x 3 ∈ C , ∀ λ 1 , λ 2 , λ 3 ≥ 0 x_1,x_2,x_3 \in \mathcal C, \forall \lambda_1,\lambda_2,\lambda_3 \geq 0 x1,x2,x3C,λ1,λ2,λ30 λ 1 + λ 2 + λ 3 = 1 \lambda_1+\lambda_2 + \lambda_3 = 1 λ1+λ2+λ3=1,对应 λ 1 x 1 + λ 2 x 2 + λ 3 x 3 \lambda_1x_1 + \lambda_2x_2 + \lambda_3x_3 λ1x1+λ2x2+λ3x3在可行域 C \mathcal C C中的描述表示为: x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3围成的三角形的范围
显然,该三角形围成的范围是可行域 C \mathcal C C的一部分。
凸集性质等价条件示例
对于表达式 ∑ i = 1 k λ i ⋅ x i \begin{aligned}\sum_{i=1}^k \lambda_i \cdot x_i\end{aligned} i=1kλixi,它称作 x 1 , x 2 , ⋯   , x k x_1,x_2,\cdots,x_k x1,x2,,xk凸组合 ( Convex Combination ) (\text{Convex Combination}) (Convex Combination)
条件不能漏掉~ λ i ( i = 1 , 2 , ⋯   , k ) ≥ 0 \lambda_i(i=1,2,\cdots,k) \geq 0 λi(i=1,2,,k)0 ∑ i = 1 k λ i = 1 \sum_{i=1}^k \lambda_i = 1 i=1kλi=1

相应的组合概念如:
很明显,从关于 λ i ( i = 1 , 2 , ⋯   , k ) \lambda_i(i=1,2,\cdots,k) λi(i=1,2,,k)的约束程度角度,有:凸组合 > > > 仿射组合;非负组合 > > > 线性组合

  • 线性组合 ( Linear Combination ) (\text{Linear Combination}) (Linear Combination) ∑ i = 1 k λ i ⋅ x i \sum_{i=1}^k \lambda_i \cdot x_i i=1kλixi,虽然与凸组合共用相同的表达式,但其对 λ i ( i = 1 , 2 , ⋯   , k ) ∈ R \lambda_i(i=1,2,\cdots,k) \in \mathbb R λi(i=1,2,,k)R即可,没有过多的约束
  • 仿射组合 ( Affine Combination ) (\text{Affine Combination}) (Affine Combination):依然是上述表达式,但相比于凸组合,只要求 ∑ i = 1 k λ i = 1 \sum_{i=1}^k \lambda_i = 1 i=1kλi=1,没有符号要求
  • 非负组合 ( Nonnegative Combination ) (\text{Nonnegative Combination}) (Nonnegative Combination):依然是上述表达式,但相比于凸组合,仅要求 λ i ( i = 1 , 2 , ⋯   , k ) ≥ 0 \lambda_i(i=1,2,\cdots,k) \geq 0 λi(i=1,2,,k)0,没有加和为 1 1 1的要求。

关于凸包 ( Convex Hull ) (\text{Convex Hull}) (Convex Hull),它针对的是任意一个集合,并非只有凸集。在选定集合 C \mathcal C C的条件下,从 C \mathcal C C中取点后作凸组合,将所有凸组合结果构成一个新集合,该集合被称作凸包

凸包的作用:由于凸包是由凸组合构成的集合,因而:对于任意集合 C \mathcal C C(凸、非凸),它的凸包一定是凸集合。从而凸包是优化过程中将非凸集合凸化的一个工具
这里作为科普,不做过多描述~

常见凸集

常见的凸集合有:

  • 超平面 ( Hyperplane ) (\text{Hyperplane}) (Hyperplane),其表达式表示如下:
    H = { x ∣ a T x = b } ( a ≠ 0 ) \mathcal H = \{x \mid a^T x = b\}(a \neq 0) H={xaTx=b}(a=0)
  • 半空间 ( Halfspace ) (\text{Halfspace}) (Halfspace),其表达式表示为:
    { H + = { x ∣ a T x ≥ b } ( a ≠ 0 ) H − = { x ∣ x T x ≤ b } ( a ≠ 0 ) \begin{cases} \mathcal H^{+} = \{x \mid a^Tx \geq b \}(a \neq 0) \\ \mathcal H^{-} = \{x \mid x^Tx \leq b\}(a \neq 0) \end{cases} {H+={xaTxb}(a=0)H={xxTxb}(a=0)
    对应图像描述表示为:
    超平面与半空间的关系
  • 多面体 ( Polyhedra ) (\text{Polyhedra}) (Polyhedra):由多个线性不等式刻画的集合。对应表达式表示如下:
    由于一个线性不等式刻画的是半空间,那么由多个线性不等式对应半空间的交集/围成的空间就是多面体
    { x ∣ a i T x ≤ b i , i = 1 , 2 , ⋯   , M } \{x \mid a_i^T x \leq b_i,i=1,2,\cdots,\mathcal M\} {xaiTxbi,i=1,2,,M}
    关于多面体集合 P \mathcal P P的图像示例描述表示为:
    多面体集合示例
    上面关于多面体的定义是关于线性不等式所刻画的集合;相反,线性等式刻画的集合是多面体吗 ? ? ?自然也是。因为可以将线性等式 a i T x = b i a_i^T x = b_i aiTx=bi刻画为如下两个线性不等式的交集:
    从而又将线性等式刻画的集合转化为线性不等式刻画的集合
    a i T x = b i ⇔ { a i T x ≤ b i − a i T x ≤ − b i i = 1 , 2 , ⋯   , M a_i^T x = b_i \Leftrightarrow \begin{cases} a_i^T x \leq b_i \\ -a_i^T x \leq -b_i \end{cases} \quad i=1,2,\cdots,\mathcal M aiTx=bi{aiTxbiaiTxbii=1,2,,M
  • 欧几里得球 ( Euclidean Balls ) (\text{Euclidean Balls}) (Euclidean Balls):如果球的中心 x c x_{c} xc半径 r r r已知,对应表达式表示如下:
    这里的 ∣ ∣ u ∣ ∣ 2 ≤ 1 ||u||_2 \leq 1 ∣∣u21描述的是中心为 0 0 0,半径为 1 1 1的单位球空间。对应的 r ⋅ u r \cdot u ru则表示对球空间进行放缩; x c + r ⋅ u x_c + r \cdot u xc+ru则是对放缩后的结果进行平移~
    B ( x c , r ) = { x ∣ ∥ x − x c ∥ 2 ≤ r } = { x c + r ⋅ u ∣ ∥ u ∥ 2 ≤ 1 } \begin{aligned} \mathcal B(x_{c},r) & = \{x \mid \| x - x_c\|_2 \leq r\} \\ & = \{x_c + r \cdot u \mid \|u\|_2 \leq 1\} \end{aligned} B(xc,r)={xxxc2r}={xc+ruu21}
    这仅仅是二范数的结果,调整范数,可以得到范数球 ( Norm Balls ) (\text{Norm Balls}) (Norm Balls)
    相关文章见下方链接~
  • 椭球 ( Ellipsoid ) (\text{Ellipsoid}) (Ellipsoid):若椭球中心 x c x_c xc已知,对应表达式表示如下:
    其中矩阵 P \mathcal P P正定矩阵,否则 P − 1 \mathcal P^{-1} P1无法求解
    { x ∣ ( x − x c ) T P − 1 ( x − x c ) ≤ 1 } \{x \mid (x -x_c)^T \mathcal P^{-1} (x - x_c) \leq 1\} {x(xxc)TP1(xxc)1}
    为什么是 P − 1 \mathcal P^{-1} P1,它有什么作用 ? ? ?这里假设正定矩阵 P \mathcal P P与对应 P − 1 \mathcal P^{-1} P1表示如下:
    P = ( 2 0 0 4 ) ⇒ P − 1 = ( 1 2 0 0 1 4 ) \mathcal P = \begin{pmatrix}2 \quad 0 \\ 0 \quad 4\end{pmatrix} \Rightarrow \mathcal P^{-1} = \begin{pmatrix} \begin{aligned}\frac{1}{2} \quad 0 \\ 0 \quad \frac{1}{4}\end{aligned} \end{pmatrix} P=(2004)P1= 210041
    P − 1 \mathcal P^{-1} P1带入到原式,有:
    ( x − x c ) T ( 1 / 2 0 0 1 / 4 ) ( x − x c ) ≤ 1 (x - x_c)^T \begin{pmatrix}1/2 \quad 0 \\ 0 \quad 1/4\end{pmatrix}(x - x_c) \leq 1 (xxc)T(1/2001/4)(xxc)1
    从而有:
    ( x 1 − x c 1 ) 2 2 + ( x 2 − x c 2 ) 2 4 ≤ 1 \frac{(x_1 - x_{c_1})^2}{2} + \frac{(x_2 - x_{c_2})^2}{4} \leq 1 2(x1xc1)2+4(x2xc2)21
    上式中描述的椭球空间,其长轴、短轴的半轴长分别是 2 , 4 \sqrt{2},\sqrt{4} 2 ,4 ,这恰好是正定矩阵 P \mathcal P P特征值的开平方。因此 P − 1 \mathcal P^{-1} P1本质上描述 P \mathcal P P椭球长短轴之间的关联关系。
  • 二阶锥 ( Second-Order Cone ) (\text{Second-Order Cone}) (Second-Order Cone)
    关于锥集合 C \mathcal C C的定义可描述为:
    if  x ∈ C ⇒ λ ⋅ x ∈ C ∀ λ ≥ 0 \text{if } x \in \mathcal C \Rightarrow \lambda \cdot x \in \mathcal C \quad \forall \lambda \geq 0 if xCλxCλ0
    二阶锥的定义可表示为:
    假设在 n + 1 n+1 n+1维的特征空间中,其中 x = ( x 1 , x 2 , ⋯   , x n ) T ∈ R n x = (x_1,x_2,\cdots,x_n)^T \in \mathbb R^n x=(x1,x2,,xn)TRn,最后一维特征表示为 t t t。下面公式则表示为: n n n维的二范数结果 ∣ ∣ x ∣ ∣ 2 ≤ ||x||_2 \leq ∣∣x2 n + 1 n+1 n+1维的特征结果 t t t
    { ( x , t ) ∣ ∥ x ∥ 2 ≤ t } \{(x,t) \mid \|x\|_2 \leq t\} {(x,t)x2t}
    例如: x x x是一个二维向量,那么上式的表达有:
    x 1 2 + x 2 2 ≤ t \sqrt{x_1^2 + x_2^2} \leq t x12+x22 t
    简单绘制一下它的图像:
import numpy as np
import matplotlib.pyplot as plt
import math 

x = np.linspace(-5,5,50)
y = np.linspace(-5,5,50)
t = 5.0

def f(x,y):
    return math.sqrt((x ** 2) + (y ** 2))

ax = plt.axes(projection='3d')

for i in list(x):
    for j in list(y):
        if f(i,j) <= t:
            ax.scatter(i,j,f(i,j),c="tab:blue",s=2)
        else:
            continue
plt.show()

最终结果表示如下:
二阶锥集合示例

  • 半定矩阵锥

    • 首先,划定一个集合 S n \mathcal S^n Sn,它描述:所有 n n n阶对称矩阵组成的集合
      可见,集合中的每个元素都是 n n n阶对称矩阵
    • 在集合 S n \mathcal S^n Sn的基础上,划定一个集合 S + n \mathcal S_{+}^n S+n,它描述:所有 n n n半正定矩阵组成的集合,记作 S + n = { X ∈ S n ∣ X ≽ 0 } \mathcal S_{+}^n = \{\mathcal X \in \mathcal S^n \mid \mathcal X \succcurlyeq 0\} S+n={XSnX0}
      其中 X ≽ 0 ⇔ Z T X Z ≥ 0 ∀ Z \mathcal X \succcurlyeq 0 \Leftrightarrow \mathcal Z^T \mathcal X \mathcal Z \geq 0 \quad \forall \mathcal Z X0ZTXZ0Z
    • 同样在集合 S n \mathcal S^n Sn的基础上,划定一个集合 S + + n \mathcal S_{++}^n S++n,它描述:所有 n n n正定矩阵组成的集合,记作 S + + n = { X ∈ S n ∣ X ≻ 0 } \mathcal S_{++}^n = \{\mathcal X \in \mathcal S^n \mid \mathcal X \succ 0\} S++n={XSnX0}
      同上: X ≻ 0 ⇔ Z T X Z > 0 ∀ Z \mathcal X \succ 0 \Leftrightarrow \mathcal Z^T \mathcal X \mathcal Z > 0 \quad \forall \mathcal Z X0ZTXZ>0Z

    对于集合 S + n \mathcal S_{+}^n S+n中的元素 X \mathcal X X,它们必然是半正定矩阵。因而 λ ⋅ X ( ∀ λ ≥ 0 ) \lambda \cdot \mathcal X (\forall \lambda \geq 0) λX(λ0)依然是半正定矩阵。因而满足锥集合的定义
    X ∈ S + n ⇒ λ ⋅ X ∈ S + n λ ≥ 0 \mathcal X \in \mathcal S_{+}^n \Rightarrow \lambda \cdot \mathcal X \in \mathcal S_{+}^n \quad \lambda \geq 0 XS+nλXS+nλ0
    因而集合 S + n \mathcal S_{+}^n S+n锥集合
    新的问题:锥集合 S + n \mathcal S_{+}^n S+n是不是凸集合 ? ? ?根据凸集合的定义,有:

    • 集合 S + n \mathcal S_{+}^n S+n中任意选择一系列半正定矩阵
      ∀ x 1 , x 2 , ⋯   , x k ∈ S + n \forall x_1,x_2,\cdots,x_k \in \mathcal S_{+}^n x1,x2,,xkS+n
    • 选择 λ i ( i = 1 , 2 , ⋯   , k ) \lambda_i(i=1,2,\cdots,k) λi(i=1,2,,k)满足:
      { λ i ≥ 0 i = 1 , 2 , ⋯   , k ∑ i = 1 k λ i = 1 \begin{cases} \lambda_i \geq 0 \quad i=1,2,\cdots,k \\ \sum_{i=1}^k \lambda_i = 1 \end{cases} {λi0i=1,2,,ki=1kλi=1
    • 观察: ∑ i = 1 k λ i ⋅ x i \sum_{i=1}^k \lambda_i \cdot x_i i=1kλixi每一项 λ i ⋅ x i ( i = 1 , 2 , ⋯   , k ) \lambda_i \cdot x_i(i=1,2,\cdots,k) λixi(i=1,2,,k)均是半正定矩阵,因而 ∑ i = 1 k λ i ⋅ x i \sum_{i=1}^k \lambda_i \cdot x_i i=1kλixi必然也是半正定矩阵。即:
      ∑ i = 1 k λ i ⋅ x i ∈ S + n \sum_{i=1}^k \lambda_i \cdot x_i \in \mathcal S_{+}^n i=1kλixiS+n
      因此锥集合 S + n \mathcal S_{+}^n S+n必然是凸集合

    关于半定矩阵锥的图像,以二阶矩阵为例。如果二阶矩阵 ( x y y z ) ∈ S + 2 \begin{pmatrix}x \quad y \\ y \quad z\end{pmatrix} \in \mathcal S_{+}^2 (xyyz)S+2,也就是说:该二阶矩阵是一个半正定矩阵。如何判定一个矩阵是半正定 ? ? ?

    • 主对角线元素 x , z ≥ 0 x,z \geq 0 x,z0
    • 该矩阵的顺序主子式 x ⋅ z − y 2 ≥ 0 x \cdot z - y^2\geq 0 xzy20
    • 同样绘制它的图像:
      这里的图像不容易看,像个船头~大家自己多试试角度~
import numpy as np
import matplotlib.pyplot as plt
import tqdm

x = np.linspace(-5,5,20)
y = np.linspace(-5,5,20)
z = np.linspace(-5,5,20)![请添加图片描述](https://img-blog.csdnimg.cn/2fecd39719bc4af392e4cb9316296f6b.png)


def SequentialPrincipalMinor(x,y,z):
    return x * z - (y ** 2)

ax = plt.axes(projection='3d')
for i in tqdm(list(x)):
    for j in list(y):
        for k in list(z):
            if i >= 0 and k >= 0 and SequentialPrincipalMinor(i,j,k) >= 0:
                ax.scatter(i,j,k,c="tab:blue",s=2)
            else:
                continue
plt.show()

最终结果表示如下:
半定矩阵锥示例
个人理解集合 S + + n \mathcal S_{++}^n S++n不仅是锥集合,并且也是凸集合
这个图就不贴了,和上面的结果很像~

  • 关于 ∑ i = 1 k λ i ⋅ x i x i ∈ S + + n \begin{aligned}\sum_{i=1}^k \lambda_i \cdot x_i \quad x_i \in \mathcal S_{++}^n\end{aligned} i=1kλixixiS++n,只要 λ i ⋅ x i ( i = 1 , 2 , ⋯   , k ) \lambda_i \cdot x_i(i=1,2,\cdots,k) λixi(i=1,2,,k)至少有一项是正定矩阵,那么 ∑ i = 1 k λ i ⋅ x i \begin{aligned}\sum_{i=1}^k \lambda_i \cdot x_i \end{aligned} i=1kλixi必然是正定矩阵
  • 由于 ∑ i = 1 k λ i = 1 \begin{aligned}\sum_{i=1}^k \lambda_i =1\end{aligned} i=1kλi=1,因而不可能出现 λ 1 = λ 2 = ⋯ = λ k = 0 \lambda_1 = \lambda_2 = \cdots = \lambda_k = 0 λ1=λ2==λk=0。也就是说:必然存在项 λ i > 0 \lambda_i > 0 λi>0,从而使 λ i ⋅ x i \lambda_i \cdot x_i λixi是正定矩阵

Process : 43 : 34 / 1 : 21 : 31 \text{Process}: 43:34/1:21:31 Process:43:34/1:21:31
相关参考:
最优化理论与方法-第二讲-凸集
凸优化笔记1:凸集Convex Sets

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】基础入门 (十六)--- 异常

1.异常 1.1 异常概述 异常是指程序在运行过程中出现的非正常的情况&#xff0c;如用户输入错误、除数为零、文件不存在、数组下标越界等。由于异常情况再程序运行过程中是难以避免的&#xff0c;一个良好的应用程序除了满足基本功能要求外&#xff0c;还应具备预见并处理可能发…

青翼科技基于VITA57.1的16路数据收发处理平台产品手册

FMC211是一款基于VITA57.1标准规范的实现16路LVDS数据采集、1路光纤数据收发处理FMC子卡模块。 该板卡支持2路CVBS&#xff08;复合视频&#xff09;视频输入&#xff0c;能够自动检测标准的模拟基带电视信号&#xff0c;并将其转变为8位ITU-R.656接口信号或者4:2:2分量视频信…

Qt网络通信——获取本机网络信息

查询一个主机的MAC地址或者IP地址是网络应用中常用到的功能&#xff0c;Qt提供了QHostInfo和QNetworkInterface 类可以用于此类信息的查询 1.QHostInfo 类&#xff08;显示和查找本地的信息&#xff09;是的主要函数 类别 函数原型作用公共函数QList <QHostAdress> addr…

读<一例 Go 编译器代码优化 bug 定位和修复解析>

看到一例 Go 编译器代码优化 bug 定位和修复解析[1]这样一篇文章,感觉有些意思. 在此复现和记录 在Go 1.16版本下,是没有这个bug[2]的(已修复). 参照gvm:灵活的Go版本管理工具[3] 将Go版本切至有问题的1.13.5(或1.14.6) ➜ go versiongo version go1.13.5 darwin/amd64 packag…

Node常用内置模块之url模块和querystring模块

1、URL类 url模块在v16的nodejs中已经明确被废弃&#xff0c;在将来的升级node中&#xff0c;可能被不支持。 官网建议在废弃url、querystring模块后&#xff0c;采用URL类去替代。 图示 URL 各部分 旧版的url模块 作用&#xff1a;url 模块是用于处理和解析 URL 的模块&…

Unity ShaderGraph教程——基础shader

1.基本贴图shader&#xff1a; 基础贴图实现&#xff1a;主贴图、自发光贴图、光滑度贴图、自发光贴图&#xff08;自发光还加入了颜色影响和按 钮开关&#xff09;. 步骤&#xff1a;最左侧操作组——新建texture2D——新建sample texture 2D承…

Linux上部署zentao禅道18.6版本

1. cd /opt 2. 下载 ZenTaoPMS-18.6-zbox_amd64.tar.gz wget https://dl.cnezsoft.com/zentao/18.6/ZenTaoPMS-18.6-zbox_amd64.tar.gz 3. 解压 tar -zxvf ZenTaoPMS-18.6-zbox_amd64.tar.gz 4. 解压成功, 可以看到多了个zbox文件 5. cd zbox/ 进入该目录 6. 修改apache默认…

乙酰基六肽-18——刺激脂肪合成,增加指定部位脂肪,塑造完美曲线

简介 乙酰六肽-18&#xff08;丰胸肽&#xff09;为一种乙酰化的六肽&#xff0c;可显著刺激使用部位脂肪合成&#xff0c;增大胸部或脸颊的体积&#xff0c;塑造完美身材。 INCI 名称 乙酰六肽-18 分子式 C30H54N9O10 分子量 700.32 CAS号 1400634-44-7…

WPF_布局基础

布局容器 Grid 定义由列和行组成的灵活的网格区域。 行 <Grid.RowDefinitions><RowDefinition/><RowDefinition/></Grid.RowDefinitions> 列 <Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDe…

免费开源MES系统|自动排产管理

万界星空科技免费MES系统助力企业实现生产排程自动化&#xff0c;降低人力成本。生产计划排产管理是指制定一个可行的生产计划并按照该计划安排生产资源和制造活动的过程。 它是制造企业管理中的一个关键过程&#xff0c;涉及到计划制定、资源管理、物料采购、工厂布局、生产调…

手搓的一款基于sql脚本的数据初始化组件

产口孵化新项目时&#xff0c;表中需要提前预置部份数据。如字典&#xff0c;角色、菜单、配置等。以达到快速布署的目的。这部份数据会随着某些因素的影响。如地区变化、系统定制方面。无法使用统一的一份sql。旧方案是在代码里面动态的作insert操作。在项目启动的时候初始化这…

IPIDEA确认参加2023 CCEE(深圳)雨果跨境全球电商展览会

9月1日—9月3日&#xff0c;雨果跨境将在深圳会展中心&#xff08;福田&#xff09;举办 “2023CCEE&#xff08;深圳&#xff09;雨果跨境全球电商展览会”。 届时&#xff0c;IPIDEA将参加此次跨境年度盛会。作为一家专业的全球HTTP代理商&#xff0c;IPIDEA为与会商家准备了…

MES管理系统数据建模有哪些注意事项

在进行MES管理系统数据建模时&#xff0c;需要注意以下几个方面&#xff0c;以确保建立高效、可靠且适应性强的数据模型&#xff0c;为企业的生产管理提供有力的支持。 首先&#xff0c;精确理解业务需求是进行数据建模的前提。与相关部门和人员进行充分的沟通&#xff0c;了解…

基于web的图书管理系统java书店进销存 jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于web的图书管理系统 系统有1权限:管理员 二、主要…

小程序中如何给会员发送微信服务通知

通过发送微信服务通知&#xff0c;可以及时向会员推送最新的活动、优惠信息等重要通知&#xff0c;从而增加用户参与度和购买意愿。下面就介绍怎么给会员发送微信服务通知的方法和步骤。 1. 找到指定的会员卡。在管理员后台->会员管理处&#xff0c;找到需要接收服务通知的…

【Navicat Premium 16】使用Navicat将excel的数据进行单表的导入,详细操作

业务场景&#xff1a;经常与数据打交道嘛&#xff0c;有的时候会需要将excel的数据导入到数据库中&#xff0c;后面发现对于单表的数据导入&#xff0c;使用Navicat还是非常方便的&#xff0c;仅仅需要将字段关系映射好就可以了 一、开始操作 前提条件&#xff1a;已经成功连接…

算法通关村第9关【白银】| 二分查找与搜索树高频问题

基于二分查找的拓展问题 1.山脉数组的峰顶索引 思路&#xff1a;二分查找 山峰有三种状态&#xff1a;需要注意数组边界 1.顶峰&#xff1a;arr[mid]>arr[mid1]&&arr[mid]>arr[mid-1] 2.上坡&#xff1a;arr[mid]<arr[mid1] 3.下坡&#xff1a;arr[mid]…

【树DP】2021ICPC南京 H

Problem - H - Codeforces 题意&#xff1a; 思路&#xff1a; 这题应该算是铜牌题 铜牌题 简单算法 基础思维 简单复盘一下思路 首先&#xff0c;我们发现有个很特殊的条件&#xff1a; ti < 3 然后看一下样例&#xff1a; 注意到&#xff0c;对于一个结点 u &#…

1.3.2背包模型(二)

1.二维费用的背包问题 有 N N N件物品和一个容量是 V V V的背包&#xff0c;背包能承受的最大重量是 M M M。 每件物品只能用一次。体积是 v i v_{i} vi​&#xff0c;重量是 m i m_{i} mi​&#xff0c;价值是 w i w_{i} wi​。 求解将哪些物品装入背包&#xff0c;可使物…

想要搞懂接口测试和功能测试有什么区别,那就必须知道他们的基本原理

本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xf…