读书期间没有学习过最优化理论相关的课程,因工作需要了解,机缘巧合在B站上看到了上财崔雪婷老师的课程,听了一下讲的挺不错,在此结合网络资源记录一些笔记,供自己回顾使用。因自己只为工程使用,并不求数学严谨,只求通俗易懂。附上崔老师的课程链接。https://www.bilibili.com/video/BV1m7411u72b?from=search&seid=4862713296099276815。另参考书为《最优化理论基础与方法》第二版(王燕军)
\( f(x) \) 是n元函数,自变量为 \( x = (x_{1}, x_{2}, ..., x_{n})^{T}\)
线性函数:\( f(x) = b^{T}x\),则\( \nabla f(x) = b\),\( \nabla^{2}f(x) = 0\)
二次函数:\( f(x) = x^{T}Ax + b^{T}x + c\),这里\( A \)为对称阵,则\( \nabla f(x) = 2Ax + b\),\( \nabla^{2}f(x) = 2A\)
以上具体的一些数学定义可见:https://zhuanlan.zhihu.com/p/94879910?from_voters_page=true
凸函数的定义:凸集上函数\( f(x) \)值满足下列式子:
对于任意\( 0 \leq \alpha \leq 1\),有\( f(\alpha x + (1 - \alpha)y) \leq \alpha f(x) + (1 - \alpha) f(y)\)
形状上和通常认知的凸是相反的(因为凸优化问题通常是求最小值,所以对应凸函数是长成下凹的)。
几个重要性质:
(1)凸优化问题的局部极小值是全局极小值
(2)凸函数其Hessian矩阵半正定
以上一些重要的数学表达可见:https://zhuanlan.zhihu.com/p/95081047
凸优化问题:凸集上的凸函数求最小值。不等式约束的函数是凸,等式约束是线性函数。(TODO此处需要补充一个连接)
优化问题的局部解/全局解通常可以转化为其一阶二阶导数的表达形式。
https://blog.csdn.net/feilong_csdn/article/details/83476277?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162166522416780264042172%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162166522416780264042172&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-83476277.first_rank_v2_pc_rank_v29&utm_term=%E5%87%B8%E5%87%BD%E6%95%B0&spm=1018.2226.3001.4187 (凸函数及凸优化的几个比较好的性质)
一阶必要条件:若点k是函数的一个局部解,若函数可微,那么在点k处的梯度为一个零向量。
二阶必要条件:一个点是局部解,若函数二阶可微,那么这个点的Hesse矩阵是半正定的。
最速下降,牛顿法,共轭梯度 (详细算法留在下一篇中)
KKT条件算是最优化理论的一个核心概念,虽然崔老师讲的很形象了,但是对于非数学背景的我来说理解上还是比较吃力。这里找到一个比较形象的解释来理解KKT条件究竟是表达什么:https://www.cnblogs.com/liaohuiqiang/p/7805954.html (拉格朗日,KKT条件几何解释)。其中最关键的是理解在最优解处优化目标函数的梯度方向和等式/不等式约束梯度方向的关系,需要一致。基于这种前提,就可以通过拉格朗日函数将原有的约束优化问题转化为拉格朗日函数求极值问题。
对偶理论是最优化理论早期发展的重要产物,从方法论上来看就非常古典,由于自我感觉我大概率不会用到,所以就搞清楚出发点,细节以后需要再慢慢琢磨吧。这里就回答一个问题:对偶理论到底是在搞什么?可参考:https://zhuanlan.zhihu.com/p/158870559,其中也有很多引文可参考。上面这个问题可以引申为两个问题:
(1)为什么要研究对偶问题?:原问题非凸,或者比较难解。对偶问题一定是凸优化问题,比较好解。
(2)对偶问题怎么定义,怎么理解?定义说实话有点绕,详细的数学描述可以参考上述链接。本质上来说,是通过广义拉格朗日函数在自变量定义域外,又引入了一个参数域\( \lambda \)和\( \mu \),然后使得对偶问题是原问题的下界,那对偶问题的研究对原问题研究就变得很有价值,甚至在某些情况下等价。关于下界:原问题可以等价为在\( \lambda \)和\( \mu \)域上求先最大,再在\( x \)域上求最小。对偶问题是先在\( x \)域上求最小,再在\( \lambda \)和\( \mu \)域上求最大。所以最小值的最大值肯定比最大值的最小值要小,成为下界。《最优化理论基础与方法》82页有个图示,可以辅助理解。
这里有一个疑问:对偶问题求最优的时候,函数最优值可以求出来,但是求得的是最优时的\( \lambda \)和\( \mu \)?对应的自变量怎么办?除了最优值,我们往往更关心最优解。
这里书中强调了两种方法(次梯度法,割平面法),但是并不觉得是特定于对偶问题的,这两种方法其实也广泛应用于其他问题的求解,关于具体算法将在下一篇中记录。