凸二次优化问题
Theory. 设
是实对称正定矩阵,
,则求解凸二次优化问题
等价于求解线性方程组
。
Proof. 二次型二阶可导,极小值点处梯度为零,现对优化的目标函数求梯度。二次型本质上具有:
计算梯度的分量表达式:
合在一起写成矩阵形式:
显然,凸二次优化问题的极值条件等价于该线性方程组。凸二次优化问题在建模中十分常见,这说明讨论线性方程组的求解方法具有普遍的实用价值。然而对于规模较大的问题,使用线性代数中的克莱姆法则暴力展开将导致时间开销巨大,而高斯消元法算法流程又较为复杂。本文将介绍一种常见的数值分析方法,求得线性方程组的数值近似解。
最速梯度下降法
称优化目标函数的梯度为残量(Residue),即是当前解对于线性方程组的不满足量:
由于函数是凸函数,极值点一定存在。当前解处函数的梯度值表示了函数值上升最快的方向(梯度方向上方向导数最大)。那么沿着相反的方向每迭代一步就会更加靠近最优的极小值解。于是,我们定义迭代关系:
其中
表示迭代第
轮的解,
表示每轮迭代的步长,即每一步下降多少的权重。之所以需要设计一个与
相关的步长,是因为随着迭代的进行,梯度是变化的。越靠近驻点的梯度将会越小,直到接近于0时收敛。同时还要考虑在接近于驻点时应该放缓步伐,否则会出现梯度在正负之间频繁震荡,解在最优解左右摇摆的情况。
在最速下降法中,将
作为自变量代入原函数,并看作
的函数,对其进行最小化:
同样的,驻点处梯度为零。根据链式求导法则:
最后一步由于
是正定矩阵,所以分母也是一个正定二次型,值不为零,可以直接除过来。由此,我们最终得到了解的迭代关系:
算例设计与实验
参考南科大的数值分析作业题EH计算设计SUSTech的算例一(由于版权关系无传送门)
生成实对称正定矩阵 采用文献[1]中的类似方法生成矩阵
:
其中
和
分别为Householder矩阵和对角矩阵:
Householder矩阵是对称正交矩阵,这时,对角矩阵的特征值就是