【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

news2025/2/27 8:08:10

文章目录

  • 一、文章概览
    • (一)问题的提出
    • (二)文章工作
  • 二、理论背景
    • (一)密度比估计DRE
    • (二)去噪扩散模型
  • 三、方法
    • (一)推导分类和去噪之间的关系
    • (二)组合训练方法
    • (三)一步精确的似然计算
  • 四、实验
    • (一)使用两种损失对于实现最佳分类器的重要性
    • (二)去噪结果、图像质量和负对数似然


论文:Classification Diffusion Models: Revitalizing Density Ratio Estimation

一、文章概览

(一)问题的提出

学习数据分布的重要方法:密度比估计(DRE)

  • 密度比估计训练模型以在数据样本和来自某个参考分布的样本之间进行分类。
  • 优势:基于 DRE 的模型可以直接输出任何给定输入的可能性,这是大多数生成技术所缺乏的非常理想的属性
  • 劣势:DRE 方法一直难以准确捕获图像等复杂高维数据的分布

复杂高维数据的生成建模:去噪扩散模型(DDM)

  • 优势:可以处理复杂高维数据的生成建模问题,应用于解决逆问题、图像编辑和医学数据增强
  • 劣势:评估数据样本的可能性是一项具有挑战性的任务,需要许多神经函数评估(NFE)来计算可能性 - ELBO,或使用 ODE 求解器来近似精确的可能性。

(二)文章工作

提出分类扩散模型(CDM):基于DRE的生成方法

  • 采用去噪扩散模型(DDM)的形式
  • 利用分类器来预测添加到干净信号中的噪声水平
  • 将预测添加到数据样本中的高斯白噪声水平的最佳分类器与清除这种噪声的 MMSE 降噪器之间建立了连接
    • DDMs依赖于最小均方误差(MMSE)去噪
    • DRE方法则依赖于最优分类

二、理论背景

(一)密度比估计DRE

噪声对比估计(NCE)方法:

  • 从最优二元分类器中提取未知分布 p d ( x ) p_d(x) pd(x) 和已知参考分布 p n ( x ) p_n(x) pn(x) 之间的比率,以区分 p d ( x ) p_d(x) pd(x) p n ( x ) p_n( x) pn(x)。一旦从分类器中提取出该比率,就可以将其乘以已知的 p n ( x ) p_n(x) pn(x) 以获得 p d ( x ) p_d(x) pd(x)

  • 具体来说,令 C C C表示样本 x x x的类别,其中 C C C = 1、0分别对应于 x x x 是来自 p d ( x ) p_d(x) pd(x) p n ( x ) p_n(x) pn(x)的样本的事件。从 x x x 预测 C C C 的最佳分类器输出 P ( C = 1 ∣ x ) P(C = 1|x) P(C=1∣x) P ( C = 0 ∣ x ) P(C = 0|x) P(C=0∣x)。使用贝叶斯规则可以计算密度比
    p d ( x ) p n ( x ) = P ( C = 1 ∣ x ) P ( C = 0 ∣ x ) \frac{p_d(x)}{p_n(x)}=\frac{P(C=1|x)}{P(C=0|x)} pn(x)pd(x)=P(C=0∣x)P(C=1∣x)

DRE的密度断层问题:
当目标分布 p d ( x ) p_d(x) pd(x) 和已知参考分布 p n ( x ) p_n(x) pn(x)差异显著时,传统的密度比估计(DRE)方法可能会失败。因为当训练一个分类器来区分图像和噪声时,分类器可以在不学习有关图像的有意义信息的情况下达到高精度。一旦分类器达到这一点,其权重实际上会停止更新。

