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

文章目录

  • 一、文章概览
    • (一)问题的提出
    • (二)文章工作
  • 二、理论背景
    • (一)密度比估计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.mzph.cn/pingmian/32730.shtml

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

相关文章

LVGL8.3动画图像(太空人)

LVGL8.3 动画图像 1. 动画图像本质 我们知道电影属于视频,而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式,也就是说动画本质是一系列照片。所以 lvgl 依照这样的思想而定义了动画图像,所以在 lvgl 中动画图像类似于普…

能理解你的意图的自动化采集工具——AI和爬虫相结合

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

浅聊Cookie

前言 在客户端使用Nuxt的useFetch调用接口并存储cookie&#xff0c;发现一些趣事~ cookie存储需要遵守同源策略~ 理论我们是知道的&#xff0c;但具体是怎么一回事呢~ 实现 在Nuxt中是这样的~ 直接访问 Nuxt <template><div>{{ data }}</div> </te…

【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

c#使用自带库对字符串进行AES加密、解密

文章目录 1 代码1.1 定义Aes加密类块1.2 在主函数中调用 2 获取Key和IV2.1 基本方法2.2 自定义Key2.3 技术方面的原理 参考文章&#xff1a; C#软件加密实例&#xff1f; 。 参考官文&#xff1a; Aes 类。 在使用C#的自带的System.Security.Cryptography.Aes模块进行加密和解…

Spdlog日志库的安装配置与源码解析(Linux)

为什么使用日志库而不是控制台输出&#xff1f; 日志库通常提供了更丰富的功能&#xff0c;比如可以设置日志输出级别、输出到不同的目标&#xff08;比如控制台、文件、网络等&#xff09;&#xff0c;以及格式化输出等。 使用日志库可以使代码更易于维护。通过统一的日志接口…

Opencv学习项目2——pytesseract

上一次我们使用pytesseract.image_to_boxes来检测字符&#xff0c;今天我们使用pytesseract.image_to_data来检测文本并显示 实战教程 和上一次一样&#xff0c;添加opencv-python和pytesseract库 首先我们先来了解一下pytesseract.image_to_data pytesseract.image_to_data(…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇入口切换SMB共享WMI管道DCOM组件Impacket套件CS插件

红队内网攻防渗透 1. 内网横向移动1.1 WMI进行横向移动1.1.1 利用条件:1.1.1 利用详情1.1.1.1 wmic1.1.1.1.1 正向shell上线1.1.1.1.2 反向shell上线1.1.1.2 cscript(不建议使用)1.1.1.3 wmiexec-impacket1.1.1.4 cs插件1.2 SMB横向移动1.2.1 利用条件:1.2.2 利用详情1.2.2…

基于YOLOv5的火灾检测系统的设计与实现(PyQT页面+YOLOv5模型+数据集)

基于YOLOv5的火灾检测系统的设计与实现 概述系统架构主要组件代码结构功能描述YOLOv5检测器视频处理器主窗口详细代码说明YOLOv5检测器类视频处理类主窗口类使用说明环境配置运行程序操作步骤检测示例图像检测视频检测实时检测数据集介绍数据集获取数据集规模YOLOv5模型介绍YOL…

对日期的处理

对日期的处理 对编码进行统一&#xff0c;在脚本最开始&#xff1a; # -*- coding: utf-8 -*-这里涉及到两个操作&#xff0c;一个是将数据进行标准化&#xff0c;比如有些日期是2024/05/06这并不符合日期的标准格式&#xff0c;需要转换成这样的2024-05-06 def tran_std(st…

java基于ssm+jsp 社区疫情防控管理信息系统

1前台首页功能模块 社区疫情防控管理信息系统&#xff0c;在社区疫情防控管理信息系统可以查看首页、物品信息、论坛信息、新闻资讯、我的、跳转到后台等内容&#xff0c;如图1所示。 图1系统首页界面图 用户登录、用户注册&#xff0c;通过注册填写账号、密码、姓名、身份证、…

正则表达式,linux文本三剑客

正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客都是针对文本内容&#xff0c;按行进行匹配 文本三剑客&#xff1a; grep 过滤文本内容 sed 针对文本内容进行增删改查 awd 按行取列 一.grep命令 作用就是使用正则表达式来匹配文本内容 -m 数字&#xff1a;匹配…

在linux系统中使用docker、mysql实例

systemctl 是一个命令行工具&#xff0c;用于控制和管理基于 systemd 的 Linux 发行版中的系统和服务。 启动服务 &#xff1a;使用 systemctl start [service-name] 开始一个服务。 如启动docker&#xff1a;systemctl start docker 停止服务 &#xff1a;使用 systemctl st…

直播预约丨《袋鼠云大数据实操指南》No.3:数据资产管理实操,如何有效进行数据治理

近年来&#xff0c;新质生产力、数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮&#xff0c;持续冲击并革新着企业数字化转型的观念视野&#xff0c;昭示着一个以数据为核心驱动力的新时代正稳步启幕。 面对这些引领经济转型的新兴概念&#xff0c;为了更好地服务于客户…

[Shell编程学习路线]——While循环应用技巧 (详细讲解)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月20日16点30分 &#x1f004;️文章质量&#xff1a;95分 目录 ————前言———— 基本结构 图示原理 示例 测试 …

链动2+1模式:解锁用户留存与复购的增长密码

大家好&#xff0c;我是吴军&#xff0c;来自一家业界领先的软件开发公司&#xff0c;专注于为用户打造卓越的产品体验。今天&#xff0c;我想与大家探讨一个在我们产品运营中取得显著成效的策略——链动21模式&#xff0c;以及它是如何助力我们提升用户留存和复购率的。 尽管链…

Android13 WMS窗口层级树

1&#xff0c;认识层级树 可以通过dumpsys activity containers 看到 WMS 层级树的结构 ACTIVITY MANAGER CONTAINERS (dumpsys activity containers) ROOT typeundefined modefullscreen override-modeundefined requested-bounds[0,0][0,0] bounds[0,0][1440,2960]#0 Displa…

中国能源统计年鉴(1986-2023年)

数据年份&#xff1a;1986-2023年&#xff0c;无1987、1988、1990三年&#xff0c;1991-2023年齐 数据格式&#xff1a;pdf、excel 数据内容&#xff1a;《中国能源统计年鉴》是一部反映中国能源建设、生产、消费、供需平衡的权威性资料书。 共分为7个篇章&#xff1a;1.综合&a…

51-52Windows密码安全性测试与Windows提权

目录 Windows密码安全性测试 一、本地管理员密码如何直接提取 1、直接通过mimikatz读取管理员密码 2、使用laZagne工具读取管理员密码 二、利用Hash远程登录系统 window提权 三、远程webshell执行命令解决 不能执行原因&#xff1a; 解决方法&#xff1a;单独上传cmd.e…

linux系统cpu飙高如何排查

1.通过top命令查看cpu占比较高的进程ID 2.通过top -H -p <进程ID>命令查看该进程中具体线程&#xff0c;可以看到第一个线程 4311 占用了88.2%的cpu 3.通过 printf "%x\n" <线程ID> 把10进制的线程id转为16进制 4.通过jstack <进程ID> | grep &…