10 VDN-Variational Denoising Network 阅读

VDN阅读笔记

文献简介

  • 这是一篇2019年NIPS的文章
  • 截至目前,2020/06/29谷歌上的引用量11

概括VDN

VDN方法概括:是VI的方法,在贝叶斯框架下同时进行图像噪声估计和图像降噪。同时基于数据驱动,使用DNN近似图像后验,隐变量为假设的真实干净图像与噪声,进而生成带噪图像。这个图像后验是由DNN输出的参数显示表达的。

当然你要问,那一般有了大量有监督的带噪图和干净图对,我们可以直接用DNN,或者GAN暴力做一个降噪器,VDN相比于此有何区别呢?除了贝叶斯框架外,最主要的是噪声假设更加general,其先验假设不再是简化的iid噪声,而是与图像上像素位置相关的非iid噪声,是spatial的。

VDN的优点:

  • 使用数据驱动的DNN,其生成模式带来泛化性
  • 是传统DNN方法的general版本,可退化回传统DNN方法(揭示了其机理与缺点)
  • 两种隐变量,干净图和噪声的建模很general,可解释性好
  • spatial的非iid噪声先验假设
  • 降噪和噪声估计同时进行,且均可显示表达出来

文献内容阅读(部分翻译)

  • 摘要

    介绍个背景blind image denoising,基本概念是收集图像的时候噪声很复杂以至于我们其实真的不清楚噪声具体结构,所以这种降噪称为blind

  • 引言

    • 两种传统图像降噪方法:
      • 贝叶斯框架下的MAP方法,通过稀疏、低秩等先验,得到合理的后验,引出保真的损失和正则。但是缺点是噪声的先验往往与实际复杂且非iid的空间变化的噪声不符;且传统的MAP似乎只能作用于一张图像,对新图像要重新计算。
      • 方法二是DNN端到端模型,利用大量收集的干净带噪图像对训练降噪器。优点是能利用大量图像信息,测试速度快;缺点是易对特定类型的噪声过拟合,且实际噪声复杂导致难以泛化√
    • 本文基于blind image denoising提出了新的VDN
      • VDN概念:仍然在贝叶斯框架下,一般性的blind降噪方法。目的是同时估计噪声并降噪,把真实干净图像和噪声估计视为隐变量,从脏图生成干净的后验图像。使用DNN,后验成为参数的显式表示。
      • 对一般方法的改进:
        • 噪声的估计是非iid的,更真实,与图像的空间位置相关;
        • 生成式模型泛化更好
        • 噪声的估计是生成式的,解释性
        • DNN框架,可以退化为一般的DNN降噪方法
        • 一般方法过拟合的解释:本质上过分强调了拟合干净图的先验,忽略了噪声的空间非iid性,导致测试的时候易被不同类型的噪声影响
  • 相关工作

    图像降噪的两种方法Model-driven MAP based Methods和Data-driven Deep Learning based Methods。

  • VDN理论推导过程

    • 贝叶斯模型建立

      数据对集合$D=\{\mathbf{y}_j, \mathbf{x}_j\}_{j=1}^n$,前者是带噪图,后者是对应的真实干净图,下标$j$是样本的index。贝叶斯框架下,隐变量是带噪图条件下的干净图和噪声。假定图像的维度为$d = weight \times height$,单个样本对$(\mathbf{y}, \mathbf{x})=\left(\left[y_1, \cdots, y_d\right]^T, \left[x_1, \cdots, x_d\right]^T\right)$,维度的index则统一用下标$i$表示。那么一张带噪图$\mathbf{y}$的一个分量

      其中$z_i\in \mathbb{R}^d$,是隐变量,潜在的干净图,以数据对中的干净图为先验,

      为共轭的高斯先验。后面的方差项就是指图像上每个像素处的噪声是非iid的,不知道为什么取为对什么共轭的逆高斯分布IG,即

      其中$\mathbf{\xi} =\mathcal{G}\left(\left(\hat{\mathbf{y}} - \hat{\mathbf{x}} \right)^2; p\right)$,其中$\left(\hat{\mathbf{y}} - \hat{\mathbf{x}} \right)^2$称为variance map,中文可能叫图像的方差映射;$\mathcal{G}(\cdot, p)$指用$p\times p$的卷积核进行高斯滤波。具体有啥用我没看懂鸭…

    • 后验的变分表示

      首先明确后验分布是对于隐变量来说的,即$p(z, \sigma^2 | \mathbf{y})$。

      那么有自然的后验近似分布$q(z, \sigma^2 | \mathbf{y})$

      由平均场假设,近似分布可以分解

      由于前面提到“$z$服从共轭的高斯先验”和“方差项为共轭的逆高斯分布IG”,我们用下面两个式子表示$(3)$式中RHS的两项:

      其中$\mu_i, m_i, \alpha_i, \beta_i$都是预测表示从脏图$\mathbf{y}$到对应参数的映射函数,用NN就可以做到。式$(4)$和式$(5)$分别对应降噪网络D-Net和参数网络Sigma-Net。

    • 变分下界推导:

      详细给了后验的分解形式后,来推下变分下界,下面是数据边际似然的对数:

      那么其中的$\mathcal{L}$就是变分下界:

      至于$(7)(8)$式怎么推导的,那就是一般变分下界的推导方式,对隐变量积分、似然项分解、差分出KL散度。式$(7)$中的每一项都有解析表示!下面是第一项

      后面两项我着实捉虾了,以及从$(13)$到$(14)$还是令我费解的。补充材料里都推导了,但可惜我这各种分布不太熟悉,这些期望具体怎么算的我还要多学…✊

      然后就可以把变分下界当成目标函数,或者说loss来训练了。

    • 网络,D-Net和Sigma-Net的训练似乎比较轻松,不需要重参数化什么的,直接BP开干就完事了。注意这里网络的结构怎么设计先不管了,有需要再进行阅读

      留一段原文结构机理在这里

      During the BP training process, the gradient information from the likelihood term of
      Eq. (10) is used for updating both the parameters of D-Net and S-Net simultaneously, implying that
      the inference for the latent clean image z and sigma^2 is guided to be learned from each other.

      训练好两个网络之后,把测试脏图输入降噪的D-Net,得到的均值$\mu$就是降噪图;输入Sigma-Net,就得到该图噪声的分布参数。

  • 最后给出一个VDN退化到传统DNN的理解:

    $(2)$式中如果方差项趋于0,则上面变分下界中的前面似然项期望退化为MSELoss,即传统的方法。传统的方法容易对特定的噪声过拟合就是因为只有这样的MSELoss项控制,缺少噪声随图像上位置变化的描述(往往非iid)

参考资料

[1] Yue, Zongsheng, et al. “Variational denoising network: Toward blind noise modeling and removal.” Advances in neural information processing systems. 2019.

[2] NIPS Proceedings 2019. Variational Denoising Network: Toward Blind Noise Modeling and Removal[EB/OL]. http://papers.nips.cc/paper/8446-variational-denoising-network-toward-blind-noise-modeling-and-removal, 2019.

详细推导细节参考[2]提供的补充材料。