提速256倍,斯坦福谷歌提出扩散模型蒸馏方法,效果接近Teacher

7eff20763d7814d7d412c00605c5b0b3.jpeg

编辑 | 杜伟、陈萍
来源 | 机器之心

斯坦福大学联合谷歌大脑使用「两步蒸馏方法」提升无分类器指导的采样效率,在生成样本质量和采样速度上都有非常亮眼的表现。

去噪扩散概率模型(DDPM)在图像生成、音频合成、分子生成和似然估计领域都已经实现了 SOTA 性能。同时无分类器(classifier-free)指导进一步提升了扩散模型的样本质量,并已被广泛应用在包括 GLIDE、DALL·E 2 和 Imagen 在内的大规模扩散模型框架中。

然而,无分类器指导的一大关键局限是它的采样效率低下,需要对两个扩散模型评估数百次才能生成一个样本。这一局限阻碍了无分类指导模型在真实世界设置中的应用。尽管已经针对扩散模型提出了蒸馏方法,但目前这些方法不适用无分类器指导扩散模型。

为了解决这一问题,近日斯坦福大学和谷歌大脑的研究者在论文《On Distillation of Guided Diffusion Models》中提出使用两步蒸馏(two-step distillation)方法来提升无分类器指导的采样效率。

在第一步中,他们引入单一学生模型来匹配两个教师扩散模型的组合输出;在第二步中,他们利用提出的方法逐渐地将从第一步学得的模型蒸馏为更少步骤的模型。

利用提出的方法,单个蒸馏模型能够处理各种不同的指导强度,从而高效地对样本质量和多样性进行权衡。此外为了从他们的模型中采样,研究者考虑了文献中已有的确定性采样器,并进一步提出了随机采样过程。

c4dc0fdd9d5718b71781b541847e853e.png

论文地址:
https://arxiv.org/pdf/2210.03142.pdf

研究者在 ImageNet 64x64 和 CIFAR-10 上进行了实验,结果表明提出的蒸馏模型只需 4 步就能生成在视觉上与教师模型媲美的样本,并且在更广泛的指导强度上只需 8 到 16 步就能实现与教师模型媲美的 FID/IS 分数,具体如下图 1 所示。

41b50eba646e98d12f8ef98ef31f3ed9.png

此外,在 ImageNet 64x64 上的其他实验结果也表明了,研究者提出的框架在风格迁移应用中也表现良好。

方法介绍

接下来本文讨论了蒸馏无分类器指导扩散模型的方法( distilling a classifier-free guided diffusion model)。给定一个训练好的指导模型,即教师模型之后本文分两步完成。

第一步引入一个连续时间学生模型,该模型具有可学习参数η_1,以匹配教师模型在任意时间步 t∈[0,1] 处的输出。给定一个优化范围 [w_min, w_max],对学生模型进行优化:

2109553ee613c9eedeabf384d50fe4a4.png

其中,。为了合并指导权重 w,本文引入了一个 w - 条件模型,其中 w 作为学生模型的输入。为了更好地捕捉特征,本文还对 w 应用傅里叶嵌入。此外,由于初始化在模型性能中起着关键作用,因此本文初始化学生模型的参数与教师模型相同。

在第二步中,本文将离散时间步(discrete time-step)考虑在内,并逐步将第一步中的蒸馏模型转化为步数较短的学生模型!),其可学习参数为η_2,每次采样步数减半。设 N 为采样步数,给定 w ~ U[w_min, w_max] 和 t∈{1,…, N},然后根据 Salimans & Ho 等人提出的方法训练学生模型。在将教师模型中的 2N 步蒸馏为学生模型中的 N 步之后,之后使用 N 步学生模型作为新的教师模型,这个过程不断重复,直到将教师模型蒸馏为 N/2 步学生模型。

N 步可确定性和随机采样:一旦模型训练完成,给定一个指定的 w ∈ [w_min, w_max],然后使用 DDIM 更新规则执行采样。

