Is Noise Conditioning Necessary for Denoising Generative Models?论文阅读笔记

devtools/2025/3/3 21:39:49/

在这里插入图片描述

  • 很吸引人的一个标题,很吸引人的一个作者,来读一读明神的新作,讲的是怎么把去噪领域的一些有意思的思想,特别是blind denoising和noise-level estimation的思想,应用到denoising diffusion模型中,从而去掉denoising duffusion中的noise condition,也就是DDNM和DDPM中的时间步长 t,t 是用来估计噪声强度的,其实和blind denoising与noise-level estimation的噪声强度是对应的,既然blind denoising可以在无需提供噪声强度作为提示的情况下进行去噪,是不是意味着denoising generative model也不需要 t 作为输入呢。如果能做到这一点,是有好处的,比如可以使用一个统一的score function,而不需要以 t 为条件,这样在理论上更优雅一些。

  • 文章提到,尽管损失函数是以下公式:
    在这里插入图片描述
    但网络的regression target却并不是 r ( x , ϵ , t ) r(x,\epsilon,t) r(x,ϵ,t),而是一些能够将 ( x , ϵ , t ) (x,\epsilon,t) (x,ϵ,t)映射到 z z z r r r值的期望。说起来有点绕,换个说法,如果已知 z z z t t t,有没有可能得知一个唯一正确的 r r r,文章想表达的是不可能,已知 z z z t t t的情况下 r r r不唯一,那么这个损失函数并不是真正地让网络在回归拟合一个函数,这个函数不存在,网络只是在学习r的可能取值的期望。文章画了个图来表达这个不唯一性
    在这里插入图片描述

  • 那么我们可以把这个损失函数改为它的等价形式,设 r r r的期望为 R R R,那么等价形式是:
    在这里插入图片描述
    在这里插入图片描述
    而关于这个采样函数 p p p我们所知就是 z z z x x x的条件分布和 ( x , ϵ , t ) (x,\epsilon,t) (x,ϵ,t)的联合分布:
    在这里插入图片描述

  • 这个时候我们可以把 t t t去掉,假设网络并不以 t t t为输入,会变成下面的损失函数:
    在这里插入图片描述

  • 从新的 R ( z ) R(z) R(z)可以看到,如果这里的 p ( t ∣ z ) p(t|z) p(tz)是一个狄拉克delta函数,也就是说无论 t t t是一个确定值,已知 z z z就已知 t t t,那 R ( z ∣ t ) R(z|t) R(zt)就是一个确定值,可以直接当作 R ( z ) R(z) R(z),就可以直接用这里的unconditional变体代替conditional的,网络就不需要 t t t作为额外输入。

  • 那接下来的问题就是确定 p ( t ∣ z ) p(t|z) p(tz)有多接近一个狄拉克delta函数。这里就可以从noise level estimation借鉴,既然这些方法可以从带噪声的图片估计出噪声强度,那么当 z z z是一张带噪声图片时, p ( t ∣ z ) p(t|z) p(tz)就是一个concentrated distribution,这就比较接近狄拉克delta函数了。具体有多接近,要看分布的方差有多大,文中推导了以下结果:
    在这里插入图片描述
    其中 d d d是数据维度

  • 可以看到,数据维度越大,对应的方差就越小。不过这里是用简单假设推导的,实际的复杂情况可以用实验来试试:
    在这里插入图片描述

  • 接着可以分析直接用狄拉克delta代替 p ( t ∣ z ) p(t|z) p(tz),即去掉 t t t导致的误差有多大:
    -
    在这里插入图片描述
    这里 E ( z ) E(z) E(z)约等于1,大概是 R ( z ) R(z) R(z)的千分之一,因此可以去掉 t t t,误差并不会太大。不过,由于推理阶段需要迭代采样,随着采样schedule的不同,产生的积累误差也不同。具体推导在这:
    在这里插入图片描述

  • 并且,前面的分析基于的假设是网络在学习 R ( z ∣ t ) R(z|t) R(zt)和学习 R ( z ) R(z) R(z)时都能完美拟合,但实际上学习 R ( z ∣ t ) R(z|t) R(zt)和学习 R ( z ) R(z) R(z)的难度不同,网络有可能因为学习 R ( z ∣ t ) R(z|t) R(zt)更难而学习 R ( z ) R(z) R(z)更简单,导致尽管 R ( z ) R(z) R(z)存在误差,但是网络预测与 R ( z ) R(z) R(z)之间的误差更小,使得总误差相比学习 R ( z ∣ t ) R(z|t) R(zt)要更小,即学习 R ( z ) R(z) R(z)的方法可能比学习 R ( z ∣ t ) R(z|t) R(zt)具备更优秀的性能。所以接下来就是实验部分,把网络的noisie conditioning去掉,并且找到一个使得误差足够小的采样schedule。

  • 文章对DDIM等模型做了一些实验,结果是,使用 t t t通常效果会更好,但没有 t t t其实也并不影响网络的生成能力,网络仍然能正常生成图片。只是效果不如使用 t t t的模型。文章也试了几种不使用 t t t的方案,其实结果都差不多:
    在这里插入图片描述

  • 总结,很有意思的一篇工作,虽然没有提出效果更好的模型,但是从理论和实验都展示了一个结论, t t t不是必要的,期待引入一些方法,在无 t t t的denoising generative model上有更好的效果。


