反复应用同一个映射时,旧点不只告诉我们“走过哪里”,还留下了映射在这些位置的误差。Anderson加速寻找一组历史权重,让这些残差尽量抵消,再组合映射值产生新候选。抵消的是旧资料中的线性模型;新候选的实际残差仍需重新计算。
形式陈述
经典有限历史更新
给定不动点问题 理路 不动点迭代 Fixed-point iteration · Picard iteration 把方程改写为不动点问题后反复应用同一映射,并用压缩性控制收敛、误差与停机。 g ( x ) = x ,其中g : D → D 、D ⊆ R d 、d ≥ 1 。定义残差r ( x ) = g ( x ) − x 。输入初值x 0 ∈ D 、整数记忆深度m ≥ 1 及预算;保存已接受点x i 、映射值g ( x i ) 与r i = r ( x i ) 。
先令x 1 = g ( x 0 ) 。在k ≥ 1 时取p = min ( m , k ) ,从最近p + 1 个点求仿射约束最小二乘 理路 最小二乘与正规方程 Least squares · Normal equations 将目标向量正交投影到矩阵列空间,并以残差正交条件导出正规方程。 :
(1) min a ∈ R p + 1 ‖ ∑ j = 0 p a j r k − p + j ‖ 2 2 , ∑ j = 0 p a j = 1. 经典无阻尼候选为
(2) y k = ∑ j = 0 p a j g ( x k − p + j ) . 纯Anderson直接令x k + 1 = y k ,但这要求y k 处的映射有定义。系数允许为负,和为1只说明仿射组合,不能保证y k ∈ 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 ( y k ) ‖ ≤ η ‖ r ( x k ) ‖ , 才接受x k + 1 = y k ;否则取x k + 1 = g ( x k ) 。最小二乘仍可使用二范数,而式(3)–(4)用另一个已说明的范数。LS求解失败时也回退,不能把无效系数继续传入映射。
输出应包括每步是否接受加速、真实残差、映射求值数、所用D , q , η 、历史深度与退出原因。保护版本和纯AA必须在记录里分开;下面的全局保证专属于这个保护规则与式(3)的合同。
直觉
先分清线性模型与实际残差
对仿射映射g ( x ) = A x + b ,令x ¯ k = ∑ a j x k − p + j 。由∑ a j = 1 得到
(5) r ( x ¯ k ) = ∑ a j r k − p + j , y k = g ( x ¯ k ) , r ( y k ) = A r ( x ¯ k ) . 所以式(1)精确最小化的是历史仿射空间中x ¯ k 的残差;真正接受的无阻尼候选还多应用了一次g 。非线性映射一般连第一个等号也不成立,旧残差能完全抵消时,新残差仍可能变大。
这也是与GMRES比较时必须保留的细节。GMRES 理路 GMRES 方法 GMRES · Generalized minimal residual method 在 Krylov 仿射空间中逐步最小化线性系统的二范数残差,并权衡 Arnoldi 正交化、存储和重启代价。 在Krylov空间中最小化线性系统残差;Walker–Ni的精确关系要求仿射g 、I − A 非奇异、相同初值、二范数、无阻尼、未截断的全部历史,并在所比较的第k > 0 轮满足r k − 1 G M R E S ≠ 0 及‖ r j − 1 G M R E S ‖ 2 > ‖ r j G M R E S ‖ 2 (0 < j < k )。这允许第k 轮本身停滞,也允许k = 1 时前述严格下降条件为空。满足这些条件时,对应的是x ¯ k = x k G M R E S 和x k + 1 A A = g ( x k G M R E S ) ,不是把同下标两点直接画等号。有限窗口、阻尼、保护拒绝或非线性映射都需要重新分析,不能无条件写成算法等价。
保护为什么能单独证明收敛
由Banach不动点定理 理路 Banach 不动点定理 Banach fixed-point theorem · Contraction mapping theorem 完备空间中的统一压缩给出唯一不动点;用几何尾和证明收敛,并把后验误差与残差转成停止证书。 ,式(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 ( x k ) ) ‖ = ‖ g ( g ( x k ) ) − g ( x k ) ‖ ≤ q ‖ g ( x k ) − x k ‖ = q ‖ r ( x k ) ‖ . 因此令c = max ( q , η ) < 1 ,包括第一步Picard在内,每个已接受状态都满足
(7) ‖ r ( x k ) ‖ ≤ c k ‖ r ( x 0 ) ‖ , ‖ x k − x ∗ ‖ ≤ c k ‖ r ( x 0 ) ‖ 1 − q . 这份证明允许任意候选生成器,因为安全性来自真实残差检查和可靠回退。Anderson的作用是产生有机会通过检查的高质量候选;保护定理本身不承诺比原Picard每轮更快。
例子与边界
两个坐标的负权重可以合法且有效
在D = [ 0 , 1 ] 2 上取
(8) g ( x ) = ( 1 / 2 1 / 4 0 1 / 4 ) x + ( 1 / 4 3 / 4 ) . 映射保持D 。矩阵的最大绝对行和为3 / 4 ,按诱导矩阵范数 理路 矩阵范数与诱导算子范数 Matrix norm · Induced matrix norm · Operator norm of a matrix 用诱导范数和常用可计算矩阵范数度量线性映射的放大能力,并区分算子范数、Frobenius 范数与谱半径。 得到式(3)在无穷范数下可取q = 3 / 4 。直接解方程得x ∗ = ( 1 , 1 ) 。
从x 0 = ( 0 , 0 ) 做一次Picard:x 1 = ( 1 / 4 , 3 / 4 ) ,残差为
r 0 = ( 1 / 4 , 3 / 4 ) , r 1 = ( 5 / 16 , 3 / 16 ) . 使用这两个历史点,写a 0 = t , a 1 = 1 − t 。最小化‖ r 1 + t ( r 0 − r 1 ) ‖ 2 2 ,对t 求导给
t = − ⟨ r 1 , r 0 − r 1 ⟩ ‖ r 0 − r 1 ‖ 2 2 = − 11 41 , 1 − t = 52 41 . 式(2)给y = ( 53 / 82 , 81 / 82 ) ∈ D ,真实残差为( 57 / 328 , 3 / 328 ) 。它相对当前无穷范数残差的比例是
57 / 328 5 / 16 = 114 205 < 3 5 . 故η = 3 / 5 接受。负权重本身不构成失败,是否属于域和是否真有进展要分别核验。此时式(6)给点误差上界57 / 82 ,真实无穷范数误差为29 / 82 ;证书允许保守。
旧残差归零,新候选仍应拒绝
在D = [ 0 , 1 ] 定义
(9) g ( x ) = { 9 x / 10 + 1 / 10 , 0 ≤ x ≤ 1 / 2 , x / 10 + 1 / 2 , 1 / 2 ≤ x ≤ 1. 两段在1 / 2 相接,映射保持D ,且为q = 9 / 10 的压缩映射。唯一不动点为5 / 9 。
从x 0 = 0 到x 1 = 1 / 10 ,旧残差为1 / 10 , 9 / 100 。两历史LS可以用a 0 = − 9 , a 1 = 10 完全抵消残差;候选却是
y = − 9 g ( 0 ) + 10 g ( 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 θ ∈ R p ‖ E θ + r k ‖ 2 2 , E = [ r k − p − r k , … , r k − 1 − r k ] . 求得θ 后,前p 个a 取其分量,最后一个取1 − ∑ θ j 。这里约定在式(10)多解时选最小二范数的θ ;这是一个确定的选解规则,不宣称得到最小范数的整个a 。
实际用QR或SVD 理路 用 QR 与 SVD 求最小二乘 Least squares via QR · Least squares via SVD · Numerical least squares 以 QR 作为满列秩最小二乘的默认计算路线,并用 SVD 处理秩亏、欠定和最小范数解。 求解,避免把E T E 的逆当作默认实现。SVD可显露秩亏;按阈值截断小奇异值会改变原LS问题,应记录阈值,不过只要随后通过真实保护,式(7)仍成立。求解器报告失败时回退同样保留证明。
对d × p 矩阵,从头做稠密薄SVD通常需O ( d p min ( d , p ) ) 算术操作,另需O ( d p ) 形成矩阵和候选;p ≥ 1 。保存窗口需O ( d ( m + 1 ) ) 空间。若维护适当QR更新可以更便宜,但需另管秩变化和删列。不能把“只加一个点”理解为整轮常数时间。
查询账与预算
已缓存g ( x k ) 后,接受候选通常需一次额外g ( y k ) ,该值可作为下一轮缓存。候选被拒且已求过值时,还需求g ( g ( x k ) ) 以得到回退新点的残差,最多两次新映射求值;候选越域则跳过第一次。函数内部工作空间、域检查和LS成本另计。
为了认证‖ x k − x ∗ ‖ ≤ ε ,实际停止可直接检查‖ r ( x k ) ‖ ≤ ( 1 − q ) ε 。若初始残差尚未达标,式(7)给充分轮数
k ≥ ⌈ log ( ‖ r ( x 0 ) ‖ / ( ( 1 − q ) ε ) ) − log c ⌉ . 初值已通过时零步返回。这个轮数还须换成实际映射求值账,才能与原Picard公平比较。
参考资料