TRE方法:
使用一系列列逐渐接近的分布 p x 0 ( x ) , p x 1 ( x ) , . . . , p x m ( x ) p_{x0}(x),p_{x1}(x),...,p_{xm}(x) px0(x),px1(x),...,pxm(x),其中 p x m ( x ) p_{xm}(x) pxm(x)是参考分布,而 p x 0 ( x ) p_{x0}(x) px0(x)是目标分布。中间的分布 { p x i ( x ) } i = 1 m − 1 \{p_{xi}(x)\}_{i=1}^{m-1} {pxi(x)}i=1m1不需要事先知道具体形式,只要能够从中采样即可。

  • 定义 p x i ( x ) p_{xi}(x) pxi(x) x i = α ˉ i x 0 + 1 − α ˉ i x m x_i=\sqrt{\bar{\alpha}_i}x_0+\sqrt{1-\bar{\alpha}_i}x_m xi=αˉi x0+1αˉi xm,其中 x 0 ∼ p x 0 , x m ∼ p x m x_0\sim p_{x0},x_m\sim p_{xm} x0px0,xmpxm α ˉ i \bar{\alpha}_i αˉi是一个从1逐渐减少到0的序列;
  • 利用密度比估计的原理,可以通过训练二元分类器来区分来自 p x i ( x ) p_{xi}(x) pxi(x) p x i + 1 ( x ) p_{xi+1}(x) pxi+1(x)的样本,提取每对相邻分布 p x i ( x ) / p x i + 1 ( x ) p_{xi}(x)/p_{xi+1}(x) pxi(x)/pxi+1(x)的比值;
  • 计算出目标分布和参考分布之间的比值:
    p x 0 ( x ) p x m ( x ) = p x 0 ( x ) p x 1 ( x ) ⋅ p x 1 ( x ) p x 2 ( x ) ⋅ . . . ⋅ p x m − 2 ( x ) p x m − 1 ( x ) ⋅ p x m − 1 ( x ) p x m ( x ) \frac{p_{x0}(x)}{p_{xm}(x)}=\frac{p_{x0}(x)}{p_{x1}(x)}\cdot \frac{p_{x1}(x)}{p_{x2}(x)}\cdot ... \cdot \frac{p_{xm-2}(x)}{p_{xm-1}(x)}\cdot \frac{p_{xm-1}(x)}{p_{xm}(x)} pxm(x)px0(x)=px1(x)px0(x)px2(x)px1(x)...pxm1(x)pxm2(x)pxm(x)pxm1(x)

优点:通过这种方法,TRE方法通过增加分类任务的复杂度,使得DRE方法能够有效地估计复杂的目标分布 ,而不会受到传统方法中密度断层问题的限制。

缺点:TRE方法中的每个比值 p x i ( x ) p x i + 1 ( x ) \frac{p_{xi}(x)}{p_{xi+1}(x)} pxi+1(x)pxi(x)都是从仅在分布 p x i p_{xi} pxi p x i + 1 p_{xi+1} pxi+1上训练的二元分类器中提取出来的,也就是说不同比值是从不同分布上得到的,这可能导致训练和推断时出现不匹配,因为在推断时,所有的比值都是在相同的输入x上评估的。

在这里插入图片描述

(二)去噪扩散模型

【论文精读】DDPM:Denoising Diffusion Probabilistic Models 去噪扩散概率模型

DDM作为一个最小均方误差(MMSE)去噪器,其行为受噪声水平条件影响;而CDM则作为一个分类器。对于给定的噪声图像,CDM输出一个概率向量,预测噪声水平。这个概率向量中的第 t t t 个元素表示输入图像的噪声水平对应于扩散过程中的第 t t t 个时间步的概率。CDM可以用来输出MMSE去噪后的图像,方法是根据我们在定理3.1中展示的内容,计算其输出概率向量关于输入图像的梯度。

换句话说,CDM通过输出的概率向量,可以反向推导出输入图像在不同噪声水平下的最小均方误差去噪结果。
在这里插入图片描述

三、方法

(一)推导分类和去噪之间的关系

我们首先推导出分类和去噪之间的关系,然后将其用作我们的 CDM 方法的基础。

随机向量 x t x_t xt包含了时间步 t ∈ { 1 , . . . , T } t\in \{1,...,T\} t{1,...,T},并设置0和 T + 1 T+1 T+1两个额外的时间步,分别对应干净图像和纯高斯噪声。具体地,定义 α ˉ 0 = 1 \bar{\alpha}_0=1 αˉ0=1 α ˉ T + 1 = 0 \bar{\alpha}_{T+1}=0 αˉT+1=0 。每个时刻 t t t随机向量 x t x_t xt的密度为 p x t ( x ) p_{x_t}(x) pxt(x)

分类器的输出:
文章方法的核心是训练一个分类器,接受一个噪声样本 x t x_t xt,并预测其所在的时刻 t t t。形式上,假设 t t t是一个取值在 { 0 , , 1 , . . . , T , T + 1 } \{0,,1,...,T,T+1\} {0,,1,...,T,T+1}的离散随机变量,概率质量函数为 p t ( t ) = P ( t = t ) p_t(t)=P(t=t) pt(t)=P(t=t),并且随机向量 x ~ \tilde{x} x~是在随机时刻 t t t的扩散信号,即 x ~ = x t \tilde{x}=x_t x~=xt。注意到每个 x t x_t xt的密度可以写成 p x t ( x ) = p x ~ ∣ t ( x ∣ t ) p_{x_t}(x)=p_{\tilde{x}|t}(x|t) pxt(x)=px~t(xt),根据全概率公式, x ~ \tilde{x} x~的密度为:
p x ~ ( x ) = ∑ t = 1 T + 1 p x t ( x ) p t ( t ) p_{\tilde{x}}(x)=\sum_{t=1}^{T+1}p_{x_t}(x)p_t(t) px~(x)=t=1T+1pxt(x)pt(t)

