Deconstructing Denoising Diffusion Models for Self-Supervised Learning

在这里插入图片描述


开头说点题外话:这篇可谓是大咖云集啊,刘壮、谢赛宁、何凯明这些耳熟能详的名字,并且这篇论文一些人也觉得分析特别到位,不愧是大佬视角,配得上“解构”两个字;很巧的是,本科阶段的团队导师也是去噪方向的,但是跟大师兄去干目标检测了,因为当时觉得框框非常酷炫,而且大师兄的技术素养好像比导师更靠谱一点哈哈哈,哪知目标检测蛋糕越来越小,想要有好东西甚至水论文,都得涉及交叉领域,炼丹炉还时不时炸锅,丹一次比一次烂,深有感触啊(也有可能自己太菜了);废话不多说,开始论文盛宴!


论文地址:

https://arxiv.org/abs/2401.14404.pdf


摘要

在本研究中,作者们研究了最初用于图像生成的去噪扩散模型(DDM)的表示学习能力。作者们的理念是解构DDM,逐步将其转变为经典的去噪自动编码器(DAE)。

这种解构过程使作者们能够探索现代ddm的各个组成部分如何影响自监督表征学习。

作者们观察到,只有很少的现代模块对于学习良好的表示是至关重要的,而其他许多组件则是不必要的;作者们把多余的简化,化繁为简得出了一种高度简化的方法类似于经典的DAE。


引言

去噪是当前计算机视觉等领域生成模型发展趋势的核心,涉及到的算法通常被称为去噪扩散模型(Denoising Diffusion Models, DDM),例如学习一个去噪自动编码器(Denoising Autoencoder, DAE),大概原理是去除由扩散过程驱动的多级噪声(其实就是diffusion的单个阶段原理,加噪声然后再去噪,让模型学习学会生成图像);

对于高分辨率、逼真的图像有着效果出众的图像生成质量,这些生成墨香对于理解视觉内容似乎具有很强的识别表示(凯明大佬MIT第一课就说过,深度学习就是表征/表示学习)。

DAE与DDM的内容和区别

DAE虽然是生成模型的柱石,但是最初是为了以自监督的方式从数据中学习表示而提出的;最成功的DAE变体是基于“噪声掩膜(noise mask)”,比如预测文本缺失的BERT,预测图像缺失的MAE;这些变体与加噪声还是有很大区别:掩膜是明确了未知或已知的内容,但是去除人工加的噪声是没有清晰的信号可以用(可以理解为引导);所以这是DDM和DAEs的区别,DDM基于添加的噪声,可以在不明确标记未知/已知内容的情况下学习表示;

现在DDM模型百花齐放,一些数据结果都非常漂亮,但是这些模型都是为了生成设计的,不是为了识别,所以这些模型的表示能力是去噪过程获得的还是扩散过程获得的,这是一个疑问;

关于DDM到DAE的发现

所以作者们训练一个面向识别的模型,将DDM简化为DAE,以学习表示为目标,研究DDM的每个能想到的方面;

作者们发现关键模块是一个tokenizer(标记器),这个标记器创建一个低维潜在(latent)空间,后续由发现是这个空间让DAE更加优秀而不是标记器的其他细节构造;

作者们构建l-DAE时发现(大佬就是大佬,总是能发现东西),使用单级噪声也能让l-DAE表现不错,使用多级噪声类似于数据增强,可能有用但不是关键,所以作者们就认为:DDM的表示/表征能力是由去噪驱动过程获得的,而不是扩散
在这里插入图片描述

l-DAE最终结果
  1. 高于基准算法(肯定是高的,毕竟是在基准上改)
  2. 低于对比学习的基准算法
  3. 高于基于掩膜的方法

相关工作

图像生成的方法概念上是无/自监督学习的形式,模型在没有标记数据的情况下进行训练,学习捕获输入数据的底层分布;

人们认为生成高质量的图像表面这个模型具有学习良好表示的能力,例如生成式对抗网络GAN、变分自编码器VAEs、上下文编码器、掩膜自编码器MAE等;作者们注意到,虽然DDM的生成能力表现出对图像的理解,但是不一定转化成对下游任务有用的表示;DAE基准表现的不好导致很少有关于加高斯噪声的经典DAE的工作出现;


