《论文阅读:Dataset Condensation with Distribution Matching》

点进去这篇文章的开源地址,才发现这篇文章和DC DSA居然是一个作者,数据浓缩写了三篇论文,第一篇梯度匹配,第二篇数据增强后梯度匹配,第三篇匹配数据分布。DC是匹配浓缩数据和原始数据训练一次后的梯度差,DSA是在DC前加入了一层数据增强,DM直接就匹配浓缩数据和原始数据丢入模型得到的输出,匹配输出的分布。

一个github地址包含了三个数据浓缩方法的开源代码。

1. 基于分布匹配的数据集浓缩

在降低训练成本方面,最近一个很有前途的方向是数据集凝聚,其目的是在保留原始信息的情况下,用一个小得多的学习合成集取代原来的大训练集。
虽然在小集合的压缩图像上训练深度模型可以非常快,但由于复杂的双层优化和二阶导数计算,它们的合成仍然是计算昂贵的(DD,DC,DSA)。
在本工作中,我们提出了一种简单而有效的方法,通过匹配合成图像和原始训练图像在多个采样嵌入空间的特征分布来合成压缩图像。我们的方法显著降低了合成成本,同时实现了相当或更好的性能。

2. 方法

2.1 数据浓缩的问题:

现有的方法包括DD,DC和DSA等,他们的弊端在于时间复杂度太高,内层需要训练模型并更新浓缩数据集,外层还需要适应不同的 θ 0 \theta_0 θ0,实现起来需要三层循环,时间复杂度高。

2.2 分布匹配的数据浓缩

真实数据分布记为 P D P_{\mathcal{D}} PD
我们将训练数据记为 x ∈ ℜ d \boldsymbol{x} \in \Re^d xd ,并且可以被编码到一个低维空间,通过函数 ψ ϑ : ℜ d → ℜ d ′ \psi_{\vartheta}: \Re^d \rightarrow \Re^{d^{\prime}} ψϑ:dd ,其中 d ′ ≪ d d^{\prime} \ll d dd ϑ \vartheta ϑ 是函数的参数数值。 换句话说,每个embedding 函数 ψ \psi ψ可以被视为提供其输入的部分解释,而它们的组合则提供完整的解释。

现在我们可以使用常用的最大平均差异(MMD)来估计真实数据分布和合成数据分布之间的距离:
sup ⁡ ∥ ψ ϑ ∥ H ≤ 1 ( E [ ψ ϑ ( T ) ] − E [ ψ ϑ ( S ) ] ) \sup _{\left\|\psi_{\vartheta}\right\|_{\mathcal{H}} \leq 1}\left(\mathbb{E}\left[\psi_{\vartheta}(\mathcal{T})\right]-\mathbb{E}\left[\psi_{\vartheta}(\mathcal{S})\right]\right) ψϑH1sup(E[ψϑ(T)]E[ψϑ(S)])

由于我们无法获得真实数据分布,因此我们使用 MMD 的经验估计:
E ϑ ∼ P ϑ ∥ 1 ∣ T ∣ ∑ i = 1 ∣ T ∣ ψ ϑ ( x i ) − 1 ∣ S ∣ ∑ j = 1 ∣ S ∣ ψ ϑ ( s j ) ∥ 2 \mathbb{E}_{\boldsymbol{\vartheta} \sim P_{\vartheta}}\left\|\frac{1}{|\mathcal{T}|} \sum_{i=1}^{|\mathcal{T}|} \psi_{\boldsymbol{\vartheta}}\left(\boldsymbol{x}_i\right)-\frac{1}{|\mathcal{S}|} \sum_{j=1}^{|\mathcal{S}|} \psi_{\boldsymbol{\vartheta}}\left(\boldsymbol{s}_j\right)\right\|^2 EϑPϑ T1i=1Tψϑ(xi)S1j=1Sψϑ(sj) 2

就是在不同参数取值的embedding函数下,输入原始数据和浓缩数据得到的输出要尽可能接近,论文里就直接使用了神经网络的输出,让神经网络的输出尽可能接近。