给定从 p x ~ ( x ) p_{\tilde{x}}(x) px~(x)抽样的样本 x x x,我们感兴趣的是一个分类器,输出概率向量 ( p t ∣ x ~ ( 0 ∣ x ) , p t ∣ x ~ ( 1 ∣ x ) . . . , p t ∣ x ~ ( T + 1 ∣ x ) ) (p_{t|\tilde{x}}(0|x),p_{t|\tilde{x}}(1|x)...,p_{t|\tilde{x}}(T+1|x)) (ptx~(0∣x),ptx~(1∣x)...,ptx~(T+1∣x)),其中 p t ∣ x ~ ( t ∣ x ) = P ( t = t ∣ x ~ = x ) p_{t|\tilde{x}}(t|x)=P(t=t|\tilde{x}=x) ptx~(tx)=P(t=tx~=x)

分类器的梯度就是DDM中的去噪器:
假设我们有一个去噪器,其作用是去除样本中的噪声,这个去噪器可以看作是对分类器输出的概率向量的梯度操作。通过这个梯度操作,我们可以得到每个时间步对应的去噪后的结果。公式表达为:

F ( x , t ) = log ⁡ ( p t ∣ x ~ ( T + 1 ∣ x ) ) − log ⁡ ( p t ∣ x ~ ( t ∣ x ) ) F(x,t)=\log(p_{t|\tilde{x}}(T+1|x))-\log(p_{t|\tilde{x}}(t|x)) F(x,t)=log(ptx~(T+1∣x))log(ptx~(tx)),则有:
E ( ϵ t ∣ x t = x t ) = 1 − α ˉ t ( ∇ x t F ( x t , t ) + x t ) E(\epsilon_t|x_t=x_t)=\sqrt{1-\bar{\alpha}_t}(\nabla_{x_t}F(x_t,t)+x_t) E(ϵtxt=xt)=1αˉt (xtF(xt,t)+xt)

使用标准交叉熵(CE)损失简单地训练这样的分类器会导致糟糕的结果:
因此,我们可以训练一个分类器,并根据上述公式使用其梯度作为降噪器,然后应用任何所需的采样方法(例如DDPM、DDIM等)。然而,使用标准交叉熵(CE)损失简单地训练这样的分类器会导致糟糕的结果。这是因为即使没有学习到任何时间步 t t t下正确的概率 p t ∣ x ~ ( t ∣ x ) p_{t|\tilde{x}}(t|x) ptx~(tx),分类器也可能达到较低的 CE 损失。 这种现象可以在下图中观察到,它说明了迄今为止 DRE 方法未能捕获图像等高维复杂数据的分布的原因。
在这里插入图片描述

(二)组合训练方法

为了获得任何时间步 t t t下正确的概率 p t ∣ x ~ ( t ∣ x ) p_{t|\tilde{x}}(t|x) ptx~(tx),我们建议使用一种结合了分类器输出的交叉熵损失和其梯度的均方误差的训练方法。完整训练算法如算法1所示:
在这里插入图片描述
算法 2 展示了如何使用 DDPM 采样器通过 CDM 生成样本,而类似的方法也可用于其他采样器。使用 CDM 的 DDPM 采样中的每个步骤 t 由下式给出:
x t − 1 = α t x t − 1 − α t α t ∇ x t F θ ( x t , t ) + σ t z x_{t-1}=\sqrt{\alpha_t}x_t-\frac{1-\alpha_t}{\sqrt{\alpha_t}}\nabla_{x_t}F_\theta(x_t,t)+\sigma_tz xt1=αt xtαt 1αtxtFθ(xt,t)+σtz

(三)一步精确的似然计算

为了计算给定样本的似然,DDM 需要多次评估神经网络来使用诸如证据下界(ELBO)或者基于ODE求解器来近似对数似然的方法,作为基于DRE的方法,Classifier-Defined Models(CDMs)具有显著优势。CDMs可以在单次神经网络评估(NFE)中计算精确的似然性。具体地,对于任意所需的时间步长t,CDMs可以计算与噪声图像分布 p x t p_{xt} pxt相关的精确似然性。

