1. 反演不收敛的初步定位:从残差曲线判断发散类型
残差曲线是反演迭代的“心电图”
反演迭代过程中,每轮都会计算一个残差(或目标函数值),把它按迭代次数画成曲线,就得到残差曲线。曲线形态直接反映迭代是否健康:振荡发散说明步长过大或方向来回翻转;单调发散说明模型参数化或初始模型严重偏离,更新方向持续错误;停滞不降说明数据权重失衡或正则化过强,梯度信息被压制。先看形态,再定方向,是排障的第一步。
三类形态的判读要点
- 振荡发散:残差在相邻迭代间符号交替、幅度逐轮增大。典型原因是步长(或学习率)超过稳定上限,或更新方向在参数空间中来回翻转。优先检查步长缩放因子、阻尼系数、线搜索是否失效。
- 单调发散:残差同号持续上升,曲线单调抬升。说明更新方向系统性错误,常见于模型参数化不合理(如参数间强相关、边界约束缺失)或初始模型远离可行域。优先检查参数化方案与初始模型。
- 停滞不降:残差先下降后趋于平坦,相邻迭代变化小于 1%。说明梯度信息被压制,常见于数据权重与正则化权重失衡、正则化过强。优先检查目标函数各项权重与归一化。
判读时先看相邻残差比 rk+1/rk:比值大于 1 且符号交替为振荡,大于 1 且同号为单调发散,约等于 1 且变化极小为停滞。比值稳定小于 1 则说明仍在收敛,不必干预。
一个可复现的判读示例
假设某反演任务记录了 8 轮残差(示例数据,用于演示判读逻辑):
| 迭代 k | 残差 rk | rk/rk-1 | 符号变化 | 判读 |
|---|---|---|---|---|
| 1 | 4.20 | — | — | 起始 |
| 2 | 2.80 | 0.67 | 同号 | 下降 |
| 3 | 3.90 | 1.39 | 翻转 | 振荡迹象 |
| 4 | 2.10 | 0.54 | 翻转 | 振荡 |
| 5 | 5.60 | 2.67 | 翻转 | 振荡发散 |
| 6 | 1.80 | 0.32 | 翻转 | 振荡发散 |
| 7 | 7.30 | 4.06 | 翻转 | 振荡发散 |
| 8 | 1.20 | 0.16 | 翻转 | 振荡发散 |
该序列的相邻残差比在 0.16 与 4.06 之间剧烈跳动,且符号持续翻转,幅度整体放大,判定为振荡发散。初步定位方向:步长过大或阻尼不足,应优先缩小步长、启用线搜索或增加阻尼,而非改动模型参数化。
残差曲线判读只做“初步定位”,不替代后续验证。确定方向后,仍需通过单变量对照实验(如仅调步长、仅换初值)确认根因,避免多因素同时改动导致误判。