FISTA解决地震反演问题 [WIP]
FISTA解决地震反演问题 [WIP]
迭代收缩阈值算法(Iterative shrinkage-thresholding algorithm, ISTA)是一种用于信号处理和图像重建的优化算法。
本文将介绍ISTA算法原理和其处理地震反演问题的实际应用。
优化问题
梯度下降
对于一个线性变换问题,其中和已知,为未知噪音,我们需要求解。
本质上这就是一个线性回归问题,从线性回归可知我们可以使用梯度下降解决这个问题。
梯度下降会带来新的问题,对于无约束的优化问题
若实函数在点处可微且有定义,梯度下降总是认为在点沿着梯度相反的方向下降最快。
所以当连续可微时,若存在一个足够小的数值使得
则有。
梯度下降核心便是通过式2找到序列,使得。
显然,此时初值的选取成了关键,即梯度下降可能陷入局部最优,同时的选取(机器学习中的学习率)也是关键,太小会导致迭代太慢,太大会导致无法收敛。
ISTA
ISTA也是基于梯度下降算法,它的关键在于对的选取。对于式1,当其满足Lipschitz连续条件,即的导数有下界(最小下界称为Lipschitz常数)。此时对于任意,有
对于所有成立。此时在点附近的函数值可近似表示为
此时再进行梯度下降时,将点处的近似函数取最小值的点作为下一次迭代起始点,这便是proximal regularization算法。
上述思路只能解决无约束问题,ISTA主要用于解决带惩罚项(噪声)的优化问题,例如对于带范数规范化函数的约束优化问题
同样我们可以得到在点处的二次近似函数为
忽略常数项,该函数的最小值表示可以写为
对于ISTA其迭代步骤即为。
ISTA的问题则是Lipschitz常数不一定可知或可计算,所以还衍生出了带回溯的ISTA算法
同时我们可知其收敛速度为。证明略。
FISTA
FISTA与ISTA的区别在于迭代步骤中近似函数起始点的选择,ISTA使用前一次迭代求得的近似函数最小值点,而FISTA使用另一种方法进行计算
同时由于Lipschitz常数计算复杂问题,FISTA同样有带回溯版本。
由理论证明FISTA的收敛速度可以达到。非常快。
地震反演
反射系数反演
这里我们以反射系数反演问题为例来演示ISTA的应用。
地震道可以看为是地震子波和地下反射系数的褶积,即
其中为反射系数序列(由波阻抗进行计算),为地震子波构建的脉冲源,为随机噪音。
现在我们给定地震道和地震子波,需要求解对应的反射系数。
本质上这就是一个反褶积问题,我们求解步骤如下: