两个隐式子问题分别容易求解时,未必容易求出它们之和的隐式解。Douglas–Rachford用两次独立预解来协调它们。迭代保存的是一份辅助状态,真正的解要从状态再取一次预解才能恢复;混淆这两个点,会把正确收敛的算法读成错误答案。
形式陈述
状态、两个影子与平均反射
在有限维实欧氏空间中,设 A , B 为极大单调算子 理路 单调算子与极大单调性 Monotone operator · Maximal monotone operator · 极大单调算子 用图上的内积不等式统一凸次微分与旋转关系,并以极大性保证稳定隐式步对每个输入都有唯一解。 ,且 Z = { x : 0 ∈ A x + B x } ≠ ∅ 。固定 γ > 0 ,从任意辅助状态 z 0 执行
(1) p k = J γ A z k , q k = J γ B ( 2 p k − z k ) , z k + 1 = z k + q k − p k . 两次预解均全域单值,不要求 A 、B 光滑或Lipschitz。定义反射预解 R A = 2 J γ A − I 、R B = 2 J γ B − I ,则主更新为
T = 1 2 ( I + R B R A ) , z k + 1 = T z k . 在这些假设下,z k 收敛到某个 T 的不动点 z ¯ ,两个影子 p k , q k 收敛到同一零点 p ¯ = J γ A z ¯ 。一般 z ¯ ≠ p ¯ ;正确输出是影子及其关系证书,而非未经转换的状态。
直觉
固定点怎样恢复原问题解
若 z = T z ,则两影子相同,记为 p = q 。预解定义分别给
z − p γ ∈ A p , 2 p − z − p γ = p − z γ ∈ B p . 两项相加为零,所以 p ∈ Z 。反过来,若 p ∈ Z ,选 a ∈ A p 使 − a ∈ B p ,令 z = p + γ a ,便有 J γ A z = p 及J γ B ( 2 p − z ) = p 。因此解存在恰好保证辅助不动点存在,但恢复公式必须保留。
为什么反射之后还要平均
牢固非扩张性给任意输入 z , w 的
‖ J A z − J A w ‖ 2 ≤ ⟨ J A z − J A w , z − w ⟩ , 这里为简洁省略共同的 γ 。展开 R A z − R A w = 2 ( J A z − J A w ) − ( z − w ) ,便得 ‖ R A z − R A w ‖ ≤ ‖ z − w ‖ 。R B 也非扩张,故 S = R B R A 非扩张。
取任意不动点 z ∗ ,S z ∗ = z ∗ 。平方中点恒等式给
‖ z + S z 2 − z ∗ ‖ 2 = 1 2 ‖ z − z ∗ ‖ 2 + 1 2 ‖ S z − z ∗ ‖ 2 − 1 4 ‖ z − S z ‖ 2 . 使用非扩张性及 T z − z = ( S z − z ) / 2 ,得到
(2) ‖ T z − z ∗ ‖ 2 + ‖ T z − z ‖ 2 ≤ ‖ z − z ∗ ‖ 2 . 平均不仅不放大距离,还用距离下降支付主点位移。仅知道未平均的 S 非扩张,只能得到距离不增,不能排除周期。
例子与边界
两条直线上的四轮计算
令 A = N U , B = N V ,其中 U = { ( t , 0 ) } 、V = { ( t , t ) } 。法锥预解就是投影,所以
P U ( a , b ) = ( a , 0 ) , P V ( a , b ) = ( ( a + b ) / 2 , ( a + b ) / 2 ) . 相应反射为 R U ( a , b ) = ( a , − b ) 、R V ( a , b ) = ( b , a ) ,故 R V R U = J 为逆时针直角旋转。DR更新是
T = 1 2 ( I + J ) = 1 2 ( 1 − 1 1 1 ) . 从 z 0 = ( 1 , 0 ) 开始,
k
辅助状态 z k
第一影子 p k = P U z k
0
( 1 , 0 )
( 1 , 0 )
1
( 1 / 2 , 1 / 2 )
( 1 / 2 , 0 )
2
( 0 , 1 / 2 )
( 0 , 0 )
3
( − 1 / 4 , 1 / 4 )
( − 1 / 4 , 0 )
4
( − 1 / 4 , 0 )
( − 1 / 4 , 0 )
状态每轮旋转 45 ∘ ,长度乘 1 / 2 ,最终趋于两线交点零。第二轮影子恰好经过零,不代表以后每轮都停在零;状态仍未固定,下一影子可以离开这个偶然的交点。
若只迭代 R V R U = J ,得到的是未平均的Peaceman–Rachford更新,非零初值永远四周期。这不是“计算精度不够”,而是迭代矩阵本身没有收缩。
状态极限可以在解集之外
在实直线上取 A = ∂ f 、f ( x ) = ( x − 2 ) 2 / 2 ,B = N { 0 } 。唯一零点为 p ∗ = 0 ,因为在那里 A p ∗ = − 2 可由法锥中的 2 抵消。
取 γ = 1 ,两个近端/预解 理路 近端算子 Proximal operator · Proximity operator 在降低凸函数值与保持靠近输入点之间取得精确平衡的单值算子。 分别为 J A z = ( z + 2 ) / 2 、J B w = 0 。所以
z k + 1 = ( z k − 2 ) / 2. 从 z 0 = 0 开始,状态依次为 − 1 , − 3 / 2 , − 7 / 4 , − 15 / 8 ,趋向 − 2 ;第一影子依次为 p 0 = 1 , p 1 = 1 / 2 , p 2 = 1 / 4 , … ,趋向正确解零。若直接把状态 − 2 交给原问题,它甚至违反 x = 0 的约束。
图片加载失败 图中灰色辅助状态可以在原问题的不可行位置收敛,蓝色影子才是要交付的原变量。极限线分别标出两份对象,不能只看某条曲线已变平便报告答案。
子问题可解仍需零点存在
极大单调性确保两次预解都可执行,不保证两部分能够平衡。例如 A = 0 , B ( x ) = { 1 } ,有 J A z = z , J B z = z − γ ,故 z k + 1 = z k − γ 持续漂移。没有零点时,式(2)没有可用的不动点作比较。
非凸近端、随轮变化的步长或仅近似预解都超出当前精确固定参数证明。两条直线的几何速度来自显式矩阵,并非对所有极大单调算子都成立。
推论与应用
从平方可求和到整列收敛
将式(2)求和,z k 有界,且 ∑ k ‖ z k + 1 − z k ‖ 2 < ∞ 。有限维聚点定理 理路 Bolzano–Weierstrass 定理 Bolzano–Weierstrass theorem 实数空间中的每个有界序列都存在收敛子列。 给 z k j → z ¯ 。两次预解连续,故 T 连续;相邻位移趋零使 T z ¯ = z ¯ 。到这个不动点的距离不增而有子列趋零,整个状态序列收敛。
由预解连续性,p k → J A z ¯ 。又有 q k − p k = z k + 1 − z k → 0 ,所以第二影子也有同一极限。固定点恢复证明已保证这个极限解决原包含关系。
停止时保留两份位置和两份算子值
每轮可计算
a k = ( z k − p k ) / γ ∈ A p k , b k = ( 2 p k − z k − q k ) / γ ∈ B q k , 且 a k + b k = ( p k − q k ) / γ 。影子差同时衡量两位置是否一致与两算子值是否平衡;但当 p k ≠ q k 时,不能声称 a k + b k ∈ ( A + B ) p k ,因为 b k 是在 q k 处取得。
式(2)还给前 N 轮中 min k ‖ p k − q k ‖ 2 ≤ ‖ z 0 − z ∗ ‖ 2 / N 。如果初始到某不动点的距离没有可知上界,这不是可以凭空报出的数值精度;实际仍可报告两份残差和模型允许的更强证书。
每轮调用两次预解,另需 O ( d ) 向量运算及存储。凸函数拆分时它们可由两个prox实现;ADMM 理路 交替方向乘子法(ADMM) Alternating direction method of multipliers · ADMM 将凸目标拆成两个近端子问题,用乘子累积一致性误差,并以原始与对偶残差检查最优性的算法。 与DR在适当对偶拆分下有联系,但变量变换、初始化和资格条件需要逐项给出,本页不把它们无条件标成同一迭代。
参考资料