去噪模型的背景

(这边的内容很适合不太了解去噪扩散领域的研究者,点赞)

扩散过程要用干净的数据,依次添加噪声,噪声随着时间步长变化而变化;

利用一个公式进行损失计算,对网络进行多个噪声级别的训练,一直迭代训练,直到得到干净的数据;DDM可以由两种选择,一种是原始图像作为干净数据,一种是在标记其生成的潜在空间上构建DDM,在图2b的情况下,标记器通常是一个预训练好的自编码器,如VQVAE;

(这边原论文是一大堆公式符号讲解,做笔记较困难,建议有兴趣的小伙伴看原文)。

在这里插入图片描述

扩散transformer(DIT)

作者们使用这个进行研究,出自以下原因:

  1. 基于transformer的DDM与其他基于unet的不同;
  2. 基于transformer的架构可以与更多的工作进行效果对比;
  3. DiT在编码器和解码器之间有更清晰的区分,而UNet的编码器和解码器通过跳跃连接,在评估编码器时可能需要额外的网络手术(也就是说需要自己额外加结构,增加了手工难度以及不确定性);
  4. DiT的训练速度比其他基于unet的DDMs快得多;

最终使用DiT-Large (DiT-L)作为DDM的基准,解码器和编码器涉及到的block一共24个,和ViT-L一样多;编码器是12个block,所以作者成为1/2L;

标记器Tokenizer

使用VQGAN标记器,256×256×3输入图像转换为32×32×4潜在图(latent map),其步长为8.

初始基准

在ImageNet上训练模型400epochs,分辨率为256×256像素;使用其1/2L编码器的线性探头精度为57.5%;该DiT-L型号的生成质量(FID-50K)为11.6。


解构去噪扩散模型

解构部分分为三个阶段,首先将DiT更倾向于自我监督学习,尽可能将DDM的很多设计简化成经典的DAE;

自监督学习的DDM重新定位
  1. 移除类条件反射:DDM通常在类标签上进行训练,很大程度上提高生成质量,但在自监督学习中是不合理的,所以在基准中删除类约束( class-conditioning);线性探针精度从57.5%大幅提高到62.1%,生成质量下降很多(FID从11.6到34.2),作者猜测移除类条件可以迫使模型学习更多的语义;

  2. 解构VQGAN:原标记器会使用多个损失,如自动动编码重建损失、KL-散度正则化损失、基于经过ImageNet分类训练的有监督VGG网的感知损失、带有鉴别器的对抗性损失;作者在表一删除后两个;感知损失是有监督的预训练,与现在的方案不合理,删除,线性探测精度从62.5%显著降低到58.4%;消除对抗性损失的VQGAN标记器,将线性探测精度从58.4%略微提高到59.0%(表1);至此,标记器本质上变成了VAE,并且,消除了任何一种损失都会影响生成质量;
    在这里插入图片描述

  3. 替换噪声时间表:在生成任务中,目标是逐步将噪声图转化为图像。因此,原始噪声调度在噪声非常大的图像上花费了很多时间步(图3);作者的目标不是生成,所以使用了更简单的噪声线性衰减方法,极大地提高了线性探头精度,从59.0%提高到63.4%,生成能力进一步减少至FID=93.2
    在这里插入图片描述

作者们总结,自监督学习的效果和其生成质量无关,DDM的表示能力和生成能力并不对标;

解构标记器(Tokenizer)

比较四种VAE标记器,每一种是前一种的简化;

  1. 卷积VAE:该VAE的编码器f和解码器g是深度卷积(conv)神经网络;
    在这里插入图片描述

  2. 补丁VAE:其中VAE编码器和解码器都是线性投影,并且VAE输入x是一个patch,将补丁(patch)大小设置为16×16像素;
    在这里插入图片描述

  3. 补丁AE:在VAE的基础上去掉正则化,编码器和解码器都是线性投影;
    在这里插入图片描述

  4. 基于补丁的PCA:在patch空间上执行主成分分析(PCA),可以简单地在大量随机采样的patch上通过特征分解来计算,不需要基于梯度的训练,可以通过公式证明和AE相似;
    在这里插入图片描述

