Skip to content

算法Algorithm

Anderson 加速

Anderson acceleration · Anderson mixing · 安德森加速

用有限历史残差的仿射最小二乘产生候选,再在已知收缩模型上以真实残差保护和Picard回退保留可验证误差界。

反复应用同一个映射时,旧点不只告诉我们“走过哪里”,还留下了映射在这些位置的误差。Anderson加速寻找一组历史权重,让这些残差尽量抵消,再组合映射值产生新候选。抵消的是旧资料中的线性模型;新候选的实际残差仍需重新计算。

形式陈述 ​

经典有限历史更新 ​

给定不动点问题g(x)=x,其中g:D→D、D⊆Rd、d≥1。定义残差r(x)=g(x)−x。输入初值x0∈D、整数记忆深度m≥1及预算;保存已接受点xi、映射值g(xi)与ri=r(xi)。

先令x1=g(x0)。在k≥1时取p=min(m,k),从最近p+1个点求仿射约束最小二乘:

(1)mina∈Rp+1‖∑j=0pajrk−p+j‖22,∑j=0paj=1.

经典无阻尼候选为

(2)yk=∑j=0pajg(xk−p+j).

纯Anderson直接令xk+1=yk,但这要求yk处的映射有定义。系数允许为负,和为1只说明仿射组合,不能保证yk∈D。式(1)多解时必须给确定的选解规则,后文给一个可执行约定。

这里采用残差最小二乘的经典形式,通常称type II。其他阻尼、type I、正则化或重启版本有不同接口;本页的保护定理不把这些变体混为一套更新。

本页分析的残差保护版本 ​

另假设D非空闭,固定一个范数‖⋅‖,并已证明g:D→D满足

(3)‖g(x)−g(z)‖≤q‖x−z‖,x,z∈D,0≤q<1.

取保护参数0<η<1。当且仅当候选有限、属于D,且真实求值满足

(4)‖r(yk)‖≤η‖r(xk)‖,

才接受xk+1=yk;否则取xk+1=g(xk)。最小二乘仍可使用二范数,而式(3)–(4)用另一个已说明的范数。LS求解失败时也回退,不能把无效系数继续传入映射。

输出应包括每步是否接受加速、真实残差、映射求值数、所用D,q,η、历史深度与退出原因。保护版本和纯AA必须在记录里分开;下面的全局保证专属于这个保护规则与式(3)的合同。

直觉

先分清线性模型与实际残差 ​

对仿射映射g(x)=Ax+b,令x¯k=∑ajxk−p+j。由∑aj=1得到

(5)r(x¯k)=∑ajrk−p+j,yk=g(x¯k),r(yk)=Ar(x¯k).

所以式(1)精确最小化的是历史仿射空间中x¯k的残差;真正接受的无阻尼候选还多应用了一次g。非线性映射一般连第一个等号也不成立,旧残差能完全抵消时,新残差仍可能变大。

这也是与GMRES比较时必须保留的细节。GMRES在Krylov空间中最小化线性系统残差;Walker–Ni的精确关系要求仿射g、I−A非奇异、相同初值、二范数、无阻尼、未截断的全部历史,并在所比较的第k>0轮满足rk−1GMRES≠0及‖rj−1GMRES‖2>‖rjGMRES‖2(0<j<k)。这允许第k轮本身停滞,也允许k=1时前述严格下降条件为空。满足这些条件时,对应的是x¯k=xkGMRES和xk+1AA=g(xkGMRES),不是把同下标两点直接画等号。有限窗口、阻尼、保护拒绝或非线性映射都需要重新分析,不能无条件写成算法等价。

保护为什么能单独证明收敛 ​

由Banach不动点定理,式(3)在闭子集这个完备空间上给出唯一不动点x∗。对任意x∈D,三角不等式给

‖x−x∗‖≤‖x−g(x)‖+‖g(x)−g(x∗)‖≤‖r(x)‖+q‖x−x∗‖,

从而

(6)‖x−x∗‖≤‖r(x)‖1−q.

若加速步被接受,式(4)直接控制新残差。若回退,则

‖r(g(xk))‖=‖g(g(xk))−g(xk)‖≤q‖g(xk)−xk‖=q‖r(xk)‖.

因此令c=max(q,η)<1,包括第一步Picard在内,每个已接受状态都满足

(7)‖r(xk)‖≤ck‖r(x0)‖,‖xk−x∗‖≤ck‖r(x0)‖1−q.