对于任意 t ∈ { 0 , 1 , . . , T + 1 } t\in \{0,1,..,T+1\} t{0,1,..,T+1},有:
p x t ( x ) = p t ( T + 1 ) p t ( t ) p t ∣ x ~ ( t ∣ x ) p t ∣ x ~ ( T + 1 ∣ x ) N ( x ; 0 , I ) p_{x_t}(x)=\frac{p_t(T+1)}{p_t(t)}\frac{p_{t|\tilde{x}}(t|x)}{p_{t|\tilde{x}}(T+1|x)}\mathcal{N}(x;0,\mathcal{I}) pxt(x)=pt(t)pt(T+1)ptx~(T+1∣x)ptx~(tx)N(x;0,I)

  • 第一项仅取决于预先选择的概率质量函数 p t p_t pt(在我们的实验中选择为均匀分布)
  • 第二项可以从分类器输出向量的第 t t t T + 1 T+1 T+1 个条目中获得。这意味着我们可以计算任何给定图像 x x x相对于任意噪声水平 t t t 下的噪声图像密度 p x t p_{xt} pxt 的似然性。

四、实验

(一)使用两种损失对于实现最佳分类器的重要性

使用不同损失训练的模型达到的MSE、CE和分类准确率:从表格 1 可以明显看出,仅使用CE损失时,MSE很高;而仅使用MSE损失时,CE和分类准确率则很差。一个重要的观察点是,即使在使用CE损失训练时,分类器的准确率也很低。这是使得DRE方法有效的关键前提。具体来说,为了避免密度差问题,分类问题应该足够困难,否则分类器甚至可以在没有学习到正确密度比率的情况下轻松区分类别。
在这里插入图片描述

(二)去噪结果、图像质量和负对数似然

对于图像去噪,CDM 在 MSE 方面超过了高噪声水平下预训练的 DDM,同时在较低噪声水平下实现了可比较的 MSE,如图 4 所示。这些定量结果得到了图 5 中的定性示例的证实,它展示了不同噪声水平下的图像去噪结果。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1854006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

shell的正则表达式

一、正则表达式:匹配的是文本内容(文本三剑客:grep:过滤文本内容 sed:针对文本内容进行增删改查 awk:按行取列) 二、grep:过滤 1.grep:过滤文本内容&…

基于协方差信息的Massive MIMO信道估计算法性能研究

1. 引言 随着移动互联网不断发展,人们对通信的速率和可靠性的要求越来越高[1]。目前第四代移动通信系统已经逐渐商用,研究人员开始着手研究下一代移动通信系统相关技术[2][3]。在下一代移动通信系统中要求下行速率达到10Gbps,这就要求我们使…

秋招突击——第八弹——Redis是怎么运作的

文章目录 引言正文Redis在内存中是怎么存储的面试重点 Redis是单线程还是多线程面试重点 内存满了怎么办?面试重点 持久化介绍面试重点 RDB持久化面试重点 AOF日志面试重点 总结 引言 差不多花了两天把redis给过了,早上也只背了一半,完成回去…

【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池

文章目录 1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化)1.1 服务端:双击mysql-installer-community-5.6.22.0.msi1.2 客户端:命令行输入my…

<router-view />标签的理解

< router-view />标签的理解 < router-view />用来承载当前级别下的子集路由的一个视图标签。显示当前路由级别下一级的页面。 App.vue是根组件&#xff0c;在它的标签里使用&#xff0c;而且配置好路由的情况下&#xff0c;就能在浏览器上显示子组件的效果。 如…

模拟算法讲解

模拟算法是一种基于实际情况模拟的算法&#xff0c;通过模拟现实世界中的系统或过程&#xff0c;来研究它们的性质和行为。模拟算法可以用于解决各种问题&#xff0c;包括物理模拟、经济模拟、社会模拟等。 模拟算法的基本步骤包括&#xff1a; 定义问题&#xff1a;明确需要模…

用Java获取键盘输入数的个十百位数

这段Java代码是一个简单的程序&#xff0c;用于接收用户输入的一个三位数&#xff0c;并将其分解为个位、十位和百位数字&#xff0c;然后分别打印出来。下面是代码的详细解释&#xff1a; 导入所需类库: import java.util.Scanner;&#xff1a;导入Scanner类&#xff0c;用于从…

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法,亲测有效!!!

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查线程中断 设置合理的等待时间 优化代码逻辑 使用同步…

