第一章 凸集和凸函数
优化的重要意义
最优化是工程技术、经济管理、科学研究中经常遇 到的问题。例如:
- 结构设计
- 资源分配
- 生产计划
- 运输方案
- 模式识别、数据挖掘、机器学习
- 深度学习、强化学习、人工智能
解决优化问题的手段
- 经验积累 主观判断
- 做实验 比优劣
- 建立数学模型 求解最优策略
优化问题数学标准形式
m i n x f 0 ( x ) s . t . f i ( x ) ≤ 0 ( i = 1 , 2 , ⋯ , m ) h j ( x ) = 0 ( j = 1 , 2 , ⋯ , n ) \begin{aligned} \underset{x}{min}\ &f_0(x)\\ s.t.\ &f_i(x)\le0\ (i=1,2,\cdots,m)\\ &h_j(x)=0\ (j=1,2,\cdots,n) \end{aligned} xmin s.t. f0(x)fi(x)≤0 (i=1,2,⋯,m)hj(x)=0 (j=1,2,⋯,n)
- 可行解集 X = { x ∈ R n : f i ( x ) ≤ 0 , i = 1 , 2 , ⋯ , m ; h j ( x ) = 0 , j = 1 , 2 , ⋯ , n } X=\{x\in R^n:f_i(x)\le0,i=1,2,\cdots,m;h_j(x)=0,j=1,2,\cdots,n\} X={x∈Rn:fi(x)≤0,i=1,2,⋯,m;hj(x)=0,j=1,2,⋯,n}
- 最优值 p ∗ = i n f { f 0 ( x ) : x ∈ X } p^*=inf\{f_0(x):x\in X\} p∗=inf{f0(x):x∈X}
- 最优解 x ∗ ∈ X : f 0 ( x ∗ ) = p ∗ x^*\in X:f_0(x^*)=p^* x∗∈X:f0(x∗)=p∗
- 最优解不唯一
- 局部极小解: ∃ ϵ > 0 \exist \epsilon>0 ∃ϵ>0,使得 ∀ x ∈ X , ∥ x − x ^ ∥ 2 < ϵ \forall x\in X,\lVert x-\hat{x}\rVert_2<\epsilon ∀x∈X,∥x−x^∥2<ϵ,有 f ( x ^ ) ≤ f ( x ) f(\hat{x})\le f(x) f(x^)≤f(x),称 x ^ \hat{x} x^为 f f f的局部极小解
- 全局极小解:如果 ∀ x ∈ X \forall x\in X ∀x∈X,有 f ( x ^ ) ≤ f ( x ) f(\hat{x})\le f(x) f(x^)≤f(x)成立,称 x ^ \hat{x} x^为 f f f的全局极小解
例子
-
组合优化
- 变量:投资于不同财产的数目
- 限制条件:预算、各项财产最大/最小投资额、最小收益
- 目标:总投资风险最小或者总收益最大
-
数值拟合
- 变量:模型参数
- 限制条件:先验信息,参数取值范围
- 目标:最小化拟合误差或者预测误差
求解优化问题
一般优化问题
-
难于求解
-
计算复杂度高、需要时间长、不总能找到最优解
特定的优化问题能够有效、可靠的求解,例如
- 线性规划问题
- 二次规划问题(最小二乘问题)
- 图优化问题
- 凸优化问题
线性规划问题(Linear Programming)
目标函数和限制函数都为线性函数,即
m i n c 1 x 1 + c 2 x 2 + ⋯ + c n x n s . t . a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ≤ b i ( i = 1 , 3 , ⋯ , m ) x j ≥ 0 ( j = 1 , 2 , ⋯ , n ) \begin{aligned} min\ &c_1x_1+c_2x_2+\cdots+c_nx_n\\ s.t.\ &a_{i1}x_1+a_{i2}x_2+\cdots+a_{in}x_n\le b_i(i=1,3,\cdots,m)\\ &x_j\ge0(j=1,2,\cdots,n) \end{aligned} min s.t. c1x1+c2x2+⋯+cnxnai1x1+ai2x2+⋯+ainxn≤bi(i=1,3,⋯,m)xj≥0(j=1,2,⋯,n)
矩阵形式
m i n c T x s . t . A x ≤ b x ≥ 0 \begin{aligned} min\ &c^Tx\\ s.t.\ & Ax\le b\\ &x\ge0 \end{aligned} min s.t. cTxAx≤bx≥0
这里, A ∈ R m × n , c , x ∈ R n , b ∈ R m A\in R^{m\times n},c,x\in R^n,b\in R^m A∈Rm×n,c,x∈Rn,b∈Rm
求解线性规划
- 无分析解(闭式解)
- 有效的算法及成熟的软件
- 计算时间复杂度:如果 m ≤ n m\le n m≤n,则 O ( n 2 m ) O(n^2m) O(n2m),这里 x ∈ R n x\in R^n x∈Rn.
使用线性规划
通过一些标准技巧,一些复杂问题能转化成线性规划问题。例如,含有 l 1 l_1 l1− 范数或 l ∞ l_\infin l∞− 范数的优化问题、分段线性优化问题等
举例
球面 S = { ( x , y , z ) ∈ R 3 : x 2 + y 2 + z 2 = 1 } S=\{(x,y,z)\in R^3:x^2+y^2+z^2=1\} S={(x,y,z)∈R3:x2+y2+z2=1}
椭球面 E = { ( x , y , z ) ∈ R 3 : ( x − p ) 2 a 2 + ( y − q ) 2 b 2 + ( z − r ) 2 c 2 = 1 } E=\{(x,y,z)\in R^3:\frac{(x-p)^2}{a^2}+\frac{(y-q)^2}{b^2}+\frac{(z-r)^2}{c^2}=1\} E={(x,y,z)∈R3:a2(x−p)2+b2(y−q)2+c2(z−r)2=1}
求从球面到椭球面的最近欧氏距离 d ( S , E ) = m i n { d ( ( x 1 , y 1 , z 1 ) , ( x 2 , y 2 , z 2 ) ) } d(S,E)=min\{d((x_1,y_1,z_1),(x_2,y_2,z_2))\} d(S,E)=min{d((x1,y1,z1),(x2,y2,z2))},这里 ( x 1 , y 1 , z 1 ) ∈ S , ( x 2 , y 2 , z 2 ) ∈ E (x_1,y_1,z_1)\in S,(x_2,y_2,z_2)\in E (x1,y1,z1)∈S,(x2,y2,z2)∈E
该问题可转化为如下的优化问题:
m i n ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + ( z 1 − z 2 ) 2 s . t . x 1 2 + y 1 2 + z 1 2 = 1 ( x 2 − p ) 2 a 2 + ( y 2 − q ) 2 b 2 + ( z 2 − r ) 2 c 2 = 1 \begin{aligned} min\ &(x_1-x_2)^2+(y_1-y_2)^2+(z_1-z_2)^2\\ s.t.\ & x_1^2+y_1^2+z_1^2=1\\ &\frac{(x_2-p)^2}{a^2}+\frac{(y_2-q)^2}{b^2}+\frac{(z_2-r)^2}{c^2}=1 \end{aligned} min s.t. (x1−x2)2+(y1−y2)2+(z1−z2)2x12+y12+z12=1a2(x2−p)2+b2(y2−q)2+c2(z2−r)2=1
二次规划问题(Quadratic Programming)
m i n x 1 2 x T Q x + c T x s . t . A x = b x ≥ 0 \begin{aligned} \underset{x}{min}\ &\frac12x^TQx+c^Tx\\ s.t.\ &Ax=b\\ &x\ge0 \end{aligned} xmin s.t. 21xTQx+cTxAx=bx≥0
这里, Q ∈ R n × n Q\in R^{n\times n} Q∈Rn×n为对称矩阵,矩阵 A ∈ R m × n , c , x ∈ R n , b ∈ R m A\in R^{m\times n},c,x\in R^n,b\in R^m A∈Rm×n,c,x∈Rn,b∈Rm.
最小二乘问题(Least Square Problem)
m i n ∥ A x − b ∥ 2 2 min\lVert Ax-b\lVert_2^2 min∥Ax−b∥22
求解最小二乘问题
-
分析解(闭式解): x ∗ = ( A T A ) − 1 A T b x^*=(A^TA)^{-1}A^Tb x∗=(ATA)−1ATb
-
有效的算法及成熟的软件
-
计算时间复杂度 O ( n 2 m ) O(n^2m) O(n2m), A ∈ R m × n A\in R^{m\times n} A∈Rm×n.
使用最小二乘
- 一些标准的技术提高了其适应性。例如,增加权重、增加调整项等
凸优化问题
m i n f 0 ( x ) s . t . f i ( x ) ≤ b i , i = 1 , 2 , ⋯ , m \begin{aligned} min\ &f_0(x)\\ s.t.\ &f_i(x)\le b_i,i=1,2,\cdots,m \end{aligned} min s.t. f0(x)fi(x)≤bi,i=1,2,⋯,m
求解凸优化问题
-
无分析解
-
有效、可靠的算法
使用凸优化
- 通过一些技巧,许多问题可以转化为凸优化问题
- 凸优化问题有一套理论较为完善的求解方法。
有关的数学知识
内积和范数
-
n n n维实向量集合 R n R^n Rn上的标准内积: ∀ x = ( x 1 , x 2 , ⋯ , x n ) ∈ R n , y = ( y 1 , y 2 , ⋯ , y n ) ∈ R n \forall x=(x_1,x_2,\cdots,x_n)\in R^n,y=(y_1,y_2,\cdots,y_n)\in R^n ∀x=(x1,x2,⋯,xn)∈Rn,y=(y1,y2,⋯,yn)∈Rn,
< x , y > = x T y = ∑ i = 1 n x i y i \lt x,y\gt=x^Ty=\sum_{i=1}^{n}x_iy_i <x,y>=xTy=i=1∑nxiyi
-
E u c l i d Euclid Euclid范数( l 2 l_2 l2-范数): ∀ x = ( x 1 , x 2 , ⋯ , x n ) ∈ R n \forall x=(x_1,x_2,\cdots,x_n)\in R^n ∀x=(x1,x2,⋯,xn)∈Rn,
∥ x ∥ 2 = ( x T x ) 1 2 = ( ∑ i = 1 n x i 2 ) 1 2 \lVert x\rVert_2=(x^Tx)^\frac12=(\sum_{i=1}^{n}x_i^2)^\frac12 ∥x∥2=(xTx)21=(i=1∑nxi2)21
-
两个非零向量 x , y ∈ R n x,y\in R^n x,y∈Rn的夹角:
arg ( x , y ) = arccos ( x T y ∥ x ∥ 2 ∥ y ∥ 2 ) ∈ [ 0 , π ] \arg(x,y)=\arccos(\frac{x^Ty}{\lVert x\rVert_2\lVert y\rVert_2})\in[0,\pi] arg(x,y)=arccos(∥x∥2∥y∥2xTy)∈[0,π]
-
C a u c h y − S c h w a r t z Cauchy-Schwartz Cauchy−Schwartz不等式: ∀ x , y ∈ R n , ∣ x T y ∣ ≤ ∥ x ∥ 2 ∥ y ∥ 2 \forall x,y\in R^n,\lvert x^Ty\rvert\le\lVert x\rVert_2\lVert y\rVert_2 ∀x,y∈Rn,∣xTy∣≤∥x∥2∥y∥2
-
n × n n\times n n×n对称矩阵集合 S n S_n Sn上的标准内积为, ∀ X , Y ∈ S n \forall X,Y\in S^n ∀X,Y∈Sn,
< X , Y > = t r ( X T Y ) = ∑ i = 1 n ∑ j = 1 n x i j y i j = ∑ i = 1 n x i i y i i + 2 ∑ i < j x i j y i j \lt X,Y\gt=tr(X^TY)=\sum_{i=1}^n\sum_{j=1}^nx_{ij}y_{ij}=\sum_{i=1}^nx_{ii}y_{ii}+2\sum_{i\lt j}x_{ij}y_{ij} <X,Y>=tr(XTY)=i=1∑nj=1∑nxijyij=i=1∑nxiiyii+2i<j∑xijyij
-
矩阵 X = [ x i j ] ∈ R m × n X=[x_{ij}]\in R^{m\times n} X=[xij]∈Rm×n的 F r o b e n i u s Frobenius Frobenius范数定义为
∥ X ∥ F = ( t r ( X T Y ) ) 1 2 = ( ∑ i = 1 m ∑ j = 1 n x i j 2 ) 1 2 \lVert X\rVert_F=(tr(X^TY))^\frac12=(\sum_{i=1}^m\sum_{j=1}^nx_{ij}^2)^\frac12 ∥X∥F=(tr(XTY))21=(i=1∑mj=1∑nxij2)21
范数
范数定义:满足以下条件的函数 f : R n ↦ R , d o m f = R n f:R^n\mapsto R,domf=R^n f:Rn↦R,domf=Rn称为范数
- f f f是非负的: ∀ x ∈ R n \forall x\in R^n ∀x∈Rn,有 f ( x ) ≥ 0 f(x)\ge0 f(x)≥0
- f f f是正定的:若 f ( x ) = 0 f(x)=0 f(x)=0,则 x = 0 x=0 x=0
- f f f是齐次的: ∀ x ∈ R n , t ∈ R \forall x\in R^n,t\in R ∀x∈Rn,t∈R,有 f ( t x ) = ∣ t ∣ f ( x ) f(tx)=\lvert t\rvert f(x) f(tx)=∣t∣f(x)
- f f f满足三角不等式: ∀ x , y ∈ R n \forall x,y\in R^n ∀x,y∈Rn,有 f ( x + y ) ≤ f ( x ) + f ( y ) f(x+y)\le f(x)+f(y) f(x+y)≤f(x)+f(y)
范数采用符号 f ( x ) = ∥ x ∥ f(x)=\lVert x\rVert f(x)=∥x∥,范数是对向量 x ∈ R n x\in R^n x∈Rn的长度的度量
两个向量 x , y ∈ R n x,y\in R^n x,y∈Rn之间用范数 ∥ ⋅ ∥ \lVert \cdot\rVert ∥⋅∥表示的距离定义为
d i s t ( x , y ) = ∥ x − y ∥ dist(x,y)=\lVert x-y\rVert dist(x,y)=∥x−y∥
l p l_p lp-范数
l p l_p lp-范数( p ≥ 1 p\ge 1 p≥1)
∥ x ∥ p = ( ∣ x 1 ∣ p + ∣ x 2 ∣ p + ⋯ + ∣ x n ∣ p ) 1 p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \lVert x\rVert_p=(\lvert x_1\rvert^p+\lvert x_2\rvert^p+\cdots+\lvert x_n\rvert^p)^\frac1p=(\sum_{i=1}^n\lvert x_i\rvert^p)^\frac1p ∥x∥p=(∣x1∣p+∣x2∣p+⋯+∣xn∣p)p1=(i=1∑n∣xi∣p)p1
- l 1 l1 l1-范数: ∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ \lVert x\rVert_1=\sum_{i=1}^n\lvert x_i\rvert ∥x∥1=∑i=1n∣xi∣
- l 2 l2 l2-范数( E u c i l d Eucild Eucild范数): ∥ x ∥ 2 = ( ∑ i = 1 n x i 2 ) 1 2 \lVert x\lVert_2=(\sum_{i=1}^nx_i^2)^\frac12 ∥x∥2=(∑i=1nxi2)21
- C h e b y s h e v Chebyshev Chebyshev或 l ∞ l_\infin l∞范数: ∥ x ∥ ∞ = max { ∣ x 1 ∣ , ∣ x 2 ∣ , ⋯ , ∣ x n ∣ } \lVert x\rVert_\infin=\max\{\lvert x_1\rvert,\lvert x_2\rvert,\cdots,\lvert x_n\rvert\} ∥x∥∞=max{∣x1∣,∣x2∣,⋯,∣xn∣}
l 0 l_0 l0-范数: ∥ x ∥ 0 = \lVert x\rVert_0= ∥x∥0=向量中非零元素的个数
二次范数
对 P ∈ S + + n P\in S_{++}^n P∈S++n,定义 P P P-二次范数如下:
∥ x ∥ p = ( x T P x ) 1 2 = ∥ p 1 2 x ∥ 2 \lVert x\rVert_p=(x^TPx)^\frac12=\lVert p^\frac12x\rVert_2 ∥x∥p=(xTPx)21=∥p21x∥2
- 二次范数的单位球是椭圆
- 如果一个范数的单位球是椭圆,该范数是二次范数
矩阵范数
-
矩阵 X = [ x i j ] ∈ R m × n X=[x_{ij}]\in R^{m\times n} X=[xij]∈Rm×n的 F r o b e n i u s Frobenius Frobenius范数
∥ X ∥ F = ( t r ( X T Y ) ) 1 2 = ( ∑ i = 1 m ∑ j = 1 n x i j 2 ) 1 2 \lVert X\rVert_F=(tr(X^TY))^\frac12=(\sum_{i=1}^m\sum_{j=1}^nx_{ij}^2)^\frac12 ∥X∥F=(tr(XTY))21=(i=1∑mj=1∑nxij2)21
-
矩阵 X = [ x i j ] ∈ R m × n X=[x_{ij}]\in R^{m\times n} X=[xij]∈Rm×n的绝对值之和范数
∥ X ∥ s a v = ∑ i = 1 m ∑ j = 1 n ∣ x i j ∣ \lVert X\rVert_{sav}=\sum_{i=1}^m\sum_{j=1}^n\lvert x_{ij}\rvert ∥X∥sav=i=1∑mj=1∑n∣xij∣
-
矩阵 X = [ x i j ] ∈ R m × n X=[x_{ij}]\in R^{m\times n} X=[xij]∈Rm×n的最大绝对值范数
∥ X ∥ m a v = max { ∣ x i j ∣ : i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , n } \lVert X\rVert_{mav}=\max\{\lvert x_{ij}\rvert:i=1,2,\cdots,m;j=1,2,\cdots,n\} ∥X∥mav=max{∣xij∣:i=1,2,⋯,m;j=1,2,⋯,n}
范数的等价性
令 ∥ ⋅ ∥ a \lVert\cdot\rVert_a ∥⋅∥a和 ∥ ⋅ ∥ b \lVert\cdot\rVert_b ∥⋅∥b是 R n R^n Rn上的范数,则存在正常数 α , β \alpha,\beta α,β对所有的 x ∈ R n x\in R^n x∈Rn,有
α ∥ x ∥ a ≤ ∥ x ∥ b ≤ β ∥ x ∥ a \alpha\lVert x\rVert_a\le\lVert x\rVert_b\le\beta\lVert x\rVert_a α∥x∥a≤∥x∥b≤β∥x∥a
- 任何有限维向量空间上的范数都是等价的
- 推论:任意范数可由 E u c l i d Euclid Euclid范数进行界定,即存在常数 γ ∈ ( 0 , 1 ] \gamma\in(0,1] γ∈(0,1],使得
∥ x ∥ ≥ γ ∥ x ∥ 2 \lVert x\rVert\ge\gamma\lVert x\rVert_2 ∥x∥≥γ∥x∥2
对偶范数
定义:令 ∥ ⋅ ∥ \lVert\cdot\rVert ∥⋅∥是 R n R^n Rn上的范数,其对偶范数 ∥ ⋅ ∥ ∗ \lVert\cdot\rVert_* ∥⋅∥∗定义为
∥ z ∥ ∗ = sup { z T x : ∥ x ∥ ≤ 1 } = sup { z T x : ∥ x ∥ = 1 } \lVert z\rVert_*=\sup\{z^Tx:\lVert x\rVert\le1\}=\sup\{z^Tx:\lVert x\rVert=1\} ∥z∥∗=sup{zTx:∥x∥≤1}=sup{zTx:∥x∥=1}
范数的对偶
- l 2 l_2 l2-范数: ∥ z ∥ ∗ = sup { z T x : ∥ x ∥ 2 = 1 } = ∥ z ∥ 2 \lVert z\rVert_*=\sup\{z^Tx:\lVert x\rVert_2=1\}=\lVert z\rVert_2 ∥z∥∗=sup{zTx:∥x∥2=1}=∥z∥2
- l 1 l_1 l1-范数: ∥ z ∥ ∗ = s u p { z T x : ∥ x ∥ 1 = 1 } = max { z 1 , z 2 } = ∥ z ∥ ∞ \lVert z\rVert_*=sup\{z^Tx:\lVert x\rVert_1=1\}=\max\{z_1,z_2\}=\lVert z\rVert_\infin ∥z∥∗=sup{zTx:∥x∥1=1}=max{z1,z2}=∥z∥∞
- l ∞ l_\infin l∞-范数: ∥ z ∥ ∗ = s u p { z T x : ∥ x ∥ ∞ = 1 } = ∥ z ∥ 1 \lVert z\rVert_*=sup\{z^Tx:\lVert x\rVert_\infin=1\}=\lVert z\rVert_1 ∥z∥∗=sup{zTx:∥x∥∞=1}=∥z∥1
- l p l_p lp-范数: ∥ z ∥ ∗ = s u p { z T x : ∥ x ∥ p = 1 } = ∥ z ∥ q \lVert z\rVert_*=sup\{z^Tx:\lVert x\rVert_p=1\}=\lVert z\rVert_q ∥z∥∗=sup{zTx:∥x∥p=1}=∥z∥q当且仅当 1 p + 1 q = 1 \frac1p+\frac1q=1 p1+q1=1
对偶范数的性质
- 性质 1: z T x ≤ ∥ x ∥ ⋅ ∥ z ∥ ∗ ( ∀ x ) z^Tx\le\lVert x\rVert\cdot\lVert z\rVert_*\ (\forall x) zTx≤∥x∥⋅∥z∥∗ (∀x)
- 性质 2:对偶范数的对偶范数为原范数,即 ∥ x ∥ ∗ ∗ = ∥ x ∥ \lVert x\rVert_{**}=\lVert x\rVert ∥x∥∗∗=∥x∥
导数
假定: f : R n ↦ R m , x ∈ i n t d o m f f:R^n\mapsto R^m,x\in int\ domf f:Rn↦Rm,x∈int domf。函数 f f f在 x x x处可微,则存在矩阵 D f ( x ) ∈ R m × n Df(x)\in R^{m\times n} Df(x)∈Rm×n满足
l i m z ∈ d o m f , z ≠ x , z → x ∥ f ( z ) − f ( x ) − D f ( x ) ( z − x ) ∥ 2 ∥ z − x ∥ 2 = 0 \underset{z\in domf,z\neq x,z\rightarrow x}{lim}\frac{\lVert f(z)-f(x)-Df(x)(z-x)\rVert_2}{\lVert z-x\rVert_2}=0 z∈domf,z=x,z→xlim∥z−x∥2∥f(z)−f(x)−Df(x)(z−x)∥2=0
- D f ( x ) ∈ R m × n Df(x)\in R^{m\times n} Df(x)∈Rm×n称为 f f f在 x x x处的导数(或 J a c o b i a n Jacobian Jacobian矩阵)
- 偏导数: D f ( x ) i j = ∂ f i ( x ) ∂ x i , i = 1 , 2 , ⋯ , m ; j = 1 , 2 , ⋯ , n Df(x)_{ij}=\frac{\partial f_i(x)}{\partial x_i},i=1,2,\cdots,m;j=1,2,\cdots,n Df(x)ij=∂xi∂fi(x),i=1,2,⋯,m;j=1,2,⋯,n
f f f在 x x x处以 z z z为变量的一次逼近为: f ‾ ( z ) = f ( x ) + D f ( x ) ( z − x ) \overline{f}(z)=f(x)+Df(x)(z-x) f(z)=f(x)+Df(x)(z−x)
梯度
实函数: f : R n → R , x ∈ i n t d o m f f:R^n\rightarrow R,x\in int\ domf f:Rn→R,x∈int domf的导数为行向量 D f ( x ) ∈ R 1 × n Df(x)\in R^{1\times n} Df(x)∈R1×n,其转置称为函数的梯度,即
∇ f ( x ) = D f ( x ) T ∈ R n \nabla f(x)=Df(x)^T\in R^n ∇f(x)=Df(x)T∈Rn
这里 ∇ f ( x ) i = ∂ f ( x ) ∂ x i , i = 1 , 2 , ⋯ , n \nabla f(x)_i=\frac{\partial f(x)}{\partial x_i},i=1,2,\cdots,n ∇f(x)i=∂xi∂f(x),i=1,2,⋯,n
f f f在 x ∈ i n t d o m f x\in int\ domf x∈int domf处以 z z z为变量的一次逼近: f ‾ ( z ) = f ( x ) + ∇ f ( x ) T ( z − x ) \overline{f}(z)=f(x)+\nabla f(x)^T(z-x) f(z)=f(x)+∇f(x)T(z−x)
凸集
定义
凸集的定义:集合 C ∈ R n C\in R^n C∈Rn称为凸集,如果 ∀ x , y ∈ C \forall x,y\in C ∀x,y∈C及 ∀ θ ∈ [ 0 , 1 ] \forall \theta\in[0,1] ∀θ∈[0,1],有
z = θ x + ( 1 − θ ) y ∈ C z=\theta x+(1-\theta)y\in C z=θx+(1−θ)y∈C
凸集中任意两点的连线仍在该集合中
多个点 x 1 , x 2 , ⋯ , x m ∈ C x_1,x_2,\cdots,x_m\in C x1,x2,⋯,xm∈C的凸组合定义为:
{ z : z = ∑ i = 1 m λ i x i , ∀ λ i ≥ 0 , ∑ i = 1 m λ i = 1 } \{z:z=\sum_{i=1}^m\lambda_ix_i,\forall\lambda_i\ge0,\sum_{i=1}^m\lambda_i=1\} {z:z=i=1∑mλixi,∀λi≥0,i=1∑mλi=1}
性质
- 凸集合的交运算:令 { C i : i ∈ I } \{C_i:i\in I\} {Ci:i∈I}是凸集的集合,那么 ∩ i ∈ I C i \cap_{i\in I}C_i ∩i∈ICi是凸集
- 凸集合的和运算:令 C 1 , C 2 C_1,C_2 C1,C2为凸集合,则 { x 1 + x 2 : x 1 ∈ C 1 , x 2 ∈ C 2 } \{x_1+x_2:x_1\in C_1,x_2\in C_2\} {x1+x2:x1∈C1,x2∈C2}是凸集
- 仿射函数保凸集:仿射函数
f
(
x
)
=
A
x
+
b
f(x)=Ax+b
f(x)=Ax+b,这里
A
∈
R
m
×
n
,
b
∈
R
m
A\in \mathbb R^{m\times n},b\in\mathbb R^m
A∈Rm×n,b∈Rm有
- S ⊆ R n S\subseteq\mathbb R^n S⊆Rn是凸集 ⇒ f ( S ) = { f ( x ) : x ∈ S } \Rightarrow f(S)=\{f(x):x\in S\} ⇒f(S)={f(x):x∈S}是凸集
- S ⊆ R m S\subseteq\R^m S⊆Rm是凸集 ⇒ f − 1 ( S ) = { x ∈ R n : f ( S ) ∈ S } \Rightarrow f^{-1}(S)=\{x\in \R^n:f(S)\in S\} ⇒f−1(S)={x∈Rn:f(S)∈S}是凸集
凸函数
定义
凸函数(Convex Function):
令集合 C ⊆ R n C\subseteq\R^n C⊆Rn是一凸集。 ∀ x , y ∈ C , ∀ λ ∈ [ 0 , 1 ] \forall x,y\in C,\forall\lambda\in[0,1] ∀x,y∈C,∀λ∈[0,1],如果函数 f : C → R f:C\rightarrow\R f:C→R满足以下条件
f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y)\le\lambda f(x)+(1-\lambda)f(y) f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)
则 f f f为凸函数。
凹函数(Concave Function):
令集合 C ⊆ R n C\subseteq\R^n C⊆Rn是一凸集。 ∀ x , y ∈ C , ∀ λ ∈ [ 0 , 1 ] \forall x,y\in C,\forall\lambda\in[0,1] ∀x,y∈C,∀λ∈[0,1],如果函数 f : C → R f:C\rightarrow\R f:C→R满足以下条件
f ( λ x + ( 1 − λ ) y ) ≥ λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y)\ge\lambda f(x)+(1-\lambda)f(y) f(λx+(1−λ)y)≥λf(x)+(1−λ)f(y)
则 f f f为凹函数。
定理:函数 f : C → R f:C\rightarrow\R f:C→R是凹函数当且仅当函数 − f -f −f是凸函数
严格凸函数(Strictly Convex):
严格凹函数(Strictly Concave):
一阶判定
定理: C ⊆ R n C\subseteq\R^n C⊆Rn为凸集且函数 f : C → R f:C\rightarrow\R f:C→R在集合 C C C上可微,那么
-
函数 f f f是凸函数当且仅当 ∀ x , y ∈ C \forall x,y\in C ∀x,y∈C,有
f ( y ) ≥ f ( x ) + ∇ T f ( x ) ( y − x ) f(y)\ge f(x)+\nabla^Tf(x)(y-x) f(y)≥f(x)+∇Tf(x)(y−x)
-
如果 ∀ x , y ∈ C \forall x,y\in C ∀x,y∈C且 x ≠ y , f ( y ) > f ( x ) + ∇ T f ( x ) ( y − x ) x\neq y,f(y)\gt f(x)+\nabla^Tf(x)(y-x) x=y,f(y)>f(x)+∇Tf(x)(y−x),那么函数 f f f是严格凸函数
二阶判定
定理: C ⊆ R n C\subseteq\R^n C⊆Rn为凸集(开集)且函数 f : C → R f:C\rightarrow\R f:C→R在集合 C C C上二阶连续可微,那么
- 函数 f f f是凸函数当且仅当 ∀ x ∈ C , ∇ 2 f ( x ) \forall x\in C,\nabla^2f(x) ∀x∈C,∇2f(x)为对称半正定矩阵
- 如果 ∀ x ∈ C , ∇ 2 f ( x ) \forall x\in C,\nabla^2f(x) ∀x∈C,∇2f(x)为对称正定矩阵,那么函数 f f f是严格凸函数
这里, ∀ x = [ x 1 , x 2 , ⋯ , x n ] ∈ C \forall x=[x_1,x_2,\cdots,x_n]\in C ∀x=[x1,x2,⋯,xn]∈C,函数 f f f的 Hessian 矩阵 ∇ 2 f ( x ) ∈ R n × n \nabla^2f(x)\in\R^{n\times n} ∇2f(x)∈Rn×n定义为
( ∇ 2 f ( x ) ) i j = ∂ 2 f ( x ) ∂ x i ∂ x j ( i , j = 1 , 2 , ⋯ , n ) (\nabla^2f(x))_{ij}=\frac{\partial^2f(x)}{\partial x_i\partial x_j}\ \ (i,j=1,2,\cdots,n) (∇2f(x))ij=∂xi∂xj∂2f(x) (i,j=1,2,⋯,n)
推论: C ⊆ R n C\subseteq\R^n C⊆Rn为凸集且函数 f : C → R f:C\rightarrow\R f:C→R定义为 f ( X ) = x T Q x + 2 p T x + r f(X)=x^TQx+2p^Tx+r f(X)=xTQx+2pTx+r,这里, Q ∈ S n Q\in S^n Q∈Sn为对称矩阵,那么
- 函数 f f f是凸函数当且仅当 Q Q Q为对称半正定矩阵
- 函 f f f是凹函数当且仅当 Q Q Q为对称半负定矩阵
- 函数 f f f是严格凸(凹)函数当且仅当 Q Q Q为对称正(负)定矩阵
- 否则,函数 f f f为非凸非凹函数
性质
-
非负乘积保持凸性: ∀ α ≥ 0 \forall\alpha\geq0 ∀α≥0,如果函数 f f f是定义在 C C C上的凸函数,则函数 g ( x ) = α f ( x ) g(x)=\alpha f(x) g(x)=αf(x)是凸函数
-
和运算保持凸性:如果函数 f 1 , f 2 f_1,f_2 f1,f2为凸函数,那么函数 g ( x ) = f 1 ( x ) + f 2 ( x ) g(x) = f_1(x)+f_2(x) g(x)=f1(x)+f2(x)为凸函数
-
C ∈ R n C\in R^n C∈Rn为凸集且 { f i : C → R ∣ i ∈ I } \{f_i:C\rightarrow\R|i\in I\} {fi:C→R∣i∈I}是凸函数的集合,则其权重和 f = ∑ i ∈ I w i f i f=\sum_{i\in I}w_if_i f=∑i∈Iwifi是凸函数,这里权重 w i ≥ 0 , ∀ i ∈ I w_i\geq0,\forall i\in I wi≥0,∀i∈I
-
f f f是定义在凸集 C ⊆ R n C\subseteq\R^n C⊆Rn上的凸函数,则 g : B → R , g ( x ) = f ( A x + b ) , B = { A x + b : x ∈ C } g:B\rightarrow\R,g(x)=f(Ax+b),B=\{Ax+b:x\in C\} g:B→R,g(x)=f(Ax+b),B={Ax+b:x∈C}是凸函数
-
函数 f ( x , y ) f(x,y) f(x,y)是定义在集合 Z = { ( x T , y T ) T : x ∈ R m , y ∈ R n } Z=\{(x^T,y^T)^T:x\in\R^m,y\in\R^n\} Z={(xT,yT)T:x∈Rm,y∈Rn}上的凸函数。则对凸集合 C C C,有 g ( x ) = inf y ∈ C f ( x , y ) g(x)=\underset{y\in C}{\inf}f(x,y) g(x)=y∈Cinff(x,y)是凸函数
-
如何对于任意的 y ∈ A , f ( x , y ) y\in A,f(x,y) y∈A,f(x,y)是关于 x x x的凸函数,那么 g ( x ) = sup y ∈ A f ( x , y ) g(x)=\underset{y\in A}{\sup} f(x,y) g(x)=y∈Asupf(x,y)是凸函数。
-
共轭函数:函数 f : R n → R f:\R^n\rightarrow\R f:Rn→R的共轭函数 f ∗ : R n → R f^*:\R^n\rightarrow\R f∗:Rn→R定义为:仿射函数 y T x y^Tx yTx与 f ( x ) f(x) f(x)之间的最大差值,即 f ∗ ( x ) = sup x ∈ d o m f ( y T x − f ( x ) ) f^*(x)=\underset{x\in domf}{\sup}(y^Tx-f(x)) f∗(x)=x∈domfsup(yTx−f(x))
- 如果函数 f f f可微,在满足 f ′ ( x ) = y f'(x)=y f′(x)=y的点 x x x处差值最大。
- 对于任意函数 f f f,其共轭函数 f ∗ f^* f∗为凸函数1
-
C ∈ R n C\in R^n C∈Rn为凸集且 { f i : C → R ∣ i ∈ I } \{f_i:C\rightarrow R|i\in I\} {fi:C→R∣i∈I}是凸函数的集合,那么函数 h : C → R , h ( x ) = sup i ∈ I f i ( x ) h:C\rightarrow\R,h(x)=\underset{i\in I}{\sup}f_i(x) h:C→R,h(x)=i∈Isupfi(x)是凸函数。当 I I I是有限指标集合时,
h ( x ) = sup i ∈ I f i ( x ) = max { f 1 ( x ) , f 2 ( x ) , ⋯ , f n ( x ) } h(x)=\underset{i\in I}{\sup}f_i(x)=\max\{f_1(x),f_2(x),\cdots,f_n(x)\} h(x)=i∈Isupfi(x)=max{f1(x),f2(x),⋯,fn(x)}
Jensen’s Inequality
C
∈
R
n
C\in\R^n
C∈Rn为凸集且
f
(
x
)
,
x
∈
C
f(x),x\in C
f(x),x∈C是凸函数。
∀
x
1
,
x
2
,
⋯
,
x
k
∈
C
,
∀
λ
1
,
λ
2
,
⋯
,
λ
k
≥
0
\forall x_1,x_2,\cdots,x_k\in C,\forall\lambda_1,\lambda_2,\cdots,\lambda_k\geq0
∀x1,x2,⋯,xk∈C,∀λ1,λ2,⋯,λk≥0且
λ
1
+
λ
2
+
⋯
+
λ
k
=
1
(
k
≥
2
)
\lambda_1+\lambda_2+\cdots+\lambda_k=1(k\geq2)
λ1+λ2+⋯+λk=1(k≥2),有
f
(
∑
i
=
1
k
λ
i
x
i
)
≤
∑
i
=
1
k
λ
i
f
(
x
i
)
f(\sum_{i=1}^k\lambda_ix_i)\leq\sum_{i=1}^k\lambda_if(x_i)
f(i=1∑kλixi)≤i=1∑kλif(xi)
- 积分形式: f ( ∫ p ( x ) x d x ) ≤ ∫ p ( x ) f ( x ) d x f(\int p(x)xdx)\leq\int p(x)f(x)dx f(∫p(x)xdx)≤∫p(x)f(x)dx,这里 ∫ p ( x ) d x = 1 , p ( x ) ≥ 0 , ∀ x ∈ C \int p(x)dx=1,p(x)\geq0,\forall x\in C ∫p(x)dx=1,p(x)≥0,∀x∈C
- 概率形式: f ( E [ x ] ) ≤ E [ f ( x ) ] f(E[x])\leq E[f(x)] f(E[x])≤E[f(x)]
透视函数
透视函数 P : R n + 1 → R n P:\R^{n+1}\rightarrow\R^n P:Rn+1→Rn定义为: P ( z , t ) = z t , d o m P = R n × R + + P(z,t)=\frac zt,domP=\R^n\times\R_{++} P(z,t)=tz,domP=Rn×R++
- 透视函数对向量进行伸缩,或称为规范化,使得最后一维分量为1并舍弃之
- 定义在凸集上的透视函数的象仍然是凸集
函数
f
:
R
n
→
R
f:\R^n\rightarrow\R
f:Rn→R的透视函数
g
:
R
n
×
R
→
R
g:\R^n\times\R\rightarrow\R
g:Rn×R→R定义为:
g
(
x
,
t
)
=
t
f
(
x
t
)
,
d
o
m
g
=
{
(
x
,
t
)
:
x
t
∈
d
o
m
f
,
t
>
0
}
g(x,t)=tf(\frac xt),\ domg=\{(x,t):\frac xt\in domf,t>0\}
g(x,t)=tf(tx), domg={(x,t):tx∈domf,t>0}
- 如果函数 f f f是凸函数,那么其透视函数 g g g也是凸函数
凸函数的判定方法总结
- 定义: f ( λ x + ( 1 − λ ) y ) ≤ λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y)\leq\lambda f(x)+(1-\lambda)f(y) f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)
- 一阶判定: f ( y ) ≥ f ( x ) + ∇ T f ( x ) ( y − x ) f(y)\geq f(x)+\nabla^Tf(x)(y-x) f(y)≥f(x)+∇Tf(x)(y−x)
- 二阶判定: ∀ x ∈ C , ∇ 2 f ( x ) \forall x\in C,\nabla^2f(x) ∀x∈C,∇2f(x)为对称半正定矩阵
- 保凸函数运算
优化问题
凸优化问题数学标准形式
min x f 0 ( x ) s . t . f i ( x ) ≤ 0 ( i = 1 , 2 , ⋯ , m ) h j ( x ) = 0 ( j = 1 , 2 , ⋯ , n ) \begin{aligned} \underset{x}{\min}\ &f_0(x)\\ s.t.\ &f_i(x)\leq0\ (i=1,2,\cdots,m)\\ &h_j(x)=0\ (j=1,2,\cdots,n) \end{aligned} xmin s.t. f0(x)fi(x)≤0 (i=1,2,⋯,m)hj(x)=0 (j=1,2,⋯,n)
- 目标函数为凸函数
- 不等式限制为凸函数
- 等式限制函数为仿射函数
参考这两篇文章:共轭函数两个性质的证明,凸优化理论:共轭函数 ↩︎