这份证明允许任意候选生成器,因为安全性来自真实残差检查和可靠回退。Anderson的作用是产生有机会通过检查的高质量候选;保护定理本身不承诺比原Picard每轮更快。

例子与边界

两个坐标的负权重可以合法且有效 ​

在D=[0,1]2上取

(8)g(x)=(1/21/401/4)x+(1/43/4).

映射保持D。矩阵的最大绝对行和为3/4,按诱导矩阵范数得到式(3)在无穷范数下可取q=3/4。直接解方程得x∗=(1,1)。

从x0=(0,0)做一次Picard:x1=(1/4,3/4),残差为

r0=(1/4,3/4),r1=(5/16,3/16).

使用这两个历史点,写a0=t,a1=1−t。最小化‖r1+t(r0−r1)‖22,对t求导给

t=−⟨r1,r0−r1⟩‖r0−r1‖22=−1141,1−t=5241.

式(2)给y=(53/82,81/82)∈D,真实残差为(57/328,3/328)。它相对当前无穷范数残差的比例是

57/3285/16=114205<35.

故η=3/5接受。负权重本身不构成失败,是否属于域和是否真有进展要分别核验。此时式(6)给点误差上界57/82,真实无穷范数误差为29/82;证书允许保守。

旧残差归零,新候选仍应拒绝 ​

在D=[0,1]定义

(9)g(x)={9x/10+1/10,0≤x≤1/2,x/10+1/2,1/2≤x≤1.

两段在1/2相接,映射保持D,且为q=9/10的压缩映射。唯一不动点为5/9。

从x0=0到x1=1/10,旧残差为1/10,9/100。两历史LS可以用a0=−9,a1=10完全抵消残差;候选却是

y=−9g(0)+10g(1/10)=−9/10+19/10=1.

实际r(1)=3/5−1=−2/5。对η=3/5,允许阈值只有27/500,远小于2/5,所以应拒绝,并回退到g(1/10)=19/100。在旧点都处于第一段时拟合到的缓慢斜率,不能外推穿过分界后仍当成真实映射。

秩亏、边界与错误停机 ​

若所有保留残差相同,式(1)对很多系数给出同样值,甚至所有系数都是最优解。只要明确选解仍可执行;为了求一组权重而除以零或求奇异正规方程的逆则会失败。

D必须在求值前检查。负权重可能把概率向量变成负分量,或把正定矩阵组合成不定矩阵;映射若只在原域有定义,应直接拒绝,不先试算再寄望得到数字。q=1也不够:例如g(x)=−x是非扩张映射,Picard的非零点永远交替,式(6)分母失效。更一般的非扩张AA理论需要不同保护机制,不能把这里的q<1删掉。

推论与应用

可实现的最小二乘接口 ​

消去最新点系数,把式(1)写成

(10)minθ∈Rp‖Eθ+rk‖22,E=[rk−p−rk,…,rk−1−rk].

求得θ后,前p个a取其分量,最后一个取1−∑θj。这里约定在式(10)多解时选最小二范数的θ;这是一个确定的选解规则,不宣称得到最小范数的整个a。

实际用QR或SVD求解,避免把ETE的逆当作默认实现。SVD可显露秩亏;按阈值截断小奇异值会改变原LS问题,应记录阈值,不过只要随后通过真实保护,式(7)仍成立。求解器报告失败时回退同样保留证明。

对d×p矩阵,从头做稠密薄SVD通常需O(dpmin(d,p))算术操作,另需O(dp)形成矩阵和候选;p≥1。保存窗口需O(d(m+1))空间。若维护适当QR更新可以更便宜,但需另管秩变化和删列。不能把“只加一个点”理解为整轮常数时间。

查询账与预算 ​

已缓存g(xk)后,接受候选通常需一次额外g(yk),该值可作为下一轮缓存。候选被拒且已求过值时,还需求g(g(xk))以得到回退新点的残差,最多两次新映射求值;候选越域则跳过第一次。函数内部工作空间、域检查和LS成本另计。

为了认证‖xk−x∗‖≤ε,实际停止可直接检查‖r(xk)‖≤(1−q)ε。若初始残差尚未达标,式(7)给充分轮数

k≥⌈log⁡(‖r(x0)‖/((1−q)ε))−log⁡c⌉.

初值已通过时零步返回。这个轮数还须换成实际映射求值账,才能与原Picard公平比较。

参考资料
关系图谱14 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系