DIP: Spectral Bias of DIP 频谱偏置解释DIP

2024-02-06 19:10

本文主要是介绍DIP: Spectral Bias of DIP 频谱偏置解释DIP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

On Measuring and Controlling the Spectral Bias of the Deep Image Prior

文章目录

  • On Measuring and Controlling the Spectral Bias of the Deep Image Prior
    • 1. 方法原理
      • 1.1 动机
      • 1.2 相关概念
      • 1.3 方法原理
        • 频带一致度量与网络退化
        • 谱偏移和网络结构的关系
        • Lipschitz-controlled 卷积层
        • Gaussian-controlled 上采样层
        • 自动停止迭代过程
    • 2. 实验结果
    • 3. 总结

文章地址:https://arxiv.org/pdf/2107.01125.pdf

代码地址: https://github.com/shizenglin/Measure-and-Control-Spectral-Bias

参考博客: https://zhuanlan.zhihu.com/p/598650125


1. 方法原理

1.1 动机

动机

  • Deep Image Prior已经被广泛地应用于去噪、超分、图像恢复等
  • 但是我们尚不清楚如何在网络架构的选择之外控制DIP
  • DIP存在性能达到峰值之后退化的问题 --> 需要early stopping

贡献

  • 使用谱偏移度量和解释 DIP的原理
    • DIP学习目标图像低频分量的效率比高频分量高
  • 控制谱偏移
    • 使用Lipschitz-controlled 正则化和 Lipschitz 批归一化加速和稳定优化过程
    • 使用 上采样方法(bilinear upsampling)引入了倾向于恢复低频分量的特点(谱偏移)
    • 使用了一种简单的early stopping策略防止多余的计算

1.2 相关概念

谱偏移原则是指:神经网络拟合低频信息的效率比高频信息快

相关文章参考:

  • On the Spectral Bias of Neural Networks
  • FREQUENCY PRINCIPLE: FOURIER ANALYSIS SHEDS LIGHT ON DEEP NEURAL NETWORKS

用其中的一些图进行解释:

  • 随着迭代的进行,神经网络的输出(绿色线)首先拟合的是真实观测数据的低频,然后再去逐渐拟合高频

在这里插入图片描述


反(逆)问题根据观测结果获取真实模型的一种求解模式。具体的可以参考

  • Untrained Neural Network Priors for Inverse Imaging Problems: A Survey

注意反问题求解存在一个普遍的问题:多解性。也就是多个反演结果的合成数据都可以和观测数据匹配。通常一个减少多解性的方法就是添加约束条件(在公式中表现为正则化约束)


1.3 方法原理

频带一致度量与网络退化

  这篇文章是从频率域的角度进行谱偏移分析的,用 { θ 1 , . . . , θ T } \{\theta^{1},...,\theta^{T}\} {θ1,...,θT}表示第对应迭代次数网络的参数,用 { f θ 1 , . . . , f θ T } \{f_{\theta^{1}},...,f_{\theta^{T}}\} {fθ1,...,fθT}表示对应的网格过程。对图片频率分析需要使用傅里叶变换获得 频率域的信息,用 F ( f θ ( t ) ) F(f_{\theta^{(t)}}) F(fθ(t))表示。频谱图的表示如下:

如果对标签图片也做一次傅里叶变换,那么可以求解网络输出和这个结果的比值
H θ ( t ) = F { f θ ( t ) } F { y 0 } H_{\theta^{(t)}} = \frac{F\{f_{\theta^{(t)}}\}}{F\{y_0\}} Hθ(t)=F{y0}F{fθ(t)}

  • 这个比值越接近于1表示网络输出和标签的相关性越高
  • H图像是一个以中心对称的图像,这里为方便统计就将其分割成为多个同心圆环,求圆环中的平均值作为这个圈内的值。也就是将一个二维的度量变为了一个一维的度量
  • 文章中将频率划分为了:lowest、low、medium、high和highest五个部分

这个度量比值在DIP不同应用场景中随着迭代次数的变化

  • 随着DIP迭代次数的增加,PSNR会先达到最高然后缓慢降低(性能达到峰值之后会下降)
  • 在PSRN最高的时候(图中绿线),恰好是lowest分量的频带一致性刚好最高的时候
  • 通过下图验证了 DIP也存在谱偏移的现象:低频分量学得更快且频带一致性很高,而高频分量学习相对较慢且频带一致性较低
  • 随着高频部分的频带一致性提高,PSNR下降

