共轭梯度法的简单直观理解

该文章已生成可运行项目,

参考资料

本文是参考以下内容,结合自己的理解做的笔记。请尽量直接访问下述网页。

  1. 矩阵与数值计算(11)——共轭梯度法
  2. 共轭梯度法(一):线性共轭梯度
  3. 无痛版共轭梯度法介绍(更新到第五章)
  4. 共轭梯度法通俗讲义
    第4个资料尤其清晰完备,很多都是参考它的。

What is: 什么是共轭梯度法?(简单直观理解)

共轭梯度法可以看作是梯度下降法(又称最速下降法)的一个改进。

对梯度下降来说
x ⃗ i + 1 = x ⃗ i − α ∇ f \vec x_{i+1}=\vec x_i - \alpha\nabla f x i+1=x iαf
其中 α \alpha α控制了一步要走多远,因此被称为步长,在机器学习里面又称为学习率

梯度下降法x移动的方向正是函数f的负梯度方向,这代表了局部上f减小最快的方向。

但是局部上减小最快的方向并不代表全局上指向最终解的方向。所以梯度下降法会出现像醉汉下山一样走出zig-zag的路线。如下图
在这里插入图片描述

图1 梯度下降法在2维解空间(也就是解向量只有两个维度)走出的路径示意图。
注:假如A是正定对称阵,其2维解空间必定是椭圆的。

为什么会走出这一Z形线呢?因为梯度下降的方向恰好与f垂直,也就是说和等高线垂直。沿着垂直于等高线的方向,一定能让函数减小,也就是最快地下了一个台阶。但是最快下台阶并不意味着最快到达目标位置(即最优解),因为你最终的目标并不是直对着台阶的。

为了修正这一路线,采用另一个方向:即共轭向量的方向。

我们先暂且给出共轭梯度法最后的形式,方便字母的定义:
x ⃗ i + 1 = x ⃗ i − α d ⃗ i \vec x_{i+1}=\vec x_i - \alpha \vec d_i x i+1=x iαd i
对照梯度下降法,每次向下走的方向不是梯度了,而是专门的一个方向 d ⃗ \vec d d 。除此之外和梯度下降法几乎一样。

在推进下一步之前,我们来看看什么是向量共轭。

共轭向量

下面先简要介绍共轭向量

所谓共轭向量,在数学上即:
p i T A p j = 0 p_i^TAp_j=0 piTApj=0

其中A是一个对称正定矩阵。
p i p_i pi p j p_j pj一对共轭的向量

可见,共轭是正交的推广化,因为向量正交的定义为:
p i T p j = 0 p_i^Tp_j=0 piTpj=0
共轭比正交中间只多了个矩阵A,而矩阵的几何意义正是对一个向量进行线性变换(可见Gilber Strang的线代公开课)。因此共轭向量的意思就是一个向量经过线性变换(缩放剪切和旋转)之后与另一个向量正交。

共轭方向

言归正传,如何找到一个更好的方向呢?我们首先可以看看最完美的方向是什么样的。

下面这张图展示的就是最完美的方向。图中向量e代表的是误差。向量d就是方向向量。
在这里插入图片描述

误差e即当前迭代所得到的解与精确解的差值:
e ⃗ i = x ⃗ i − x ⃗ ∗ \vec e_i=\vec x_i- \vec x^* e i=x ix

可惜我们并不能找到误差向量e,因为我们不知道精确解。

那么退而求其次,我们就找误差向量的共轭向量。因为图中可以看出,误差向量是与方向向量垂直的,即正交。刚才说了,共轭就是正交的推广。一个向量乘以一个矩阵之后与另一个方向正交,就是共轭。

即找到
d ⃗ T A e ⃗ = 0 \vec d ^T A \vec e =0 d TAe =0

但是这个公式里面仍然含有e,我们必须想办法去掉它,换成一个我们可以计算的量。

在推进下一步之前,我们先来看看误差与残差这两个概念的区别。

误差与残差

前面写道:

误差error 即当前迭代所得到的解与精确解的差值:
e ⃗ i = x ⃗ i − x ⃗ ∗ \vec e_i=\vec x_i- \vec x^* e i=x ix

但是这种定义显然是没法直接用的,因为我们不知道精确解 x ∗ x^* x

那么退而求其次,我们想到,当误差收敛为0的时候,必然满足方程Ax=b,那么由此就可以定义出残差residual

r ⃗ i = b ⃗ − A x ⃗ i \vec r_i=\vec b-A\vec x_i r

本文章已经生成可运行项目
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值