Loss Functions for Image Restoration with Neural Networks
该论文发表于 IEEE Transactions on Computational Imaging 2016,点击论文原文查看全文。
下面将记录笔者对论文的理解与掌握,对于作者最终提出的MS-SSIM+L1 Loss的损失函数,笔者尚未完全掌握如何计算 G σ G M G_{\sigma_{G}^{M}} GσGM与L1的结合。另外,作者在文中提到对于不同的损失函数使用相同的网络结构,但并未提到超参数(比如学习率)是否相同,如果有读者了解,还望不吝赐教。
论文亮点
【1】总结了L2 Loss、L1 Loss、SSIM Loss、与MS-SSIM Loss,并提出MS-SSIM Loss与L1 Loss的组合是最佳选择。
【2】对L1 Loss优于 L2 Loss的原因提出了见解,并指出了SSIM Loss与MS-SSIM Loss的缺陷。
摘要
尽管神经网络在计算机视觉中运用的越来越多,但是损失函数似乎并没有引起人们太多的注意。目前默认的损失是 L 2 L2 L2损失。在这篇论文中,我们将注意力放在了图像复原任务中可代替的损失函数选择。特别是,当由人类观察进行评估时,我们展示了perceptually-motivated loss(比如SSIM Loss)的重要性。我们对比了几种损失的表现,并且提出了一个新的、可微分的损失函数,它在不改变网络结构的情况下,复原结果有显著的提升。作者提供了Caffe实现。
上图展示了由不同的损失函数训练的网络的去噪和去马赛克结果对比。可以看出,L2 Loss(图(d))产生了有斑点的伪影。这是因为L2惩罚大误差,而对小误差比较容忍,忽略了图像的本质结构。
损失函数
L1 Loss
L1 Loss的本质就是MAE(平均绝对误差),比较简单,计算公式及其导数见论文。
尽管L1 Loss基于图像中的patch计算(有时候也直接取整个图像计算),但无论如何,反向传播时的导数是在每个像素上(像素级)计算的。
需要注意的是,L1 Loss相比L2 Loss取得了更好的结果,如图1(e)中所示(没有了伪影),但它仍然不是最优结果。
SSIM Loss
SSIM属于感知相关指标(perceptually motivated),对某一像素点 p p p的SSIM定义为:
SSIM ( p ) = 2 μ x μ y + C 1 μ x 2 + μ y 2 + C 1 ⋅ 2 σ x y + C 2 σ x 2 + σ y 2 + C 2 = l ( p ) ⋅ c s ( p ) \begin{aligned} \operatorname{SSIM}(p) &=\frac{2 \mu_{x} \mu_{y}+C_{1}}{\mu_{x}^{2}+\mu_{y}^{2}+C_{1}} \cdot \frac{2 \sigma_{x y}+C_{2}}{\sigma_{x}^{2}+\sigma_{y}^{2}+C_{2}} \\ &=l(p) \cdot c s(p) \end{aligned} SSIM(p)=μx2+μy2+C12μxμ