因为这篇论文是DSA的后续作,所以顺其自然,沿用了DSA的方法,训练的时候对浓缩数据和原始数据都进行了相同的数据增强。
min ⁡ S E ω ∼ P ϑ ω ∼ Ω ∥ 1 ∣ T ∣ ∑ i = 1 ∣ T ∣ ψ ϑ ( A ( x i , ω ) ) − 1 ∣ S ∣ ∑ j = 1 ∣ S ∣ ψ ϑ ( A ( s j , ω ) ) ∥ 2 \min _{\mathcal{S}} \mathbb{E}_{\substack{\boldsymbol{\omega} \sim P_{\boldsymbol{\vartheta}} \\ \omega \sim \Omega}}\left\|\frac{1}{|\mathcal{T}|} \sum_{i=1}^{|\mathcal{T}|} \psi_{\boldsymbol{\vartheta}}\left(\mathcal{A}\left(\boldsymbol{x}_i, \omega\right)\right)-\frac{1}{|\mathcal{S}|} \sum_{j=1}^{|\mathcal{S}|} \psi_{\boldsymbol{\vartheta}}\left(\mathcal{A}\left(\boldsymbol{s}_j, \omega\right)\right)\right\|^2 SminEωPϑωΩ T1i=1Tψϑ(A(xi,ω))S1j=1Sψϑ(A(sj,ω)) 2
A \mathcal{A} A就是对应的数据增强操作, ω \omega ω是对应数据增强操作的参数。

2.3 训练步骤

在这里插入图片描述
训练K-1步,每一步都选定一个embedding函数的参数,不断地训练并修改S使得S输出尽可能接近原始数据集T。(这个embedding函数就是一个具体的神经网络)

3. 结果

在这里插入图片描述
由于此方法计算不需要计算梯度,只需要正向传播embedding网络,得到输出之后反向传播浓缩数据集S即可,因此可以压缩到更多数量的图片上,并且第一次在TinyImageNet这种大数据集上进行压缩。

在这里插入图片描述
比起DC和DSA,DM得到的数据分布更接近原始数据分布。

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

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

相关文章

idea怎么设置作者信息(详细)

目录 一:在Java类的开头自动注释作者名字和日期等信息 二:给Java的方法注释作者名字和日期等信息 1. 不可修改的模板:Postfix Completion 2. 可修改的模板:Live Templates tips:首先给大家推荐两款好用的免费软件&…

一文就懂大语言模型Llama2 7B+中文alpace模型本地部署

大语言模型Llama2 7B中文alpace模型本地部署 VX关注晓理紫并回复llama获取推理模型 [晓理紫] 1、Llama模型 一个由facebook发布的生成式语言模型,具体可以到其官方了解。 为了大家更好理解,这里把目录结构显示下一如下图。 2、 下载Llama并配置环境 …

Openstack部署

搭建基础环境 #网络 #防火墙 #用户用 #解析 #同步时间 实验角色 OpenStack01OpenStack02OpenStack03192.168.1.101192.168.1.102192.168.1.103srv1srv2srv3 同步时间 [rootsrv1]# yum install chrony -y [rootsrv1]# vim /etc/chrony.conf # 修改第3行,将NT…

为Mkdocs网站添加评论系统(以giscus为例)

官方文档:Adding a comment system 这里我同样推荐giscus 利用 GitHub Discussions 实现的评论系统,让访客借助 GitHub 在你的网站上留下评论和反应吧!本项目深受 utterances 的启发。 开源。🌏无跟踪,无广告&#…

灾备建设中的网络传输

对于建设灾备系统,只要是网络可达即可进行数据备份保护。灾备中用的传输方式有很多种,比如网络传输,lan-free传输,网络加密传输等。 在这里给大家介绍下网络传输,灾备中的网络传输和平时大家熟知的是一样的。是指用一…

k8s使用

一、Kubernetes好处 ​ kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 ​ kubernetes的本质…

GIS小技术分享(一):python中json数据转geojson或者shp

