Wirtinger流
从复数梯度到Wirtinger流
有了前文对复数梯度的定义,我们已经可以在复数域中建立与实数优化完全对应的一阶迭代方法。对于实值函数
\(f:{\mathbb{C}^n} \to \mathbb{R}\),
其在点z处的一阶变化满足
因此,当沿着方向
\(- \eta \nabla _{{\bf{\bar z}}}\mathcal{L}\)
进行更新是,函数在一阶近似下将取得最快下降。于是,复数域中的梯度下降自然写为
这说明,一旦目标函数\(\mathcal{L}\)确定,Wirtinger流的核心问题便转化为“如何计算\(\nabla _{{\bf{\bar z}}}\mathcal{L}\)”。下面以最经典的相位恢复模型为例进行推导。
设未知信号为\({\bf{z}} \in {\mathbb{C}^n}\),测量向量为\({{\bf{a}}_r} \in {\mathbb{C}^n}\),则观测强度满足
这里\(\left\langle {{{\bf{a}}_r},{\bf{z}}} \right\rangle = {\bf{a}}_r^\dagger {\bf{z}}\)表示复内积,上标\(\dagger \)表示共轭转置。相位恢复的目标是在只知道强度\({{\bf{y}}_r}\)的条件下恢复z。
为了将该问题转化为优化问题,通常考虑如下非凸最小二乘目标函数:
这是一个定义在复数域上的实值函数。由于其中包含模平方项,它显然不是全纯函数,因此不能使用传统复导数;但借助 Wirtinger 导数,可以对其进行直接求导。
为简化记号,记\({{\bf{u}}_r}\left( {\bf{z}} \right) = {\bf{a}}_r^\dagger {\bf{z}}\)。则
注意到\({{\bf{u}}_r}\)关于z线性,而关于\({\bf{\bar z}}\)不变,因此\(\partial {{\bf{u}}_r}/\partial {\bf{\bar z}} = 0\)。另一方面\(\overline {{{\bf{u}}_r}} = {{\bf{z}}^\dagger }{{\bf{a}}_r}\),则 \(\partial \overline {{{\bf{u}}_r}} /\partial {\bf{\bar z}} = {{\bf{a}}_r}\)。于是利用求导的乘法法则可得
再对目标函数求导
这正是Wirtinger流所用梯度的基本形式。
为了使表达更加紧凑,可以进一步写成矩阵形式。令测量矩阵
则
式 (7) 的梯度表达式可以改写为
于是Wirtinger 流迭代写为
到这里可以看出,Wirtinger 流的结构与实数域中的梯度下降完全一致,只是普通梯度被替换为 Wirtinger梯度。算法的每一次迭代都包含三个步骤:先由当前估计\({{\bf{z}}_k}\)生成预测测量\({\bf{A}}{{\bf{z}}_k}\),再将其模平方与观测强度\({\bf{y}}\)比较形成残差,最后通过伴随算子\({{\bf{A}}^\dagger }\)将该残差回传至信号域,得到更新方向。正因如此,Wirtinger 流也可以被理解为一种“复数域的误差反传”。
不过,相位恢复问题的目标函数是非凸的,仅有梯度表达还不足以保证算法表现良好,初始化同样至关重要。若初值距离真实解过远,迭代可能陷入错误的局部结构中。因此,经典 WF 通常配合谱初始化。其基本思想是构造矩阵
并取其最大特征值对应的特征向量\({{\bf{v}}_{\max }}\)作为初始方向。再根据观测能量对其幅值进行归一化,得到\({{\bf{z}}_0} = \lambda {{\bf{v}}_{\max }}\),其中λ是由测量幅值估计得到的尺度因子。这样构造的初值通常已经与真实解具有较高相关性,从而使随后的梯度下降进入正确的吸引域。
Wirtinger流的意义并不局限于某一个具体公式。它揭示了一个更一般的思想:只要损失函数是关于复变量的实值可微函数,就可以利用 Wirtinger 导数构造复数域中的一阶优化算法。换言之,Wirtinger流只是“复数梯度下降在相位恢复问题上的一个典型实例”。其成功之处正在于,它将复数物理模型、非凸损失函数与标准优化框架统一到了同一个数学语言之下。
“Wirtinger流”这一名称并非随意命名,而是直接反映了该算法的数学本质。其名称由两部分组成:“Wirtinger”与“流(Flow)”。其中,“Wirtinger”指的是算法中所采用的梯度是通过 Wirtinger 导数定义的。在复数域中,由于实值函数通常不满足全纯条件,传统复导数不再适用,而 Wirtinger 导数提供了一种自然的替代方式,使得我们能够在不拆分实部和虚部的情况下定义梯度,并进行优化。而“Flow”则来源于一个更具几何与物理意义的概念。在连续时间的视角下,优化过程可以看作是一个动态系统,其演化由如下微分方程描述:
该方程刻画了变量\({{\bf{z}}_t}\)随时间沿着函数\(\mathcal{L}\)的最陡下降方向不断变化的过程。这种“沿着能量下降方向连续演化”的行为,类似于水在势能场中的自然流动,因此被称为“流”。从更直观的角度理解,可以将目标函数\(\mathcal{L}\)看作一张“能量地形图”,而变量z则像一个在地形上移动的点。Wirtinger 流描述的正是这个点如何沿着最陡的下坡方向不断“流动”,最终到达能量较低的位置。这种将优化过程理解为“流动”的视角,也为后续分析其收敛性和稳定性提供了重要的几何直觉。
在后续章节中,这一框架还可以自然推广到更复杂的情形,例如带正则项的相位恢复、带噪声统计建模的似然优化,以及叠层成像、数字全息等更一般的计算成像问题。无论具体模型如何变化,其核心仍然不变:首先写出合适的实值目标函数,然后利用 Wirtinger 导数求得\(\nabla _{{\bf{\bar z}}}\mathcal{L}\left( {\bf{z}} \right)\),最后据此构造相应的迭代算法。