黑色字体为对原文的翻译,蓝色为自己的注释,自己也在学习相关知识,希望可以和大家交流学习,如有疑问欢迎指正。
可学习的去噪近似消息传递算法:基于压缩图像恢复准则的神经网络
摘要:
压缩图像恢复是一个极具挑战的问题,它要求快而精确的算法。近来,神经网络被应用于该问题并得到了有保障的结果。通过利用大量并行GPU处理结构和大量数据,它们运行速度可以比现有技术快几个数量级。然而,这些方法大多是基于无规则可循的黑盒子,训练难度大,通常只针对于特定矩阵。
近期有证明,迭代的稀疏信号恢复算法可以被展开形成可解释的(不同于黑匣子只知道输出结果,不清楚处理过程)深度网络。从该证明中我们获得灵感,我们构建了一个新的神经网络结构来模仿基于去噪的近似消息传递算法(D-AMP)的行为。我们将这个新的网络称为LDAMP。
LDAMP网络易于训练可以应用于许多不同的测量矩阵,状态演化方程可以精确预测其性能。更重要的是它在精度和运行时间方面的性能均超过了现在比较先进的技术BM3D-AMP算法和NLR-CS算法。在高分辨率下,当与具有快速实现的感知矩阵一起使用时,LDAMP运行速度比BM3D-AMP快50倍,比NLR-CS快数百倍。
1.介绍
在过去的几十年里,计算成像系统在许多不同的图像领域得到了大量的发展,从合成孔径雷达到功能MRI和CT扫描仪。这些系统大多数是通过来获取感兴趣信号线性测量值y。其中,
(信号),
(测量值),
(测量矩阵),
(噪声)。
计算成像系统的目的是在给定测量值y和测量矩阵A的条件下恢复信号x。当m<n时,该问题是欠定的(未知多于已知),并且必须利用x的先验知识才能恢复信号。这个问题被广泛地称为压缩采样。
使用先验来从压缩测量中恢复图像x的方法有很多。下面我将简要的介绍其中几种方法。从简单的手动设计模型(传统方法)到完全的数据驱动方法(可学习的方法)张成一个谱如图1所示
1.1手工设计恢复算法
绝大多数CS恢复算法由于使用了某种经验知识(即,先验,x的结构)可以被认为是“手工设计的”。最常见的信号先验是x在某些基上是稀疏的。使用稀疏先验的算法包括CoSaMP,ISTA,近似消息传递(AMP),和VAMP等等。研究人员还开发了更精确地描述自然图像结构的先验和算法,例如,最小总变量(TVAL3),基于小波系数的马尔科夫树模型(CoSaMP)和非局部自相似性(NLR-CS)。现成的去噪和压缩算法也被应用在重构上以加强先验,例如,基于去噪的AMP(D-AMP),D-VAMP,和C-GD。当应用于自然图像时,使用高级先验的算法性能优于使用简单先验(如小波稀疏)的算法。
手工设计方法的优势在于它们基于可解释的先验,并且通常具有易于理解的行为。此外,当他们被设置为凸优化问题时,通常具有理论收敛保障。不幸的是在那些对信号使用精确先验的算法中,对于许多实时应用来说,即使是最快的算法也太慢了。更重要的是,这些算法没有用到潜在的训练数据。正如我们接下来将看到的,这留下了很大的改进空间。
1.2数据驱动恢复算法
在另一端的是数据驱动的(通常是基于深度学习的)方法,它们不使用任何手工设计的模型。相反,研究人员提供了大量训练数据的神经网络(NNs),这些网络学习如何在数据中最好的利用结构。
第一篇应用这种方法的论文是[13],作者使用堆叠去噪自动编码器(SDA)从欠采样测量中恢复信号。这一分支的其他论文使用了纯卷积层(深度逆[15])或卷积层和全连接层(DR2-Net[16]和ReconNet[14])的组合来构建能够能够解决CS恢复问题的深度学习框架。如[13] 所示,这些方法在精度方面可以与最先进的方法(传统的)媲美,同时运行速度快了数千倍。不幸的是,这些方法的发展由于几乎没有理论保障它们的性能而受到阻碍,到目前为止,它们必须针对特定的测量矩阵和噪声水平来进行训练。
1.3混合手工设计和数据驱动的恢复方法
第三类恢复算法是将数据驱动与手工设计的算法相结合。这些方法首先利用经验知识设置恢复算法,然后使用训练数据来学习这个算法的先验。这种算法具有从训练数据中学习更多真实信号先验的能力而获益,同时保持可解释性和保障性(手工设计方法优势)。此类算法可以分成两个子类。第一个子类使用执行某些算法功能的黑匣子神经网络(如近端映射)。第二个子类显示的展开迭代算法转化为一个深度神经网络。展开之后可以利用训练数据对网络进行调整。我们的LDAMP算法同时使用了这两种想法。
黑匣子神经网络:用一个有规则的方法使用神经网络来解决CS问题的最简单方法是把它当做一个执行某些函数的黑匣子(如计算后验概率)。这种方法的例子包括RBM-AMP及其一般化[18-20],使用受限的玻尔兹曼机制来学习非独立同分布先验;RIDE-CS,使用RIDE[22]生成模型计算给定图像估计的概率;OneNet[23]使用神经网络作为近似映射/去噪器。
展开的算法:第二种有规则的使用NN来解决压缩感知问题的方法是简单地采用一个易于理解的得带恢复算法并展开它。这种算法有LISTA和LAMP神经网络很好的说明。作者分别简单地展开了ISTA和AMP迭代算法,然后将算法的参数作为学习的权重。展开后训练数据可以通过网络进行反馈,随机梯度下降可以用来更新和优化参数。近期,展开的方法被应用于ADMM算法来解决CS-MRI问题。产生的网络ADMM-Net,使用训练数据来学习滤波器,惩罚项,简单地非线性和乘数。除了CS,展开原理被成功应用于语音增强,非负矩阵分解应用于音乐转录等等。在这些应用中,展开和训练显著提高了信号重建的质量和速度。
2.Learned D-AMP
2.1 D-IT and D-AMP
LDAMP是一种混合手工设计/数据驱动的的基于D-AMP算法的压缩信号恢复框架。我们现在描述D-AMP以及更简单的基于去噪的迭代阈值算法(D-IT)。具体来讲,这些算法一般没有损失函数,而我们的关注点在于图像恢复。
一个压缩图像恢复算法解给定低维测量值,通过利用x的先验信息,求图像x的不定适反问题。例如,
,其中C是所有自然图像的集合。一个很自然的优化公式如下:
当没有测量噪声出现时,压缩图像恢复算法应该返回集合C和拟合子平面的交点,图像
(期望是唯一的),如图2所示:
应用D-IT和D-AMP的前提是高性能的图像去噪器(表明去噪器可以有噪声的标准差来参数化,去噪器可以被当做关于自然图像的负对数似然近似映射或对自然图像的数据生成函数进行梯度处理),例如BM3D,是自然图像集合C上的高质量近似映射。假定
是一个自然图像的噪声观测值,其中
一个理想的去噪器
可以简单的在集合C中找到最接近观测值
的点
结合(1)和(2)很自然的得出D-IT算法,如式(3)和图2(a)所示。从开始逐步向拟合子空间
并应用去噪器
将点移动到自然图像集合C中的
。梯度步进和去噪一直重复
直到收敛。
令表示每次迭代
和真实信号
的差。
是有效噪声。每次迭代D-IT对
(即真实信号加有效噪声)去噪。大多数去噪器是真对
是加性高斯白噪声(AWGN)来设计的。不幸的是,随着D-IT迭代的增加,去噪器的中间结果会造成偏差,不就
就会偏离AWGN。随后去噪迭代会的作用会降低并且收敛很慢。
D-AMP与D-IT的不同之处在于,它使用Onsager校正项修正了每次迭代时有效噪声的偏差
Onsager修正项消除了中间解的偏差,使得有效噪声符合典型图像去噪器所期望的AWGN模型。有关Onsager校正,它的起源以及它与Thouless-Anderson-Palmer方程方程的联系等更多信息参见参考文献。注意是一个有用精确的
标准差的估计。典型地,D-AMP算法对散度
使用蒙特卡洛近似,在文献[37,10]中首次介绍。
2.2Denoising convolutional neural network
NNs在信号去噪方面有着悠久的历史,参见[38]。然而直到最近,他们才开始明显优于BM3D等已建立的传统方法。在这一部分,我们回顾了最近开发的去噪卷积神经网络(DnCNN)图像去噪,比传统方法更准确速度更快。
DnCNN神经网络由16到20层组成,结构如下。第一个卷积层使用64种不同的3x3xc滤波器(其中c表示颜色通道的数量),然后再使用一个修正线性单元(ReLU)。接下来的14或18层个卷积层分别使用64个不同的3x3x64的滤波器,每层都跟着一个批量标准化(BN)和一个ReLU。最后一个卷积层使用c个不同的3x3x64滤波器来重构信号。通过残差学习来学习参数。
2.3Unrolling D-IT and D-AMP into networks
这项工作的核心贡献是对D-IT和D-AMP应用了1.3中描述的展开的思想来构造LDIT和LDAMP神经网络。LDAMP网络如式(5)和图3所示,包含10个AMP层,其中每个AMP层包含两个带有固定权重的去噪器。一个去噪器用于更新,另一个用于使用蒙特卡洛近似来估计散度。LDIT网络几乎是相同的但是不需要计算Onsager校正项每层只应用一个去噪器。展开D-IT和D-AMP的一个挑战是可以训练,我们I必须使用一个易于传播梯度的去噪器;像BM3D这样的黑匣子去噪器将不再起作用。这限制了我们使用如DnCNN这样的去噪器,幸运的是,这提高了性能。
在(5)中我们使用了较笨重的来表示网络的l层所使用的去噪器
,该去噪器依赖于他的权重/偏差
,这些权重可能是噪声标准偏差估计
的函数。训练期间我们学习的参数仅有去噪器权重
。这不同于LISTA和LAMP网络,作者将
矩阵从网络中解耦来学习。
3.Training the LDIT and LDAMP network
我们的实验中用三种不同的方法来训练LDIT和LAMP网络。在这我们在更高的水平描述并比较这些训练方法;细节在第5部分进行描述。
端到端训练:我们同时训练所有的网络权重。这是训练神经网络的标准方法。
逐层训练:我们训练一个AMP层网络(包含一个16到20层的去噪器)来恢复信号,固定这些权重,增加一个AMP层,训练第二层,用两层网络的 结果来恢复信号,固定这些权重,重复,直到我们需要的10层网络。
逐去噪器训练:我们将去噪器从网络其他部分解耦,每个去噪器都基于不同噪声水平的AWGN问题训练。在推理过程中,网络利用其对噪声标准 差的估计来选择使用哪一组噪声权重。注意,在选择要使用的噪声权重时,我们必须离散噪声水平的期望范围;例如,如果 我们使用去噪器的噪声标准差的范围在20到40。
训练方法的比较:随机梯度下降理论表明逐层和逐去噪器训练相比较端到端训练会牺牲一定的性能。在4.2节中我们将会证明该条结论并不适用于LDAMP。对LDAMP而言逐层和逐去噪器训练是最小均方误差最优的。这些理论结果可由表4(a)和4(b)中的实验得出。这一部分的每个测试网络都是由10层的包含有16层DnCNN的去噪器的DAMP/DIT展开层组成。
表4(a)表明,根据理论,LDAMP的逐层训练是最优的;此外,端到端训练并不能增加网络的性能。与此相反,由表可知LDIT的逐层训练代表了代表了典型神经网络行为,它是次优的;此外,端到端训练明显提高其性能。
尽管理论结果表明,逐去噪器训练是最优的。表4(a)表明LDAMP的逐去噪器训练比逐层和端到端的训练网络性能略差。这种性能上的差异很可能是由于噪声水平离散化并不是在我们的理论上建模而造成的。通过使用更精细的噪声水平离散化或使用更深的去噪器网络可以更好的处理噪声水平范围,以降低这种差异。
在表4(b)中,我们报告了在某一采样率下训练在另一采样率下测试的两个网络的性能。LDIT和LDAMP网络在采样率为0.2时的端到端训练和逐层训练的性能比在采样率0.05测试时的性能差。相反的,逐去噪器训练网络,不针对某一特定采样率训练,可以很好地推广到不同的采样率。
4.Theoretical analysis of LDAMP
本节有两个理论贡献。第一个,我们展示了状态演化(SE),一个用于预测AMP/D-AMP的性能的框架,也适用于LDAMP。第二个,我们使用SE来证明LDAMP的逐层和逐去噪器训练是MMSE最优的。
4.1 State-evolution
在LAMP和LDAMP的背景下,SE方程可以预测网络的每一层的中间MSE。从开始,SE通过下列迭代生成一个数的序列:
其中,标量
是测量噪声
的标准偏差,期望服从分布
。注意符号
是用来强调
可能依赖于信号
,不确定的
,和测量噪声。
令表示LDAMP的L层的估计值。 我们的实证结果如图5所示,证明LDAMP的MSE可以由SE准确预测。
下面我们正式描述我们的发现:
发现1:如果LDAMP网络从作为起始点,那么对于值很大的m和n,SE预测了在每一层LDAMP的MSE,即
,如果下列条件满足:(i)矩阵A的元素是独立同分布的高斯(或亚高斯)有均值为0和标准差1/m。(ii)噪声w也是独立同分布的高斯。(iii)每一层的去噪器
是Lipschitz continuous(利普希茨连续的)。
4.2Layer-by-layer and denoiser-by-denoiser training is optimal
SE框架可以证明一下结论:LDAMP的逐层和逐去噪器训练是MMSE最优的。这两个结果都依赖于下列引理。
引理1:假设是单调的去噪器,在
上有意义。
是关于
的非增函数。如果
的权重
是用来最小化
并固定;然后
的权重
用来最小化
,并固定。。。。。。之后
的权重
用来最小化
,然后他们一起最小化
引理1可以用[10]中的引理3的证明方法得到,但是要用来代替
。它可以引出以下两推论。
推论1:在引理1条件下,LDAMP的逐层训练是MMSE最优的。
这个结论来自于引理1和与
的等价性。
推论2:在引理1条件下,LDAMP的逐去噪器训练是MMSE最优的。
这个结论来自于引理1和与
的等价性。
5.Experiments
数据集:训练图像取自Berkeley 's BSD-500数据集。从这个数据集,我们使用了400张图像进行训练,50张用于验证,50张用于测试。由第三部分所示结果可知,训练图像被裁剪,缩放,翻转和旋转,形成一组204800重叠的40x40的补丁。验证图像被裁剪成1000个非重叠的40x40的补丁。我们使用了256个非重叠的40x40的补丁进行测试。对于本节所示结果,我们使用382464个50x50的补丁用于训练,652850个50x50的补丁用于验证,和7个标准测试图像,如图6所示,并缩放到不同的分辨率进行测试。
实现:我们实现LDAMP和LDIT,使用DnCNN去噪器,在TensorFlow和MatConvnet(Matlab工具箱)中,这两个版本的实现都可在该网站获得;https://github.com/ricedsp/D-AMP_Toolbox.
训练参数:我们使用Adam优化器和训练率0.001来训练所有网络,当验证错误停止改进时,训练率降至0.0001然后是0.00001。根据网络大小和内存使用情况我们使用32到256个补丁的小批。对于逐层和逐去噪器训练,我们对每一个小批使用不同的随机生成矩阵。训练在Nvidia Pascal Titan X上通常每个去噪器的训练需要3到5小时。本节的结果是对逐去噪器训练网络(有10个展开的DAMP/DIT层组成,每层包含一个20层的DnCNN去噪器)的。
竞争:我们将LDAMP的性能与三种最先进的图像恢复算法进行了比较;TVAL3,NLR-CS,和BM3D-AMP。我们还与LDIT进行了比较,以证明Onsager校正项的好处。我们的结果不包括其他的基于神经网络的方法的比较。许多基于神经网络的方法都是很单一化的,只使用于某些特定的矩阵。最近提出的OneNet和RIDE-CS方法可以得到更普遍的应用。不幸的是,我们无法对OneNet代码进行及时的训练和测试。虽然RIDE-CS代码是可使用的但是它的实现要求测量矩阵具有正交的行。当在非正交行的矩阵上测试时,该方法的性能比其他方法差的多。
算法参数:所有算法使用它们的默认参数。然而,NLR-CS使用BM3D-AMP的8次迭代进行初始化,如[10]中所示。BM3D-AMP进行10次迭代。LDIT和LDAMP使用10层。LDIT有它的每层的噪声标准差估计参数来设置
就像[10]中D-IT所做的那样。
测试设置:我们用独立同分布的高斯测量和由一个随机采样的编码衍射图样得到的测量值来测试算法。编码衍射图样的前行操作由三个步骤组成;随机(均匀)改变相位,做2D FFT,随机(均匀)亚采样。除了图7中的结果,我们用128x128的图像测试算法。我们用PSNR来报告恢复精度。然后报告运行时间(以秒为单位)。结果在补充中提供了图像分解的结果。
高斯测量:在无噪声高斯测量的情况下,LDAMP网络在每个图像的每个采样率上产生最好的重构,除了指纹,与网络训练用的自然图像很不同。在无噪声高斯测量下,LDIT和LDAMP产生的重构信号速度明显快于竞争方法。注意,尽管必须要执行两次去噪操作,在 采样率为0.25的LDAMP网络仅仅比LDIT网络慢大约25%左右。这意味着矩阵乘是计算的主要来源而不是去噪操作。表1中报告了平均恢复的PSNRs和运行时间。在高斯噪声下LDAMP平均水平优于其他方法;这些结果可以在补充中找到。
编码衍射测量:在无噪的编码衍射测量情况下,LDAMP网络在除了指纹的每一个图像上都得到了最好的重构。在编码衍射测量情况下,LDIT和LDAMP产生的重构信号比其他方法快的多。注意,因为编码衍射测量的前向和后向操作均需要O(nlogn)阶操作,去噪变成了计算的主要来源:LDAMP比LDIT多了两倍的去噪操作,运行时间大约也需要两倍长。平均恢复PSNRs和运行时间在表2中展示。最后,我们比较了TVAL3,BM3D-AMP和LDAMP三种算法在512x512恢复的视觉比较。
6.Conclusions
本文中,我们开发,分析,验证了一种新的神经网络结构来模仿功能强大的D-AMP信号恢复算法的行为。LDAMP网络易于训练,可应用于多种不同的测量矩阵,并有状态启发式来精确预测其性能。最重要的是LDAMP在精度和运行时间上都比先进算法BM3D-AMP和NLR-CS的性能更好。
LDAMP表达了在使用训练数据(和许多离线计算)来提高迭代算法性能的方向的最新示例。这篇文章背后的关键思想是,相比较于训练一个相对任意的黑匣子来学习恢复信号,我们可以展开传统的迭代算法将其结果视为一个神经网络,产生的网络行为易于理解,性能有保障,可预测网络缺点。我们希望可以对这个方法的突破带来益处,并鼓励该方向的进一步研究。