实际上,本文也可以执行 N 步随机采样,使用两倍于原始步长的确定性采样步骤,然后使用原始步长向后执行一个随机步骤 。对于,当 t > 1/N 时,本文使用以下更新规则

0bca713eb1dcf25dd764bbeefb24a683.png

实验

实验评估了蒸馏方法的性能,本文主要关注模型在 ImageNet 64x64 和 CIFAR-10 上的结果。他们探索了指导权重的不同范围,并观察到所有范围都具有可比性,因此实验采用 [w_min, w_max] = [0, 4]。图 2 和表 1 报告了在 ImageNet 64x64 上所有方法的性能。

27d571d40afebe37cddd0785b6349773.pngd5ec37c749495d33486e5347e80abaa6.png

本文还进行了如下实验。具体来说,为了在两个域 A 和 B 之间执行风格迁移,本文使用在域 A 上训练的扩散模型对来自域 A 的图像进行编码,然后使用在域 B 上训练的扩散模型进行解码。由于编码过程可以理解为反向 DDIM 采样过程,本文在无分类器指导下对编码器和解码器进行蒸馏,并与下图 3 中的 DDIM 编码器和解码器进行比较。

e0602069bb5502aed9a333f595d9971b.png

本文还探讨了如何修改指导强度 w 以影响性能,如下图 4 所示。

0e6c0f388cfa4af6980850168d6ee85d.png

bf8bc974ce6bace73f15ee26ffac6eaa.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

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

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

相关文章

移动数据网络类型是nr_便携式移动网络的快速搭建方法

在用户高峰时段,常用的移动网络很容易堵塞,不堪重负。所以,关键时刻能够建立安全可靠的通信,是非常重要的。在本案例中,我用的移动通信系统是GSM协议,为了能够将GSM协议广播出去,我使用了BladeR…

程序员面试金典 - 面试题 17.19. 消失的两个数字(数学/位运算)

1. 题目 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。 你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1: 输入: [1] 输出: [2,3]示例 2: 输入: [2,3] 输出: [1,4]提示&#xff1a…

其实没事做,写写博客也不错的

以前一直很喜欢记录自己的一些事情,现在有博客这个东西了,但是懒得很,申请N多没有一个坚持记录下去的,希望在博客园可以好好安家。。今晚竟然看博客看到11.00了,要洗澡睡觉了。。明天要搞定PES、还要开会。。。事情有点…

python sorted下标_Python列表操作最全面总结

