自监督去噪:Recorrupted-to-Recorrupted原理分析与总结

文章目录
- 1. 方法原理
- 1.1 相关研究
- 1.2 研究思路
- 1.3 小结
- 2. 实验结果
- 3. 总结
文章地址: https://ieeexplore.ieee.org/document/9577798/footnotes#footnotes
参考博客: https://github.com/PangTongyao/Recorrupted-to-Recorrupted-Unsupervised-Deep-Learning-for-Image-Denoising
1. 方法原理
1.1 相关研究
Noise2Noise的问题
- 噪声图像对不好获取
- 同一场景不同图像怎么对齐?
解决N2N配对问题的工作可以分为两类
-
数据增强方法:
- Noise2Void 和 Noise2Self使用盲点网络的方法避免过拟合(直接点到点映射)
- Noiser2Noise 和 Noise-as-Clean 是采样额外的噪声数据配对进行训练
-
正则化去噪的DNN:
- Stein’s Unbiased Risk Estimator(SURE)通过添加对预测结果散度的惩罚添加正则
- Deep Image Prior 使用 early-stopping 防止过拟合
- Self2Self中使用 Dropout引入不确定性估计,提高去噪的鲁棒性。
研究动机
- 无监督/自监督学习在实际工作、缺少干净数据的时候是非常有效的
- 现有的无监督方法还无法和监督学习媲美
1.2 研究思路
从可加性的高斯噪声出发,配对的噪声数据对科比表示为
y = x + n n ∼ N ( 0 , σ 1 2 I ) y ′ = x + n ′ n ′ ∼ N ( 0 , σ 2 2 I ) \begin{aligned} y &= x + n ~~~~ n \sim N(0,\sigma_1^2 I) \\ y' &= x + n' ~~~~ n' \sim N(0,\sigma_2^2 I) \end{aligned} yy′=x+n n∼N(0,σ12I)=x+n′ n′∼N(0,σ22I)
Noise2Noise的L2损失函数需要优化
E n , n ′ { ∣ ∣ F θ ( y ) − y ′ ∣ ∣ 2 2 } E_{n,n'}\{ ||F_{\theta}(y) - y'||_2^2\} En,n′{∣∣Fθ(y)−y′∣∣22}
将其展开进行推导
E n , n ′ { ∣ ∣ F θ ( y ) − y ′ ∣ ∣ 2 2 } = E n , n ′ { ∣ ∣ F θ ( y ) − x − n ′ ∣ ∣ 2 2 } = E n , n ′ { ∣ ∣ F θ ( y ) − x ∣ ∣ 2 2 − 2 ( n ′ ) T ( F θ ( y ) − x ) + ( n ′ ) T n ′ } = E n , n ′ { ∣ ∣ F θ ( y ) − x ∣ ∣ 2 2 } − 2 E n , n ′ { ( n ′ ) T F θ ( y ) } + c o n s t \begin{aligned} &E_{n,n'}\{ ||F_{\theta}(y) - y'||_2^2\} \\ &= E_{n,n'}\{ ||F_{\theta}(y) - x - n'||_2^2\} \\ &= E_{n,n'}\{ ||F_{\theta}(y) - x||_2^2 - 2(n')^T(F_{\theta}(y) -x) + (n')^Tn' \} \\ &= E_{n,n'}\{ ||F_{\theta}(y) - x||_2^2\} - 2E_{n,n'}\{ (n')^T F_{\theta}(y)\} + const \end{aligned} En,n′{∣∣Fθ(y)−y′∣∣22}=En,n′{∣∣Fθ(y)−x−n′∣∣22}=En,n′{∣∣Fθ(y)−x∣∣22−2(n′)T(Fθ(y)−x)+(n′)Tn′}=En,n′{∣∣Fθ(y)−x∣∣22}−2En,n′{(n′)TFθ(y)}+const
如果噪声 n n n 和 n ′ n' n′ 是独立的,那么 E n , n ′ { ( n ′ ) T F θ ( y ) } = 0 E_{n,n'} \{(n')^T F_{\theta}(y)\} = 0 En,n′{(n′)TFθ(y)}=0,也就是说噪声对监督学习和噪声-干净数据的监督学习可以得到相同的优化结果。现在的问题就是如何从一张噪声图片( y y y)中构建出一对具有独立噪声的数据( y ^ , y ~ \widehat{y},\widetilde{y} y ,y )
根据假设,噪声的分布是 AWGN(additive white Gaussian noise),那么噪声服从分布 n ∼ N ( 0 , σ 1 2 I ) n \sim N(0,\sigma_1^2 I) n∼N(0,σ12I)。 现在根据下方的方法进行采样
y ^ = y + D T z , y ~ = y − D − 1 z , z ∼ N ( 0 , σ 1 2 I ) \widehat{y} = y + D^Tz,~~~ \widetilde{y} = y - D^{-1}z,~~~ z \sim N(0,\sigma_1^2 I) y =y+DTz, y =y−D−1z, z∼N(0,σ12I)
其中D可以是任何可逆矩阵,文章中证明了 噪声样本 y ^ \widehat{y} y 和 y ~ \widetilde{y} y 相互独立,所以根据这两个样本训练的网络满足
E n , z { ∣ ∣ F θ ( y ^ ) − y ~ ∣ ∣ 2 2 } = E n ^ { ∣ ∣ F θ ( x + n ^ ) − x ∣ ∣ 2 2 } E_{n,z}\{||F_{\theta}(\widehat{y}) - \widetilde{y}||_2^2\} = E_{\widehat{n}} \{ ||F_{\theta}(x + \widehat{n}) - x||_2^2 \} En,z{∣∣Fθ(y )−y ∣∣22}=En {∣∣Fθ(x+n )−x∣∣22}
其中 n ^ = n + D T z \widehat{n} = n + D^Tz n =n+DTz
那么对于这种无结构噪声数据:
y k = x k + n k , x k ∼ X , n k ∼ N ( 0 , σ 2 I ) y^k = x^k + n^k,~~~ x^k \sim X , ~~~ n^k \sim ~ N(0,\sigma^2I) yk=xk+nk, xk∼X, nk∼ N(0,σ2I)
用噪声数据对 { ( y ^ k , y ~ k ) (\widehat{y}^k, \widetilde{y}^k) (y k,y k)}定义的损失函数为也就等价于下面这个损失函数了
E x , n ^ { ∣ ∣ F θ ( x + n ^ ) − x ∣ ∣ 2 2 } E_{x,\widehat{n}}\{ ||F_{\theta}(x + \widehat{n}) - x||_2^2\} Ex,n {∣∣Fθ(x+n )−x∣∣22}
对于结构化的噪声数据,可以调整噪声数据的表示形式:比如噪声的分布和干净数据相关
n服从 N ( 0 , ∑ x ) N(0,\sum_x) N(0,∑x)的正态分布,可以将噪声对表示为
y ^ = y + ∑ x D T z , y ~ = y − ∑ x D − 1 z , z ∼ N ( 0 , I ) \widehat{y} = y + \sqrt{\sum_x}D^Tz , ~~~ \widetilde{y} = y - \sqrt{\sum_x}D^{-1}z, z \sim N(0,I) y =y+x∑DTz, y =y−x∑D−1z,z∼N(0,I)
其中协方差差矩阵 ∑ x \sum_x ∑x是正定矩阵,其满足 ∑ x T = ∑ x , ∑ x ∑ x = ∑ x \sqrt{\sum_x}^T = \sqrt{\sum_x}, ~~~ \sqrt{\sum_x}\sqrt{\sum_x} = \sum_x ∑xT=∑x, ∑x∑x=∑x
1.3 小结
- 从数学推导上证明了 R2R的方法和监督学习的可比性
- 相比其他无监督去噪方法,该方法简单且灵活,也可以直接在噪声图像上进行处理
- 去噪效果很好,在真实数据中也应用非常好
2. 实验结果
-
去除高斯噪声效果对比,R2R的效果比当前最好的 SURE 效果还要好。这里的 D = α I D = \alpha I D=αI 和 D − 1 = I / α D^{-1} = I/\alpha D−1=I/α,其中 α = 0.5 \alpha = 0.5 α=0.5
-
去除真实图片中的噪声:噪声水平函数(noisy level function)给定,噪声函数建模为 heteroscedastic signle dependent Gaussian single, 其协方差为
∑ x = d i a g ( β 1 x + β 2 ) \sum_x = diag(\beta_1 x + \beta_2) x∑=diag(β1x+β2)
设置 D = 2 I , D − 1 = I / 2 D = 2I , D^{-1} = I/2 D=2I,D−1=I/2。训练的结果展示R2R的效果在各种传统方法和无监督中是最好的,但是和监督学习仍然存在一定的差距。分析原因是:噪声模式和噪声水平函数的估计不准确 -
消融实验:比如对比不同的噪声水平的预测结果
3. 总结
优势:
- 相比Noise2Noise:不需要配对噪声图片,而是根据一张噪声图片加噪
- 相比Noiser2Noise:都是采样加噪,都需要估计噪声模式,但是本文的方法从数学上的推导更加严谨一些,同时也给定了如何加噪声的方式。
- 相比Noise2Void,Noise2Self:作者对比了效果,会更好(我自己还需要补一个实验证明)
- 这种方法可以应用到实际噪声之中,但是如何估计噪声模式是个大问题
- 可以处理结构噪声和无结构噪声
缺点:
- 需要估计噪声模式,网络会继承噪声模式估计的误差
- 对于不同的噪声模式,其构建噪声对的方法会有所不同;
- 对于不同的损失函数,这种方法是否也是需要修改?比如现在想要去除图片中的文字,那么使用L1损失函数明显是会比L2损失函数更有优势的。那么上面的推导是不是也需要相应地修改?
相关文章:

自监督去噪:Recorrupted-to-Recorrupted原理分析与总结
文章目录 1. 方法原理1.1 相关研究1.2 研究思路1.3 小结 2. 实验结果3. 总结 文章地址: https://ieeexplore.ieee.org/document/9577798/footnotes#footnotes 参考博客: https://github.com/PangTongyao/Recorrupted-to-Recorrupted-Unsupervised-Deep-Learning-for-Image-Den…...

【css】css实现水平和垂直居中
通过 justify-content 和 align-items设置水平和垂直居中, justify-content 设置水平方向,align-items设置垂直方向。 代码: <style> .center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px…...

常见Charles在Windows10抓包乱码问题
废话不多说 直接开整 最近反复安装证书还是乱码 网上各种百度还是不行 首先计算机查看安装好的证书 certmgr.msc 找到并删除掉 重新安装证书 具体解决方法: 第一步:点击 【工具栏–>Proxy–>SSL Proxying Settings…】 第二步:配置…...

汽车维修保养记录查询API:实现车辆健康状况一手掌握
在当今的数字化世界中,汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API,我们可以轻松地获取车辆的维修和保养记录,从而实现对手中车辆健康状况的实时掌握。 API(应用程序接口)是进行数据交换和通信的标…...

正则表达式学习记录(Python)
正则表达式学习记录(Python) 一、特殊符号和字符 多个正则表达式匹配 ( | ) 用来分隔不同的匹配模式,相当于逻辑或,可以符合其中任何一个正则表达式 at | home # 表示匹配at或者home bat | bet | bit # 表示匹配bat或…...

Ubuntu20.04操作系统安装Docker
1、添加Docker仓库 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository \"deb [archamd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \$(lsb_release -cs) \stable"2、安装Docker sudo…...

python制作小程序制作流程,用python编写一个小程序
这篇文章主要介绍了python制作小程序代码宠物运输,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1 importtkinter2 importtkinter.messagebox3 importmath4 classJSQ:5 6 7 d…...

Github 创建自己的博客网站
参考pku大佬视频制作,附上B站视频:【GitHub Pages 个人网站构建与发布】 同时还参考了:【Python版宝藏级静态站点生成器Material for MkDocs】 GitHub Pages 介绍 内容参考:GitHub Pages - 杨希杰的个人网站 (yang-xijie.githu…...

Windows上安装 jdk 环境并配置环境变量 (超详细教程)
👨🎓博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…...

高效构建 vivo 企业级网络流量分析系统
作者:vivo 互联网服务器团队- Ming Yujia 随着网络规模的快速发展,网络状况的良好与否已经直接关系到了企业的日常收益,故障中的每一秒都会导致大量的用户流失与经济亏损。因此,如何快速发现网络问题与定位异常流量已经成为大型企…...

认识awk
awk 认识awk awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行…...

【C#学习笔记】数组和索引器
文章目录 数组单维数组多维数组交错数组 索引器类上的索引器方法1方法2 接口中的索引器 数组 数组具有以下属性: 数组可以是一维、多维或交错的。创建数组实例时,将建立纬度数量和每个纬度的长度。 这些值在实例的生存期内无法更改。数值数组元素的默认…...

常见距离计算的Python实现
常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等,用Python实现计算的方式有多种,可以直接构造公式计算,也可以利用内置线性代数函数计算,还可以利用scipy库计算。 1.曼哈顿距离 也叫城市…...

开发运营监控
DevOps 监控使管理员能够实时了解生产环境中的元素,并有助于确保应用程序平稳运行,同时提供最高的业务价值,对于采用 DevOps 文化和方法的公司来说,这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…...

食品小程序的制作教程
在今天的互联网时代,小程序已经成为了各行业推广和销售的重要途径。特别是对于食品行业来说,拥有一个专属的小程序商城可以带来更多的用户和销售机会。那么,如何制作一个完美的食品小程序呢?下面就跟随我来一步步教你,…...

Kubernetes(K8s)从入门到精通系列之十三:软件负载平衡选项
Kubernetes K8s从入门到精通系列之十三:软件负载平衡选项 一、软件负载平衡选项二、keepalived and haproxy三、keepalived配置四、haproxy配置五、选项 1:在操作系统上运行服务六、选项 2:将服务作为静态 Pod 运行 一、软件负载平衡选项 当…...

数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入
文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入。 深度度量学习尝试学习非线性特征嵌入或编码器,它可以减少来自同一类的示例之间的距离(度量)并增加来自不同类的示例之间的距离。 以这种方式工作的…...

浅谈webpack
文章目录 Webpackwebpack的工作原理webpack的构建流程Webpack的基本功能有哪些Webpack常用配置 Webpack Webpack是一个现代的JavaScript应用程序静态模块打包工具。它是一个用于构建和打包前端资源的工具,可以将多个模块和资源(如JavaScript、CSS、图片…...

【 stable diffusion LORA模型训练最全最详细教程】
个人网站:https://tianfeng.space/ 文章目录 一、前言二、朱尼酱的赛博丹炉1.介绍2.解压配置3.使用训练准备首页设置上传素材查看进度 三、秋叶的lora训练器1.下载2.预处理3.参数调配 一、前言 其实想写LORA模型训练很久了,一直没时间,总结…...

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!
蓝桥杯上岸每日N题第八期(全球变暖)!!! 同步收录 👇 蓝桥杯上岸必背!!!(第五期BFS) 大家好 我是寸铁💪 冲刺蓝桥杯省一模板大全来啦 🔥 蓝桥杯4月8号就要开始了 &am…...

CSS基础介绍笔记1
官方文档 CSS指的是层叠样式(Cascading Style Sheets)地址:CSS 教程离线文档:放大放小:ctrl鼠标滚动为什么需要css:简化修改HTML元素的样式;将html页面的内容与样式分离提高web开发的工作效率&…...

https请求异常引发(Received fatal alert: unrecognized_name):如何快速解决项目中问题?
总结思考:如何做一个出色的开发者? 首先我们要承认我们大部分程序员是应用开发,不是操作系统、协议、框架开发等这类底层开发者。 其一:是否能快速定位问题。如找到出现问题的代码,bug出现在哪一行,哪个应…...

小程序 view下拉滑动导致scrollview滑动事件失效
小程序页面需要滑动功能 下拉时滑动,展示整个会员卡内容, 下拉view里包含了最近播放:有scrollview,加了下拉功能后,scrollview滑动失败了。 <view class"cover-section" catchtouchstart"handletou…...

《ROS2》教程
参考资料: 古月居 B站视频: https://www.bilibili.com/video/BV16B4y1Q7jQ/?spm_id_from333.999.0.0 对应资料:https://book.guyuehome.com/ ROS之前最好有点ROS1的基础,跳转门:ROS-https://www.bilibili.com/video/B…...

抖音seo源码开发源代码搭建分享
抖音SEO源码开发涉及到以下几个方面: 前端开发:包括抖音SEO页面的设计与布局,以及需要使用到的前端技术,如HTML、CSS、JavaScript等。 后端开发:包括抖音SEO页面的数据获取和处理,以及需要使用到的后端技术…...

MATLAB——使用建立好的神经网络进行分类程序
学习目标:使用建立好的神经网络(训练好并保存,下次直接调用该神经网络)进行分类 clear all; close all; P[-0.4 -0.4 0.5 -0.2 -0.7;-0.6 0.6 -0.4 0.3 0.8]; %输入向量 T[1 1 0 0 1]; …...

Spring5.2.x 源码使用Gradle成功构建
一 前置准备 1 Spring5.2.x下载 1.1 Spring5.2.x Git下载地址 https://gitcode.net/mirrors/spring-projects/spring-framework.git 1.2 Spring5.2.x zip源码包下载,解压后倒入idea https://gitcode.net/mirrors/spring-projects/spring-framework/-/…...

iOS永久签名工具 - 轻松签使用教程
轻松签是一款IOS端免费的IPA签名和安装工具,最新版可以不用依赖证书对ipa永久签名,虽然现在用上了巨魔(TrollStore)- 是国外iOS开发人员opa334dev发布的一款工具,可以在不越狱的情况下,安装任何一款APP。 …...

如何申请中国境内提供金融信息服务业务许可
依据《外国机构在中国境内提供金融信息服务管理规定》《外国机构在中国境内提供金融信息服务申请许可说明》等政策,外国机构在中国境内提供金融信息服务业务许可要求如下: 金融信息服务定义 所称的外国机构,是指外国金融信息服务提供者。 …...

Java多线程(六)
目录 一、什么是线程安全问题 二、产生线程安全问题的原因 三、解决线程安全问题的方法 3.1 join()等待 3.2 synchronized加锁 3.3 wait()和notify() 3.4 volatile关键字 一、什么是线程安全问题 在操作系统中,线程的调度是随机的(抢占式执行࿰…...