1.环境需求 geopandspandasshapelyjsonpython3 2.输入数据(path字段,线条) [{"id": "586A685D568311B2A16F33FCD5055F7B","name": "普及江","path": "[[116.35178835446628,23.57…

贴片电容材质的区别与电容的主要作用

一、贴片电容材质NPO、COG、X7R、X5R、Y5V、Z5U区别 主要是介质材料不同,不同介质种类由于它的主要极化类型不一样,其对电场变化的响应速度和极化率也不一样。在相同的体积下的容量就不同,随之带来的电容器介质的损耗、容量的稳定性也就不同…

【OpenCv光流法进行运动目标检测】

opencv系列文章目录 文章目录 opencv系列文章目录前言一、光流法是什么?二、光流法实例1.C的2.C版本3.python版本 总结 前言 随着计算机视觉技术的迅猛发展,运动目标检测在图像处理领域中扮演着至关重要的角色。在现实世界中,我们常常需要追…

ES相关面试问题整理

索引模板了解么 索引模板,一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。当新建一个 Elasticsearch 索引时,自动匹配模板,完成索引的基础部分搭建。 模板定义&#xf…

基于LSTM-Adaboost的电力负荷预测的MATLAB程序

微❤关注“电气仔推送”获得资料(专享优惠) 主要内容: LSTM-AdaBoost负荷预测模型先通过 AdaBoost集成算法串行训练多个基学习器并计算每个基学习 器的权重系数,接着将各个基学习器的预测结果进行线性组合,生成最终的预测结果。代码中的LST…

Grafana 10 新特性解读:体验与协作全面提升

作者:徽泠(苏墨馨) 为了庆祝 Grafana 的 10 年里程碑,Grafana Labs 推出了 Grafana 10,这个具有纪念意义的版本强调增强用户体验,使各种开发人员更容易使用。Grafana v10.0.x 为开发者与企业展示卓越的新功能、可视化与协作能力&…

虚幻引擎5:增强输入的使用方法

一、基本配置 1.创建一个输入映射上下文(映射表) 2.创建自己需要的操作映射或者轴映射 3.创建完成之后进入这个映射,来设置类型,共有4个类型 1.Digital:是旧版操作映射类型,一般是按下抬起来使用,像跳跃…

Linux实现原理 — I/O 处理流程与优化手段

Linux I/O 接口 Linux I/O 接口可以分为以下几种类型: 文件 I/O 接口:用于对文件进行读写操作的接口,包括 open()、read()、write()、close()、lseek() 等。 网络 I/O 接口:用于网络通信的接口,包括 socket()、conne…

RabbitMQ常见的交换机类型

RabbitMQ安装 pom.xml里导入相关的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> application.properties配置文件 spring.rabbitmq.hos…

Nginx - 反向代理与负载均衡

目录 一、Nginx 1.1、Nginx 下载 1.2、nginx 基础配置的认识 a&#xff09;第一部分&#xff1a;全局块 b&#xff09;第二部分&#xff1a;events 块 c&#xff09;第三部分&#xff1a;http 块 http 块中 内嵌的 server 块 1.3、一些常用配置 1.3.1、location 匹配级…

java正则表达式 及应用场景爬虫,捕获分组非捕获分组

正则表达式 通常用于校验 比如说qq号 看输入的是否符合规则就可以用这个 public class regex {public static void main(String[] args) {//正则表达式判断qq号是否正确//规则 6位及20位以内 0不能再开头 必须全是数子String qq"1234567890";System.out.println(qq…

【机器学习】sklearn特征选择(feature selection)

文章目录 特征工程过滤法&#xff08;Filter&#xff09;方差过滤相关性过滤卡方过滤F验表互信息法小结 嵌入法&#xff08;Embedded&#xff09;包装法&#xff08;Wrapper&#xff09; 特征工程 特征提取(feature extraction)特征创造(feature creation)特征选择(feature se…

【软件设计师-下午题总结】

目录 下午题之总结于学习记录&#xff1a;题一、数据流图&#xff1a;1、熟悉相关的图形2、实体名称3、数据存储4、补充缺失的数据流和起点终点5、用结构化语言描述6、描述&#xff0c;找加工逻辑的时候7、如何保持数据流平衡 题二&#xff1a;实体联系图&#xff1a;1、常用图…

Django Test

Django--Laboratory drug management and early warning system-CSDN博客 创建项目doinglms django-admin startproject doinglms python manage.py runserver 运行开发服务器(Development Server) 创建一个自定义 App,名称为 lms: python manage.py startapp lms