在这里插入图片描述

作者还通过“每个标记”的潜在维度我们得出以下结论:

  1. 标记器的潜在维数是DDM在自监督学习中发挥作用的关键:标记器的所有四种变体都表现出类似的趋势,Conv VAE效果最差;KL正则化项是不必要的,因为AE和PCA变体表现不错;PCA标记器的表现效果出乎意料,并且作者们称这个是将DDM演变成经典DAE的关键
    在这里插入图片描述

  2. 高分辨率、基于像素的DDM不如自监督学习:使用一个“naıve标记器”对从调整大小的图像中提取的补丁进行映射,“token”是由patch的所有像素组成的平坦向量;当图像尺寸为256,patch尺寸为16 (d=768)时,线性探头精度急剧下降至23.6%;表明标记器和潜在空间对于DDM/DAE在自监督学习场景中很关键。(这边没看懂,有大佬看懂的指点一下迷津)
    在这里插入图片描述

前往经典去噪自编码器

作者们删除当前基于PCA的DDM与经典DAE的有所差距的每个模块;在下表给出了结果,以下进行讨论;
在这里插入图片描述

  1. 预测干净的数据:目前的DDM通常预测噪声λ但经典DAE预测的是干净数据,在预测干净数据(而不是噪声)的修正下,线性探针精度从65.1%下降到62.4%,虽然数值下降,但是作者们想要将模型趋向于DAE;(这边是由公式讲解的,太复杂,有兴趣的看原文);
  2. 移除输入缩放:DDMs中输入按γt的因子进行缩放,在经典DAE中并不常见。接下来,我们研究去除输入标度,即设γt≡1。γt是固定的,需要直接在σt上定义一个噪声调度,经验地将Eq.(3)中的权重设置为λt = 1/(1 + σ2 t),这再次强调了更干净的数据(更小的σt)。在确定γt≡1后,我们获得了63.6%的精度,这与变化的γt对应的62.4%相比是有利的;在作者的场景中不需要按γt缩放数据。(算法本质数学体现的淋漓尽致!respect);
  3. 用逆PCA对图像空间进行操作:作者们希望DAE可以直接在图像空间上工作,同时仍然具有良好的准确性,可以通过逆主成分分析(invPCA)来实现;通过主成分基(即V)将输入图像投影到隐空间中,在隐空间中加入噪声,并通过逆主成分基(VT)将噪声隐投影回图像空间,随后应用一个标准的ViT网络直接对图像进行操作,省略掉标记器模块。最终效果为准确率63.9%;表明用invPCA对图像空间进行处理可以获得与对潜在空间进行处理相似的结果
  4. 预测原始图像:虽然逆PCA可以在图像空间中产生预测目标,但该目标不是原始图像,因为PCA对于任何降维都是有损编码器,直接预测原始图像是一种更自然的解决方案;简单来说是其输入是带有噪声的图像,在PCA潜空间中加入噪声,其预测是原始的干净图像,精度达到64.5%;
  5. 单一噪音水平:由噪声调度给出的多层次噪声是由DDM中的扩散过程驱动的特性,在经典DAE中没有必要。我们将噪声级σ固定为常数(p 1/3),与多级噪声对应(64.5%)相比下降了3%。使用多级噪声类似于DAE中的一种数据增强形式:它是有益的,但不是促成因素。这也意味着DDM的表示能力主要是通过去噪驱动过程获得的,而不是扩散驱动过程;作者们后续保留这一个多级噪声操作。

上面的一些操作都整合在图中,这个图真的朴素但是内容丰富。
在这里插入图片描述


分析与比较

