这篇论文主要概述了model-baesd的方法在解决图像恢复的逆问题的很好的效果,降噪问题其实就是前向模型的H是一个恒等算子,将state-of-the-art的降噪算法(先验模型)和相对应的逆问题的求解方法结合是一个困难但是具体前景的工作。  作者提出了一个灵活的框架能够允许性能强大的图像系统的前向模型(forword models )去匹配j和结合降噪模型和先验模型(denoising model or prior model),以实现图像恢复。

传统的模型涉及两个部分,一个模型是噪声的估计系统,另一个模型是待重构图像模型(比如先验模型),然后通过最小化一个成本函数来计算重构,该函数平衡了这两个模型的拟合。

降噪问题在图像的反演过程中最简单的,因为他的前向模型是一个恒等算子,为新的先验模型的产生创造了肥沃的环境。model-based 逆问题主要关注的是精确的建模大尺度的复杂的前向模型,很少有融合先进的先验模型、降噪方法啊。

-- 因此,基于模型的反演研究往往滞后于先进的先验建模

-- BM3D-based 方法的图像先验模型并不能够直接应用于一般的反演问题

虽然之前也有集合先进的先验模型进入图像的反演问题,但是他们常常是高度定制化的,

当前并没有为一般的model-based图像反演问题,匹配降噪模型作为先验。


方法: 应用ADMM技术,分离变量以实现将MAP估计问题解耦为先验和前模型问题,一个是前向模型一个是先验问题。一个模块对应着降噪算法只依靠于先验,第二个模块对应着应用l2正则化的反演问题只依靠于前向模型。

MAP计算函数去解决反演问题

带求量$\hat{x}$的MAP估计:

$\hat{x}=$argmin-log$p(y|x)$-log$p(x)$

$\hat{x}=$argmin$l(y;x)+s(x)$

MAP估计$l(y;x)=\frac{1}{2\sigma_{n}^{2}}||y-x||_{2}^{2}+\frac{M}{2}log(2\pi\sigma_{n}^{2})$

对应着降噪任务,旨在被设计去移除方差为$\sigma_{n}^{2}$的加性高斯白噪声(AWGN)

所以可以再表示为:

$H(y;\sigma_{n}^{2})=\frac{1}{2\sigma_{n}^{2}}||y-x||_{2}^{2}+s(x)$     (3)

常常加上增加的正则化参数去控制先验模型在重建上的相对影响:

$\hat{x} = $argmin$l(y;x)+\beta s(x)$

变量分离 and ADMM

首先分离变量x为两个新的变量x 和 v, 则MAP问题被重新写为:

$(\hat{x},\hat{v}) = $argmin$_{x,v}{l(y;x)+ \beta s(v)}$    令x=v

使用增广拉格朗如函数(augmented Lagrangian)和ADMM技术去解决这个问题:

$L_{\lambda}(x,v,u) = l(y;x)+ \beta s(v) + \frac{\lambda}{2}||x-v+u||_{2}^{2} - \frac{\lambda}{2}||u||_{2}^{2}$

其中u 是一个缩放的对偶变量(dual variable),$\lambda$是一个惩罚变量。

$\hat{x} = $ argmin$_{x}L_{\lambda}(x,\hat{v},u)$

$\hat{v} = $argmin$_{v}L_{\lambda}(\hat{x},v,u)$

$u = u + (\hat{x}-\hat{v})$

其中$\lambda$ 对最后的结果没有影响,只是控制ADMM算法的收敛率

如果,$\hat{x} =\hat{v}-u$ 和 $\hat{v}=\hat{x}+u$ :

step1 $\rightarrow$ $\hat{x} = $argmin$_{x}{ l(y;x) + \frac{\lambda}{2}||x\text{}-\hat{x}||_{2}^{2}}$

step2  $\rightarrow$  $\hat{v}=$argmin$_{v}\frac{\lambda}{2}||\hat{v}\text{}-\text{}v||_{2}^{2}+\lambda s(v)$   (11)

step3  $\rightarrow$    $u = u + (\hat{x}-\hat{v})$

第一步取决于前向模型的选择;第二步取决于先验的选择,能够被集成作为一个降噪操作,如上面的公式。

为了强调ADMM更新的模块结构,定义一个算子$F(y,\tilde{x};\lambda)$:

$F(y,\tilde{x};\lambda)=$argmin$_{x}{ l(y;x)+\frac{\lambda}{2}||x\text{}-\text{}\tilde{x}||_{2}^{2}}$

上面的公式返回了 给定值y,求得的x的MAP估计值,使用二次正则化值$\tilde{x}$,是一个二次正则化最小二乘问题。

我们称作$F(y,\tilde{x};\lambda)$为简化的重构操作,根据重构操作$F(y,\tilde{x};\lambda)$和降噪操作$H(y;\sigma_{n}^{2})$,我们能够重写ADMM迭代:

$\hat{x} \leftarrow  F(y,\tilde{x};\lambda)$

$\hat{v} \leftarrow H(y;\frac{\beta}{\lambda}) $ 根据公式3和公式11

$u = u + (\hat{x}-\hat{v})$

