去年就想看一下优化和泛函变分相关的内容,但没有空余的排期,大部分学习时间花在了强化学习方面。
今年,正好近期项目也有需要,凸优化提上了自学日程。
参考书目:
《凸优化》清华大学出版社,Stephen Boyd, Lieven Vandenberghe著,王书宁,许鋆,黄晓霖 译
全书700页,计划用半年的时间完成一刷。
数学模型
m i n i n i z e f 0 ( x ) s u b j e c t t o f i ( x ) ≤ b i , i = 1 , 2 , ⋯ , m \begin{aligned} mininize \ &f_0(x) \\ subject \ to \ &f_i(x)\leq b_i, \ i=1,2,\cdots,m \end{aligned} mininize subject to f0(x)fi(x)≤bi, i=1,2,⋯,m
线性优化:目标函数和约束函数均为线性函数;
凸优化:目标函数和约束函数均为凸函数;
凸性是较线性更为一般的性质,线性函数是凸函数的一个特例,因此线性规划问题也是凸优化问题。
应用
求解
m i n i n i z e f 0 ( x ) = ∥ A x − b ∥ 2 2 \begin{aligned} mininize \ &f_0(x)=\lVert Ax-b\rVert _2^2 \end{aligned} mininize f0(x)=∥Ax−b∥22
等效于求解:
A T A x = A T b A^TAx=A^Tb ATAx=ATb
存在解析解:
x = ( A T A ) − 1 A T b x=(A^TA)^{-1}A^Tb x=(ATA)−1ATb
即 b b b左乘 A A A的广义逆。
可以认为,最小二乘问题的求解是一项(成熟的)技术。
目标函数和约束函数均为线性函数
m i n i n i z e f 0 ( x ) = c T x s u b j e c t t o f i ( x ) = a i T x ≤ b i , i = 1 , 2 , ⋯ , m \begin{aligned} mininize \ &f_0(x)=c^Tx \\ subject \ to \ &f_i(x)=a_i^Tx\leq b_i, \ i=1,2,\cdots,m \end{aligned} mininize subject to f0(x)=cTxfi(x)=aiTx≤bi, i=1,2,⋯,m
不存在解析解,但存在很多有效地求解方法:
可以说,求解(大部分)线性规划问题,也是一项(成熟的)技术。
目标函数和约束函数,都是凸函数。
有效的求解方法:内点法。
虽然有点夸张,如果某个实际问题可以表述为凸优化问题,那么事实上已经解决了这个问题
目标函数或者约束函数,是非线性,且不一定为凸函数。
局部优化
全局优化
应用