1.列表添加元素列表中可以使用append、insert、extend方法实现元素的添加。append会把新元素添加到列表末尾"a", insert(index, object) 在指定位置index前插入元素object"a", 通过extend可以将另一个集合中的元素逐一添加到列表中(合并)A [1, 2]B [3, 4…

BatchFormer:有效提升数据稀缺场景的模型泛化能力|CVPR2022

文 | 侯志知乎(已授权)源 | 极市平台摘要当前的深度神经网络尽管已经取得了巨大的成功,但仍然面临着来自于数据稀缺的各种挑战,比如数据不平衡,零样本分布,域适应等等。当前已经有各种方法通过样本之间的关…

程序员面试金典 - 面试题 16.06. 最小差(排序+双指针)

1. 题目 给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差 示例: 输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 输出: 3,即数值对…

bigdecimal 保留两位小数_一起聊聊小数的储存和运算

原创: 蜀中亮子 玄说前端 小数运算的问题在 js 中的小数运算中,一直存在着一个问题,比如:0.10.20.30000000000000004 、0.4-0.30.10000000000000003。那么为什么会出现这种情况呢?这种情况又如何解决呢?为什…

从DeepFace到AdaFace,7篇论文讲清人脸识别

人脸识别是现在应用最广泛的视觉技术之一,同时也是前沿研究热点之一。我找来了深耕人脸的朋友张老师,从DeepFace到AdaFace,讲解deepface、facenet、vggface、sphereface、cosface、adaface等论文,给各位做一次人脸识别的系统分享。…

提升方法(Boosting)

文章目录1. 提升方法AdaBoost算法2. AdaBoost算法训练误差分析3. AdaBoost算法的解释4. 提升树5. sklearn 实例提升(boosting)方法是一种常用的统计学习方法,应用广泛且有效。 在分类问题中,它通过改变训练样本的权重&#xff0c…

在两个页面之间传递信息

在asp.net不同页面之间传值的方法主要有三种:(1)用querystring方法:在vs2005中新建asp.net网站(发送端),在页面上添加button,两个TextBox,代码如下:protectedvoidButton1_Click(objectsender, EventArgs e) { string url; u…

英特尔或将大幅裁员

编辑 | David来源 | 新智元受PC业务持续不振影响,曝英特尔计划裁员数千人,可能将影响20%的员工。据知情人士透露,英特尔公司正计划大幅裁员,人数可能达到数千人,以削减成本,应对不景气的个人电脑市场的萎缩…

pandas object转float_25个Pandas实用技巧

本文一共为大家分享25个pandas技巧,此为上篇~显示已安装的版本输入下面的命令查询pandas版本:In [7]:pd.__version__Out[7]:0.24.2如果你还想知道pandas所依赖的模块的版本,你可以使用show_versions()函数:In [9]:pd.show_version…

LeetCode 820. 单词的压缩编码(后缀树)

文章目录1. 题目2. 解题2.1 反转字符串字符查找2.2 后缀树1. 题目 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。 例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其…

sql查询分页

用sql 查询时select top 10 * from Orders order by orderid desc操作时,我们先对查询结果进行ordersby排序 然后才取出其最前边10个使用sql查询分页时的几点思路(举例均从查询第100到120之间20条记录)1.取前120条记录orderby主键&#xff0c…

openstack实例状态错误_Openstack虚机操作总结

1. 概览Openstack作为常见的IAAS服务,其最核心的对象就是虚机实例,而Openstack下支持的虚机操作有很多种,有些是特别常见的虚机操作比如创建虚机、启动虚机、删除虚机等,而有些虚机操作则是针对特定场景下比如出现故障而提供的保护…

神网站PaperWithoutCode:举报无法复现的论文,让一作社死??

文 | 小戏几乎是可以肉眼可见的看到机器学习领域的论文几何级的增长,在铺天盖地的论文雪花纸片般涌来时,灌水、可复现性、工作真实的意义这些概念也伴随着 Paper 的洪水进入了人们的视野。谈及科研,我们总是站在以往研究的基础上,…

仿WINDWS无限级Ajax菜单树升级1.3版(修补了严重BUG)

仿WINDWS无限级Ajax菜单树升级1.3版(修补了严重BUG) WINDWS无限级Ajax菜单树又升级了(1.3版) 对以下BUG进行了修复 1.只能在文字上拖拽(不能从文件夹图标上拖) 2.拖拽后不刷新菜单的BUG(拖拽为子级菜单后,菜单原地不消失的情况。也…

程序员面试金典 - 面试题 08.11. 硬币(背包DP)

文章目录1. 题目2. 解题1. 题目 硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算 n 分有几种表示法。(结果可能会很大,你需要将结果模上1000000007) 示例1:输入: n 5输出:2解释: 有两种方式可以凑成总金额:…

ab的plc跟西门子哪个好些_2020滚筒洗衣机哪个牌子好?想买滚筒洗衣机的看过来!...

滚筒洗衣机哪个牌子好?想买滚筒洗衣机的人越来越多,滚筒洗衣机无疑是现在大多数年轻人更喜欢的款式,颜值高、功能多、追求个性化洗衣操作,滚筒的不伤衣物更温柔对于有真丝雪纺面料衣物的,滚筒洗衣机现在真是越来越智能…

AI开始参与政治选举了??

编 | David 好困源 | 新智元让AI去参加议会选举,能成吗?一个丹麦政党让AI聊天机器人当了领袖,试图在议会中拿下一席,现距离20000个提名的门槛线仅差19988个了。现在的AI能干的事情太多了,写作文、画画、下棋、玩游戏&a…