这样写后,形成了两个独立的模块,重建操作和降噪算法操作,先验模型的改变只涉及一个模块$H(y;\sigma_{n}^{2})$,所以可以混合和匹配不同的降噪先验模型和有益的前向模型。

重要的点,这两个模块都可以不那么精确,都可以使用近似的操作来取代,这些算子不能使各自的成本函数最小化,而是使其值充分降低。这个对于将使算法在实际中发挥作用和加速都极为有益。

通过变量分离技术,作为一个机制去产生灵活的架构,期望简单的匹配先验模型和前向模型。

ADMM能够确保收敛,通过数值实验,我们发现用去噪算法代替H,即使不显式对应于凸函数s甚至严格的优化问题,也能得到稳定的结果。(这个就为使用判别学习方法得到先验模型创造了条件,先验正则化隐式的包含在参数模型中)

整体算法:

其中第一步,在HQS算法中,使用的是快速傅里叶变换(FFT)进行求解;

思考:

这部分可以尝试使用CNN-based残差学习的判别学习方法对先验进行建模,使用降噪先验取代$\hat{v} \leftarrow H(y;\frac{\beta}{\lambda}) $;

这部分也可以尝试嵌入一个GAN-based 拟合的多分布,兴许可以产生比CNN-based 的单一判别学习方法更好的效果;

论文解读《Plug-and-Play Priors for Model Based Reconstruction》的更多相关文章

  1. 《Population Based Training of Neural Networks》论文解读

      很早之前看到这篇文章的时候,觉得这篇文章的思想很朴素,没有让人眼前一亮的东西就没有太在意.之后读到很多Multi-Agent或者并行训练的文章,都会提到这个算法,比如第一视角多人游戏(Quake ...

  2. ImageNet Classification with Deep Convolutional Neural Networks 论文解读

    这个论文应该算是把深度学习应用到图片识别(ILSVRC,ImageNet large-scale Visual Recognition Challenge)上的具有重大意义的一篇文章.因为在之前,人们 ...

  3. 《Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks》论文笔记

    论文题目<Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Ne ...

  4. Quantization aware training 量化背后的技术——Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference

    1,概述 模型量化属于模型压缩的范畴,模型压缩的目的旨在降低模型的内存大小,加速模型的推断速度(除了压缩之外,一些模型推断框架也可以通过内存,io,计算等优化来加速推断). 常见的模型压缩算法有:量化 ...

  5. Training Deep Neural Networks

    http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural ...

  6. Training (deep) Neural Networks Part: 1

    Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...

  7. [CVPR2015] Is object localization for free? – Weakly-supervised learning with convolutional neural networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...

  8. Training spiking neural networks for reinforcement learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...

  9. CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲

    前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉.希望大家在新的一年中工作顺利,学业进步,共勉! 今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图 ...

  10. 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations

    目录 摘要 1.引言 2.BinaryConnect 2.1 +1 or -1 2.2确定性与随机性二值化 2.3 Propagations vs updates 2.4 Clipping 2.5 A ...

随机推荐

  1. linux内存分配与回收

    前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后, ...

  2. (转)HttpServletResquest对象

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息. 1 ...

  3. mysql-3-orderby

    #进阶3:排序查询 /* 语法: SELECT FROM WHERE ORDER BY ASC|DESC */ USE myemployees; #案例1:查询员工信息,按工资从高到低排 SELECT ...

  4. 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符

    027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...

  5. Java知识系统回顾整理01基础03变量08表达式

    一.以 ; 结尾的一段代码,即为一个表达式 表达式是由变量.操作符以及方法调用所构成的结构.如下所示: int i = 5; System.out.println(5); 都是表达式 public c ...

  6. 使用Appium进行iOS的真机自动化测试

    windows不支持appium连接ios,只适用于mac 使用Appium进行iOS的真机自动化测试 安装类库 Homebrew 如果没有安装过Homebrew,先安装[ homebrew ] np ...

  7. 《To C产品经理进阶》

    我所说的,都是错的. To C产品设计和To B产品设计对一个优秀的产品经理的洞察能力.架构能力有共通的要求. 实际产品设计过程中,To C产品往往是从商业思维思考,侧重用户研究,思考用户心智,由产品 ...

  8. JVM调优常用参数总结

    GC通用参数 -Xmn -Xms -Xmx -Xss 年轻代 最小堆 最大堆 栈空间 -XX:+UseTLAB 使用TLAB,默认打开 -XX:+PrintTLAB 打印TLAB的使用情况 -XX:T ...

  9. Java 客户端操作 FastDFS 实现文件上传下载替换删除

    FastDFS 的作者余庆先生已经为我们开发好了 Java 对应的 SDK.这里需要解释一下:作者余庆并没有及时更新最新的 Java SDK 至 Maven 中央仓库,目前中央仓库最新版仍旧是 1.2 ...

  10. 用vscode写python,from引用本地文件的时候老是有红色波浪线,很不爽

    前言 出于一些原因,国际关系等等,最近想把开发工具切换到一些免费开源的工具上面,先尝试了在vscode上搭建python环境,总体还是很简单的, 网上教程很多,vscode本身的插件也很丰富,可惜了国 ...