作者们将l-DAE与MAE进行一系列对比:

  1. 可视化潜在噪声:l-DAE是DAE的一种形式,它学习去除附加到潜在空间中的噪声。利用逆主成分分析可以很容易地将潜在噪声可视化(下图左是干净图像,中是高斯噪声图像,右是PCA噪声图像)。与像素噪声不同,潜在噪声在很大程度上与图像的分辨率无关。采用基于patch的PCA作为标记器,潜在噪声的模式主要由patch大小决定;作者们认为它是使用补丁而不是像素来解析图像,类似于MAE,对patch进行掩膜而不是单个像素。
    在这里插入图片描述

  2. 去噪结果:尽管存在较大的噪声,仍能产生合理的预测结果。尽管如此,可视化可以帮助我们更好地理解l-DAE如何学习良好的表示;增加到潜在空间的重噪声为模型解决一个具有挑战性的借口任务,基于局部一个或几个有噪声的斑块来预测内容是很重要的(即使对人类来说也是如此。(这一段没看懂,大概就是找补效果差,不得不说这样的说法都挺说服人接受的)
    在这里插入图片描述

  3. 数据增强:所有模型都没有数据增强:只使用图像的中心作物:没有随机调整大小或颜色抖动;作者们进一步探索了最终l-DAE的温和数据增强(随机调整大小);表明l-DAE的表示学习能力在很大程度上独立于对数据增强的依赖,MAE也是相似的结果;
    在这里插入图片描述

  4. 训练轮数:所有的实验都是基于400 epoch的训练。为了遵循MAE,研究了800和1600epoch的训练;
    在这里插入图片描述

  5. 模型大小:所有的型号都是基于DiT-L的变体,其编码器和解码器都是“ViT- 1/2L”(ViT- l的一半深度);进一步训练不同大小的模型,编码器分别为ViT-B或ViT-L(解码器始终与编码器大小相同);从VIT-b缩放到VIT-l有10.6%的增益。在MAE中VIT-b缩放到VIT-l的增益为7.8%。
    在这里插入图片描述

  6. 与以前的基线比较:作者们使用属于对比学习的MoCov3,基于掩膜的MAE,与l-DAE进行对比;与MAE相比,l-DAE表现良好,显示出1.4% (ViT-B)或0.8% (ViT-L)的退化,但是仍然比不上对比学习的MoCo;
    在这里插入图片描述


总结

l-DAE在很大程度上类似于经典DAE,可以在自监督学习中表现得很有竞争力,关键原因是加有噪声的低维潜在空间。


论文总结后面还有篇幅非常多的实验细节,笔记上就不附带了;个人在扩散模型这边也是一窍不通,所以对于这篇论文的一些概念和想法还是一知半解,就当作知识扩展吧哈哈。


结尾小废话:对于论文其实我更喜欢引言和相关工作去介绍大佬视角的各论文特点,所以关于引言会非常多,论文的实验效果我反而不太关心(神仙打架凡人望一眼的资格都没有),毕竟读论文是站在巨人的肩膀上看远处嘛。另外,今天的笔记篇幅好像也挺长的,不过谁让这篇论文是众多大佬的剖析范例呢?很多想法和思考都值得仔细学习啊哈哈哈。

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

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

相关文章

Web框架开发-Ajax

一、 Ajax准备知识:json 1、json(Javascript Obiect Notation,JS对象标记)是一种轻量级的数据交换格式 1 2 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。…

计算机组成原理-5-输入输出系统

5. 输入输出系统 文章目录 5. 输入输出系统5.1 概述5.1.1 I/O系统的发展概况5.1.2 I/O系统的组成5.1.3 I/O设备与主机的连接5.1.4 I/O设备与主机传送信息的控制方式 5.2 I/O设备5.3 I/O接口5.4 控制方式5.4.1 程序查询方式5.4.2 程序中断方式5.4.3 DMA方式5.4.4 程序中断方式与…

RabbitMQ 01

01.定义 02.功能

apifox创建接口含中文字符报错的两种解决方案

针对apifox的含中文报错解决方法: 方法一:创建相应接口后,在设置中URL自动编码为WHATING。 方法二:直接将浏览器的url复制到apifox中,浏览器会自动解析配置中文转换路径。

springboot297毕业生实习与就业管理系统的设计与实现

毕业生实习与就业管理系统 摘 要 使用旧方法对毕业生实习与就业管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在毕业生实习与就业管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数…

ADS版图优化方法---使用EM-Cosimulation对版图进行OPTIM

ADS版图优化方法—使用EM-Cosimulation对版图进行OPTIM 一般来说,对原理图进行OPTIM优化的方法大伙用的都比较6了,跑起来也非常快。但是得到版图又可能和原理图的结果差的非常大,为了优化版图又不得不重新对原理图的参数进行调谐优化&#x…

这个国产原型设计工具,建议PM新人一定要用!

Hello小伙伴们!我是榛妮,原BAT大厂女产品经理一枚,目前在香港创业。 一转眼,做产品经理已经8年,想想入行时的种种往事(尴尬情况),至今仍然历历在目。 说起刚入行时遇到的那些问题&a…

蓝桥杯物联网Lora通信功能总结

1、LORA通信在函数LORA被初始化的时候就已经处于接收状态 即开机即能接收数据 2、LORA数据的接收以及发送都通过FIFO数据线 3、LORA的收发同时进行会产生FIFO数据线的通信干扰 4、LORA_Rx在FIFO中有数据的时候才会取出数据,FIFO没有数据会直接跳过 当LORA在发送数…

服务器运行一段时间后

自己记录一下。 一、查看目录占用情况 df -h 命令查看磁盘空间 du -ah --max-depth=1 / 查看根目录下各个文件占用情况 二、mysql日志清空 这个日志是可以清空的 echo > /usr/local/mysql/data/syzl-db2.log #将文件清空 说明: 这个文件这么大是因为,开启 …

TypeScript基础类型

string、number、bolean 直接在变量后面添加即可。 let myName: string Tomfunction sayHello(person: string) {return hello, person } let user Tom let array [1, 2, 3] console.log(sayHello(user))function greet(person: string, date: Date): string {console.lo…

基于python+vue城市交通管理系统的设计与实现flask-django-php-nodejs

此系统设计主要采用的是python语言来进行开发,采用django/flask框架技术,框架分为三层,分别是控制层Controller,业务处理层Service,持久层dao,能够采用多层次管理开发,对于各个模块设计制作有一…

数学建模综合评价模型与决策方法

评价方法主要分为两类,其主要区别在确定权重的方法上 一类是主观赋权法,多次采取综合资讯评分确定权重,如综合指数法,模糊综合评判法,层次评判法,功效系数法等 另一类是客观赋权法,根据各指标…

力扣HOT100 - 15. 三数之和

解题思路: 排序 双指针 注意: 在nums[ k ],nums[ i ],nums[ j ]的值与自身重复时均会进行跳过,防止重复添加。 如代码中: 防止nums[ k ]重复:if(k>0&&nums[k]nums[k-1]) continue…

Web前端全栈HTML5通向大神之路

本套课程共三大阶段,六大部分,是WEB前端、混合开发与全栈开发必须要掌握的技能,从基础到实践,是从编程小白成长为全栈大神的最佳教程! 链接:https://pan.baidu.com/s/1S_8DCORz0N2ZCdtJg0gHsw?pwdtjyv 提取…

Java进阶—GC回收(垃圾回收)

1. 什么是垃圾回收 垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的一项重要功能,用于自动管理程序中不再使用的内存。在Java中,程序员不需要手动释放内存,因为GC会自动检测并回收不再使用的对象,从而减少内存泄…

力扣|两数相加|链表

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …

面试算法-98-随机链表的复制

题目 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节…

Git的原理和使用(四)

目录 远程操作 理解分布式版本控制系统 远程仓库 新建远程仓库 克隆远程仓库 向远程仓库推送 拉取远程仓库 配置Git 忽略特殊文件 为命令配置别名 标签管理 理解标签 创建标签 操作标签 远程操作 理解分布式版本控制系统 1、每个人的电脑上都是一个完整的版本库…

网络行为管理系统招标模板

项目名称:网络行为管理系统招标 一、项目背景 随着信息技术的迅猛发展,网络安全和数据保护已成为企业和组织面临的关键挑战。为了确保网络环境的安全、合规,并实现对网络行为的有效管理和审计,我们特此启动网络行为管理系统的招…

AI程序员革命:探析Devin的登场与编程未来

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…