登录安全分析报告:链家地产

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

【SpringCloud】负载均衡(Spring Cloud LoadBalancer)

负载均衡 当服务流量增大时&#xff0c;通常会采用增加机器的方式进行扩容。负载均衡就是用来在多个机器或者其他资源中&#xff0c;按照一定的规则合理分配负载。其中的实现可以分成客户端负载均衡和服务端负载均衡。 服务端负载均衡 在服务端进行负载均衡的算法分配。 比…

【CSS in Depth2精译】1.2 继承~1.3 特殊值

文章目录 1.2 继承1.3 特殊值1.3.1 inherit 关键字1.3.2 initial 关键字1.3.3 unset 关键字1.3.4 revert 关键字 1.2 继承 除了层叠&#xff0c;还有一种给元素设置样式的方式&#xff1a;继承。经常有人把层叠与继承的概念弄混淆。它们虽然有关联&#xff0c;但也应该分辨清楚…

mysql中in参数过多该如何优化

优化方式概述 未优化前 SELECT * FROM rb_product rb where sku in(1022044,1009786)方案2示例 public static void main(String[] args) {//往list里面设置3000个值List<String> list new ArrayList<>();for (int i 0; i < 3000; i) {list.add(""…

聚焦AIoT最后一公里:EasyCVR+AI视频技术在各领域的创新应用

随着5G、AI、边缘计算、物联网&#xff08;IoT&#xff09;、云计算等技术的快速发展&#xff0c;万物互联已经从概念逐渐转变为现实&#xff0c;全新的行业生态AIoT正在开启新时代。巨大的市场潜力与AI等新兴技术不断融合形成的庞大市场缺口&#xff0c;深度场景化应用落地诉求…

express+vue 在线五子棋(一)

示例 在线体验地址五子棋&#xff0c;记得一定要再拉个人才能对战 本期难点 1、完成了五子棋的布局&#xff0c;判断游戏结束 2、基本的在线对战 3、游戏配套im(这个im的实现&#xff0c;请移步在线im) 下期安排 1、每步的倒计时设置 2、黑白棋分配由玩家自定义 3、新增旁观…

YOLOv9摄像头或视频实时检测

1、下载yolov9的项目 地址&#xff1a;YOLOv9 2、使用下面代码进行检测 import torch import cv2 from models.experimental import attempt_load from utils.general import non_max_suppression, scale_boxes from utils.plots import plot_one_box# 加载预训练的YOLOv9模型…

机器人学习和研究的物质基础包含哪些内容?

为啥写这个&#xff1f; 在很多博客里面提及物质基础&#xff0c;没想到询问的也非常多&#xff0c;写一篇详细一点的。 之前的故事 不合格且失败机器人讲师个人理解的自身课程成本情况-CSDN博客 迷失自我无缘多彩世界-2024--CSDN博客 物质基础与情绪稳定的关系-CSDN博客 …

python 字符串驻留机制

偶然发现一个python字符串的现象&#xff1a; >>> a 123_abc >>> b 123_abc >>> a is b True >>> c abc#123 >>> d abc#123 >>> c is d False 这是为什么呢&#xff0c;原来它们的id不一样。 >>> id(a)…

uni-pay 2.x:一站式支付解决方案,让支付变得简单高效

一、引言 在移动互联网时代&#xff0c;支付功能已成为各类应用不可或缺的一部分。然而&#xff0c;支付功能的开发往往伴随着复杂的流程和高昂的成本&#xff0c;特别是在对接微信支付、支付宝支付等主流支付渠道时&#xff0c;前端后端的开发工作量和出错率都较高。为了简化…

TCP与UDP_三次握手_四次挥手

TCP vs UDP TCP数据 具体可以通过Cisco Packet Tracer工具查看&#xff1a; UDP数据 三次握手、四次挥手 为什么是3/4次&#xff1f;这牵扯到单工、双工通信的问题 TCP建立连接&#xff1a;表白 TCP释放连接&#xff1a;分手 TCP—建立连接—三次握手 解释&#xff1a; 首先&…

对于C++ 程序员来说,35岁魔咒是否存在?

大家常说程序员职业生涯会在35岁左右遇到所谓的“35岁魔咒”。这意味着在这个年龄段&#xff0c;程序员可能会面临就业不稳定或职业发展的挑战。对于C程序员来说&#xff0c;这个问题更加引人关注。 随着时间的推移&#xff0c;技术行业不断演进&#xff0c;新的编程语言层出不…