共轭梯度法的地位与范畴
凸优化在机器学习中应用非常广泛, 发展到今天, 理论已经非常成熟.
凸优化可以再细分为 无约束优化, 等式约束优化 和 不等式约束优化
通常我们可以把约束问题转化为无约束问题来处理, 所以, 无约束最优化是优化问题的基础.
一言以蔽之, 无约束最优化问题的形式是
其中,
在统计分析中, 参数估计都可以写成这个形式, 比如之前提到的负对数似然函数, 再如线性回归的最小二乘法
但是一般情况下, 很少能像线性回归一样直接写出参数的表达式, 因而无法得到封闭解(解析解).
我们需要借助数值方法迭代计算
常用的无约束最优化方法有:
- 最速下降法
- 牛顿法
- 共轭梯度法
- 变尺度法(拟牛顿法)
牛顿法的海森矩阵类似二次泰勒展开, 可以克服最速下降法法的锯齿现象(zigzag). 但求解海森矩阵的逆计算量很大甚至根本无法计算, 因此, 出现了迭代公式简单的 共轭梯度法 和 变尺度法. 概括说变尺度法是利用梯度的微分形式来近似海森矩阵的逆, 而共轭梯度法是利用共轭方向作为搜索方向, 减少了计算量, 思想简单, 却颇为巧妙.
共轭梯度法的数学原理
剩余的篇幅将围绕正定二次函数
其中
思想
正定函数
因此,
其中, 定义
表示向量在 G 度量意义下的范数
对角单位矩阵也是正定阵, 考虑
配方得
可以发现, 任一点的负梯度恰好对准
推广
不加证明给出一个定理: 在
对于
使
共轭
对于
则称它们关于
不加证明给出结论, 两个对应在
所以, 在
算法
好了, 理论准备完毕, 下面介绍算法步骤
任选初值
和方向向量 , 沿
方向直线搜索:
计算
在 梯度 ; 若 则停止迭代. 是 的极小值点. 求一个共轭方向
, s.t. 然后 , 转第 2 步
那么, 如何找出共轭方向呢?
共轭梯度法构造共轭方向
最容易想到的方法线性代数中学过, 我们可以从
任选初值
和方向向量 , 沿
方向直线搜索:
计算
在 梯度 ; 若 则停止迭代. 是 的极小值点. 构造共轭方向
, 只需如下两步: , 然后令 , 转第 2 步
算法的神奇之处在于, 对于正定二次函数, 最多迭代
证明
可以证明,
证明:
同理, 可以用数学归纳法证明
即证 不相等的任意
证明:
令
推广
即得证
使用和总结
我们一般使用的共轭梯度法称为 Fletcher Reeves 共轭梯度法, 它由
在
此外, 新手使用共轭梯度法时值得注意的是, 由于共轭梯度法非常依赖初始梯度方向, 拥有因为不能精确计算
水平有限, 欢迎指教
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章