谱偏移和网络结构的关系

前面有研究表示Encoder-Decoder结构的DIP效果更好,这里作者对比了三种不同结构进行测试对比(a. 没有Encoder部分的DIP; b. 没有上采样层的DIP;):

  • 不论什么结构谱偏移都存在
  • 去掉上采样层的Decoder结构(ConvNet)拟合高频的效率更高,这里表现为高频部分的频带一致性高
  • 无上采样层的ConvNet结构最大的PSNR比Decoder和DIP低

结论

  • 无训练网络UNNP可以解决逆图像问题的原因是:低频学习效率高,高频学习效率相对较慢(谱偏移)
  • 高频信息通常为为结构高频信息和噪声高频信息,当网络开始学习噪声高频信息的时候,网络恢复的性能开始下降
  • 这里通过一个类似消融实验的方法说明上采样层是可以提高PSNR的,但是这会影响低频的收敛速度

防止网络退化,平衡性能与效率的方向

  • 保证性能的前提下,使用参数量更少的 Decoder结构 替代DIP的 Encoder-Decoder结构
  • 性能退化:抑制网络对高频噪声的学习(使用上采样层)
  • 加速收敛:使用更合适的上采样层
  • 提前停止策略:自动检测?

Lipschitz-controlled 卷积层

从频率域理解卷积操作

  • 对一个时间域/空间域的变量做一个傅里叶变换其实是将作用域变换到了频率域,这样的其中一个作用是:
    • 将空间域的卷积操作 变为 频率域的乘积操作,简化计算
    • 当然对于信号处理还有更多的好处,比如FK变换可以用于滤波
  • 图像和“卷积核”的作用在频率域其实就是一个乘积过程
    • 在这里插入图片描述

卷积核具有滤波的作用,但是什么样的卷积核可以抑制高频呢?


L-Lipschitz连续
这个概念很有意思,WGAN-GP中也用到了

其定义是:如果函数f在区间Q中,以常数L Lipschitz连续,那么对于 x , y ∈ Q x,y \in Q x,yQ有:
∣ ∣ f ( x ) − f ( y ) ∣ ∣ ≤ L ∣ ∣ x − y ∣ ∣ ||f(x)- f(y)|| \leq L||x - y|| ∣∣f(x)f(y)∣∣L∣∣xy∣∣

常数L就被称为函数f在区间Q上的 Lipschitz常数。Lipschitz连续其实是限制了连续函数f的局部变动幅度不能超过某一个常量。我个人感觉一个非常更简单地理解这个概念的方法就是将稍微变动一下这个公式:
∣ ∣ f ( x ) − f ( y ) ∣ ∣ ∣ ∣ x − y ∣ ∣ ≤ L \frac{||f(x)- f(y)||}{||x - y||} \leq L ∣∣xy∣∣∣∣f(x)f(y)∣∣L
这个东西看起来就像是求导了,更多的可以参考https://blog.csdn.net/FrankieHello/article/details/105739610


结合Lipschitz和频谱分析

假设卷积层的 f f f是符合C-Lipschitz的,存在:
∣ f ^ ( k ) ∣ ≤ C ∣ k ∣ 2 ≤ ∣ ∣ w ∣ ∣ s n ∣ k ∣ 2 |\hat{f}(k)| \leq \frac{C}{|k|^2} \leq \frac{||w||_{sn}}{|k|^2} f^(k)k2Ck2∣∣wsn

  • k表示频率, ∣ f ^ ( k ) ∣ |\hat{f}(k)| f^(k)表示傅里叶系数的模(有实部和虚部)
  • 分母是 k 2 k^2 k2表示在高频的时候衰减很强,学习更高的频率需要更高的频谱范数(分子)
  • ∣ ∣ w ∣ ∣ s n ||w||_{sn} ∣∣wsn 表示卷积层参数矩阵w的谱范数,可以通过限制谱范数的上限来限制卷积层学习更高频率的能力
    • ∣ ∣ w ∣ ∣ w ∣ ∣ s n ∣ ∣ s n = 1 ||\frac{w}{||w||_{sn}}||_{sn} = 1 ∣∣∣∣wsnwsn=1, ∣ ∣ w λ ∣ ∣ w ∣ ∣ s n ∣ ∣ s n = λ ||\frac{w\lambda}{||w||_{sn}}||_{sn} = \lambda ∣∣∣∣wsnwλsn=λ
    • w m a x ( 1 , ∣ ∣ w ∣ ∣ s n / λ ) \frac{w}{max(1,||w||_{sn}/\lambda)} max(1,∣∣wsn/λ)w

