这是ICML2018的一篇论文,其由来自英伟达、阿尔托大学和 MIT 的研究者联合发表。该文章提出了一个颇有意思的观点:在某些常见状况下,网络能够学习恢复信号而不用“看”到“干净”的信号,且获得的结果接近或至关于使用“干净”样本进行训练。而这项结论来自于一个简单的统计学上的观察:咱们在网络训练中使用的损失函数,其仅仅要求目标信号(ground truth)在某些统计值上是“干净”的,而不须要每一个目标信号都是“干净”的。html
先看一种简单的状况,假设咱们对某个物理量(如房间的温度)屡次测量,获得一系列不可靠的测量值(
)。一种估计真实值的通用方法是找到一个数
,使其与这些测量值有最小的平均误差,即优化下面损失函数:
git
对于
损失
,该损失函数的最优解在测量值的算数平均值(指望)处取到:
github
对于
损失
,该损失函数的最优解在测量值的中值处取到:
web
对于
损失
,该损失函数的最优解近似在测量值的众数处取到:
网络
从统计学角度,这些通用的损失函数均可以解释为似然函数的负对数,而对这些损失函数的优化过程能够看作为最大似然估计。
训练神经网络回归器是这种点估计过程的推广。已知一系列输入-目标对
,典型的网络训练形式是优化下列目标函数:
app
其中,网络函数为
,
为网络参数。
若是将整个训练任务分解为几个训练步骤,根据贝叶斯定理可将上述目标函数变为:
svg
则网络训练的目标函数与前面所说的标量损失函数有相同的形式,也具备相同的特性。函数
实际上,经过上述目标函数,在有限数量的输入-目标对上训练回归器的过程隐含了一点:输入与目标的关系并非一一对应的,而是一个多值映射问题。好比对于一个超分辨问题来讲,对于每个输入的低分辨图像,其可能对应于多张高分辨图像,或者说多张高分辨图像的下采样可能对应同一张图像。而在高低分辨率的图像对上,使用 损失函数训练网络,网络会学习到输出全部可能结果的平均值。学习
综上所述,
最小化的一个看起来彷佛微不足道的属性是,若是咱们用一个指望与目标相匹配的随机数替换目标,那么估计值将保持不变。所以,若是输入条件目标分布
被具备相同条件指望值的任意分布替换,则最佳网络参数
也保持不变。这意味着,能够在不改变网络训练结果的状况下,将神经网络的训练目标添加上均值为0的噪声。则网络目标函数能够变为
测试
其中,输出和目标都是来自于有噪声的分布,且知足
当给定的训练数据无限多时,该目标函数的解与原目标函数的相同。当训练数据有限多时,估计的均方偏差等于目标中的噪声的平均方差除以训练样例的数目,即:
所以,随着样本数量的增长,偏差接近于零。即便数据量有限,估计也是无偏的,由于它在指望上是正确的。
在许多图像复原任务中,输入的被污染数据的指望就是咱们要恢复的“干净”的目标,所以只要对每张被污染的图像观察两次,即输入数据集也是目标数据集,就能够实现对网络的训练,而不须要得到“干净”的目标。
损失能够获得目标的中值,这意味着网络能够被训练用来修复有显著异常内容的图像(最高可达50%),并且也仅仅须要成对的被污染图像。
通常加性高斯白噪声是零均值的,因此文章采用
损失训练网络。
文章使用开源图像库的图像,对每张图像随机添加方差为
的噪声,网络在去噪过程当中须要估计噪声幅度,整个过程是盲去噪过程。
从去噪结果能够看出,使用“干净”的目标和使用有噪声的目标有类似的收敛速度和去噪质量。若是进一步使用不一样大小的高斯滤波器模糊有噪声的目标图像,能够观察到低频噪声会更顽固,须要更多的迭代次数,可是对于全部状况来讲,网络都收敛于类似的去噪质量。
泊松噪声和高斯噪声同样是零均值的,可是更难去除,由于其是信号相关的。文章使用
损失,且在训练过程当中变化噪声幅度
。
须要说明的是,图像饱和截止区域是不知足零均值假设,由于在这些区域部分噪声分布被丢掉了,而剩余部分的指望再也不是零了,因此在这些区域不能获得好的效果。
即至关于对图像进行随机采样,未采样到的点像素值为0。被污染像素的可能性记为
,在文章训练过程当中,变化
,而在测试中
。而获得的结果是使用被污染的目标比“干净”目标获得PSNR值还要高一点,这多是因为被污染的目标在网络输出中有效地应用了dropout技术的结果。
网络使用独立的被污染输入和目标对进行训练,被污染像素的可能性
在训练过程当中为
,而在测试中
。且在训练中使用
损失做为损失函数,从而去除异常值。
即对于每个位置的像素都有可能性
被
的值随机替代。在这种状况下,平均值和中值都能产生好的结果,其理想的输出应该是像素值分布的众数。为了近似寻找众数,文章使用退火版本的“
损失”函数,其定义为
,其中
,在训练时
从2到0线性降低。训练时输入和目标图像被污染像素的可能性为
。
除此以外,文章还在Monte Carlo渲染和MRI方面作了测试,均获得了不错的效果。
该文章的意义在于,在现实世界中想要得到清晰的训练数据每每是很困难的,而这篇文章提供了一种新的思路解决这个问题。文章也提到了,天下没有免费的午饭,该方法也没法学习获取输入数据中不存在的特性,但这一样适用于清晰目标的训练。
英伟达新闻地址:新闻地址
An unofficial and partial Keras implementation:github
更新:
英伟达官方tensorflow实现:github