DynamicFusion之预处理共轭梯度下降(Pre-conditioned Conjugate Gradient Solver)

理解DynamicFusion中的预条件共轭梯度下降
本文详细介绍了预条件共轭梯度下降(Pre-conditioned Conjugate Gradient Solver)在DynamicFusion中的应用。在解决大规模线性问题时,直接法不适用,迭代优化成为首选。共轭梯度下降是其中一种有效方法,利用Krylov子空间的概念逐步优化解。文章通过解释Krylov子空间和序列,帮助读者理解共轭梯度下降的工作原理。

在看DynamicFusion这篇文章时,同学们有可能会主要到文章运到了一个很让人百思不解的solver叫做Pre-conditioned Conjugate Gradient Solver。在优快云上转了一圈发现,对于conjugate gradient method深入讲解的文章少之又少,所以决定写一篇能让有一定线性代数基础的同学理解得懂的文章。Ok, let’s get started.

迭代优化问题

假设我们有一个线性问题(用AAAbbb来去求xxx):
Ax=bAx = bAx=b
如果用直接法(direct method)来求得话,我们可以直接得到:
x=(ATA)−1ATbx = (A^TA)^{-1}A^Tbx=(ATA)1ATb
这种方法好但是如果AAA是一个Rn×nR^{n\times n}Rn×nn>108n > 10^8n>108的矩阵的话,对ATAA^TAATA直接做Inverse显然是不可取的。于是非直接的迭代优化方式就此诞生。简单来说间接法是用迭代的方式更新xxx来缩小AxAxAxbbb的距离。
δx=arg min⁡δx(E(x+δx))=arg min⁡δx(12∣∣A(x+δx)−b∣∣2)\delta x = \argmin_{\delta x}(E(x + \delta x)) = \argmin_{\delta x} (\frac{1}{2}||A(x + \delta x)-b||^2)δx=δxargmin(E(x+δx))=δxargmin(21A(x+δx)b2)
x′=x+δxx' = x + \delta xx=x+δx
不断迭代知道更新后的x′x'x对距离影响与之前相比不大为止(convergence)。

学视觉或者做神经网的朋友可能都会经常接触到一些常用的迭代优化的算法,如:

  1. 梯度下降:δx=α∂E∂x\delta x = \alpha \frac{\partial E}{\partial x}δx=α
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值