注意这里我们想要达到的一个效果就是:限制最高可以学习的频率。可以选择一个合适的 λ \lambda λ在保证恢复效果的同时不去恢复噪声信号。

其他网络层对Lipschitz常数的影响


Gaussian-controlled 上采样层

插值、邻近上采样层的平滑操作会让DIP网络收敛速度变慢,但是上采样层对于抑制高频信息又有一定的作用,为了平衡二者作者引入了 gaussian-controlled上采样层。

方法就是:转置卷积 + 高斯核

  • 转置卷积可以自定义上采样的卷积核
  • 为了控制平滑程度,卷积核最简单的就是高斯核
  • 实验不同的高斯核 σ \sigma σ越小收敛越快,但是PSNR越小
自动停止迭代过程
  • 利用Lipschitz方法限制了网络学习的最高频率噪声,避免了网络的退化
  • 当高频部分到达了上界限,也就意味着网络在之前就已经收敛了
  • 怎么评估高频到达了上界限
    • r = B l u r r i n e s s S h a r p n e s s r = \frac{Blurriness}{Sharpness} r=SharpnessBlurriness
    • 即当模糊度/锐度之间的导数小于预先设置的阈值的时候,停止迭代
    • r ( f θ ) = B ( f θ ) / S ( f θ ) r(f_{\theta}) = B(f_{\theta})/S(f_{\theta}) r(fθ)=B(fθ)/S(fθ)
    • Δ r ( f θ ( t ) ) = ∣ 1 n ∑ i = 1 n r ( f θ ( t − n − i ) ) − 1 n ∑ i = 1 n r ( f θ ( t − n − i ) ) ∣ \Delta r(f_{\theta ^{(t)}}) = |\frac{1}{n}\sum_{i=1}^{n}r(f_{\theta}^{(t-n-i)}) - \frac{1}{n}\sum_{i=1}^{n}r(f_{\theta}^{(t-n-i)})| Δr(fθ(t))=n1i=1nr(fθ(tni))n1i=1nr(fθ(tni))

2. 实验结果

  • 去噪

  • Image deblockign

    • 在这里插入图片描述
  • Image Inpainting

  • 在这里插入图片描述

3. 总结

研究思路

  1. 从谱偏置方向分析DIP的工作,网络先拟合低频信息,逐渐拟合高频信息
  2. 怎么控制拟合高频信息?–> 高频截断 --> 应用Lipschitz理论控制,解决网络层退化的问题
  3. 网络训练慢怎么解决?–>分析发现常规的上采样层相当于一个低通滤波器,引入了过多的低频分量导致很多时候收敛非常慢,所以使用 gaussian 核控制的转置卷积方法 平衡网络收敛效率的问题。
  4. 怎么Early stopping 减少迭代次数? --> 使用模糊度与锐度的比值的导数进行衡量

优点

  • 将GAN 谱优化的策略放到DIP之中,在频率域中分析各个层的性质:低频收敛快,高频收敛慢。
  • 用谱偏置的思路解释了网络退化问题
  • 提出频带一致性模糊度和锐度比值梯度 平衡了DIP收敛效率和效果

改进方向

  • 就个人观点:噪声这里假设都是高频的,但是低频噪声、结构噪声是否会有影响?
  • 该研究给实际应用DIP提供了很大的可能性,但是就实验效果来看并没有提升,甚至有所下降。所以基于这种方法怎么去同时提高效果?
  • 就我个人想法:继续减少参数化网络的参数量(PIP等工作),并且提高恢复的效果(持续研究方向) 是现在的研究方向。

这篇关于DIP: Spectral Bias of DIP 频谱偏置解释DIP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685264