http://www.ppmy.cn/devtools/164289.html

相关文章

4-1.jvm的类加载

JVM的类加载机制是将字节码文件(.class)动态加载到内存,并进行验证、准备、解析和初始化的过程,最终生成可被虚拟机直接使用的类对象。: 一、类加载的五大阶段 ​加载(Loading)​​ ​任务&a…

Android双屏异显副屏实现PIP效果小窗口同步显示主屏播放画面

在KTV应用开发中一个常见的场景需求就是一台设备要接多个显示屏,其中一个主屏一般都是触摸屏,通过VGA线连接,支持手点击操作点歌切歌等。另外还会有多个副屏,一般都是电视机,通过HDMI线连接。 有一个特点就是所有电视…

2025国家护网HVV高频面试题总结来了01(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 0x1 高频面试题第一套 0x2 高频面试题第二套 0x3 高频面试题第三套 0x4 高频面试题第四套 0x5 高频面…

nio中ByteBuffer使用

创建ByteBuffer ByteBuffer buffer ByteBuffer.allocate(10);// 字符串转 bytebufferByteBuffer buffer01 Charset.defaultCharset().encode("hello world"); ByteBuffer buffer02 ByteBuffer.wrap("hello".getBytes()); ByteBuffer buffer03 Standard…

Cherry Studio + 火山引擎 构建个人AI智能知识库

🍉在信息化时代,个人知识库的构建对于提高工作效率、知识管理和信息提取尤为重要。尤其是当这些知识库能结合人工智能来智能化地整理、分类和管理数据时,效果更为显著。我最近尝试通过 Cherry Studio 和 火山引擎 来搭建个人智能知识库&#…

Spring Boot 中 RabbitMQ 的使用

目录 引入依赖 添加配置 Simple(简单模式) 生产者代码 消费者代码 ?编辑 Work Queue(工作队列) 生产者代码 消费者代码 Publish/Subscribe(发布/订阅) 生产者代码 消费者代码 Routing&#x…

【数据挖掘】NumPy

NumPy 是 Python 中一个用于进行科学计算的基础库,它提供了高效的数组操作和数学运算功能。在数据挖掘中,NumPy 被广泛应用于数据预处理、特征工程、算法实现等方面,尤其是在处理大规模数据时,因其提供的高效运算和矩阵操作的能力…

【Maven】基于IDEA进行Maven工程的创建、构建

文章目录 一、基于IDEA创建Maven工程1. 概念梳理Maven工程的GAVP2. Idea构建Maven Java SE工程3. Idea构建Maven Java Web工程3.1 创建一个maven的javase工程3.2 修改pom.xml文件打包方式3.3 设置web资源路径和web.xml路径 4. Maven工程项目结构说明 二、基于IDEA进行Maven工程…