相关文章

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

嵌入式技术的核心技术有哪些?请详细列举并解释每项技术的主要功能和应用场景。

嵌入式技术的核心技术包括处理器技术、IC技术和设计/验证技术。 1. 处理器技术    通用处理器:这类处理器适用于不同类型的应用,其主要特征是存储程序和通用的数据路径,使其能够处理各种计算任务。例如,在智能家居中,通用处理器可以用于控制和管理家庭设备,如灯光、空调和安全系统。    单用途处理器:这些处理器执行特定程序,如JPEG编解码器,专门用于视频信息的压缩或解压。在数字相机中,单用途

请解释Java Web应用中的前后端分离是什么?它有哪些好处?什么是Java Web中的Servlet过滤器?它有什么作用?

请解释Java Web应用中的前后端分离是什么?它有哪些好处? Java Web应用中的前后端分离 在Java Web应用中,前后端分离是一种开发模式,它将传统Web开发中紧密耦合的前端(用户界面)和后端(服务器端逻辑)代码进行分离,使得它们能够独立开发、测试、部署和维护。在这种模式下,前端通常通过HTTP请求与后端进行数据交换,后端则负责业务逻辑处理、数据库交互以及向前端提供RESTful

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

OpenStack实例操作选项解释:启动和停止instance实例

关于启动和停止OpenStack实例 如果你想要启动和停止OpenStack实例时,有四种方法可以考虑。 管理员可以暂停、挂起、搁置、停止OpenStack 的计算实例。但是这些方法之间有什么不同之处? 目录 关于启动和停止OpenStack实例1.暂停和取消暂停实例2.挂起和恢复实例3.搁置(废弃)实例和取消废弃实例4.停止(删除)实例 1.暂停和取消暂停实例

Zuul详细解释

Zuul 是 Netflix 开源的 API 网关,广泛用于微服务架构中。它作为系统的前置网关,主要功能包括路由、负载均衡、限流、安全性管理等。Zuul 最常见的应用场景是作为反向代理,它接收所有来自客户端的请求,并将请求转发给后端的微服务,从而屏蔽了微服务的复杂性。Spring Cloud 集成了 Zuul,使其成为 Spring Cloud 微服务生态系统中的一个重要组件。 为什么使用 Zu

GetWay详细解释

Spring Cloud Gateway 是 Spring Cloud 提供的一款全功能 API 网关,作为微服务架构中的流量管理工具,提供了统一的入口来处理来自客户端的所有请求。它具有以下功能:路由请求、限流、熔断、监控、认证与授权等。 Spring Cloud Gateway 的设计基于 Spring 5.0 和 Spring Boot 2.0,并与 Spring WebFlux 深度集成,

rtklib.h : RTKLIB constants, types and function prototypes 解释

在 RTKLIB 中,rtklib.h 是一个头文件,包含了与 RTKLIB 相关的常量、类型和函数原型。以下是该头文件的一些常见内容和翻译说明: 1. 常量 (Constants) rtklib.h 中定义的常量通常包括: 系统常量: 例如,GPS、GLONASS、GALILEO 等系统的常量定义。 时间常量: 如一年、一天的秒数等。 精度常量: 如距离、速度的精度标准。 2. 类型

代码编译过程详细解释

代码编译过程是将源代码转化为计算机可以执行的机器代码的过程。这个过程分为几个主要阶段,每个阶段负责将源代码逐步转化为最终的可执行文件。以下是详细的编译过程解释: 1. 预处理 (Preprocessing) 功能:处理所有的预处理指令,如 #include、#define、#ifdef 等。 主要操作: 文件包含:替换 #include 指令,插入头文件的内容。宏替换:将 #define

请解释JSP中的九大内置对象及其作用。什么是Java Web中的请求转发和重定向?它们有什么区别?

请解释JSP中的九大内置对象及其作用。 JSP(JavaServer Pages)中的九大内置对象(也称为隐式对象或自动对象)是JSP容器为每个页面提供的Java对象,这些对象在JSP页面被转换成Servlet时自动可用,无需显式声明。这些对象极大地简化了JSP页面的开发,因为它们提供了对Web应用程序中常见功能的直接访问。以下是九大内置对象及其作用的详细解释: request:javax.