《Dataset Condensation with Differentiable Siamese Augmentation》
《Dataset Condensation with Differentiable Siamese Augmentation》
在本文中,我们专注于将大型训练集压缩成显著较小的合成集,这些合成集可以用于从头开始训练深度神经网络,性能下降最小。受最近的训练集合成方法的启发,我们提出了可微暹罗增强方法,它可以有效地利用数据增强来合成更具信息的合成图像,从而在使用增强方法训练网络时获得更好的性能。在多个图像分类基准上的实验表明,该方法在CIFAR10和CIFAR100数据集上取得了较先进水平的显著提高,提高了7%。结果表明,该方法在MNIST、FashionMNIST、SVHN、CIFAR10上的相对性能分别为99.6%、94.9%、88.5%、71.5%,数据量不到1%。

方法:
1. 简单介绍DC(Data Condensation)
假设我们有一个巨大的训练集 T = \mathcal{T}= T= { ( x 1 , y 1 ) , … , ( x ∣ T ∣ , y ∣ T ∣ ) } \left\{\left(\boldsymbol{x}_1, y_1\right), \ldots,\left(\boldsymbol{x}_{|\mathcal{T}|}, y_{|\mathcal{T}|}\right)\right\} {(x1,y1),…,(x∣T∣,y∣T∣)} 其中有 ∣ T ∣ |\mathcal{T}| ∣T∣ 个图片和标签对. DC (Zhao et al., 2021)目标是学习一个更小的数据集 ∣ S ∣ |\mathcal{S}| ∣S∣ 生成图片和标签对。 S = \mathcal{S}= S= { ( s 1 , y 1 ) , … , ( s ∣ S ∣ , y ∣ S ∣ ) } \left\{\left(\boldsymbol{s}_1, y_1\right), \ldots,\left(\boldsymbol{s}_{|\mathcal{S}|}, y_{|\mathcal{S}|}\right)\right\} {(s1,y1),…,(s∣S∣,y∣S∣)} 来自于(通过学习) T \mathcal{T} T 并且在数据集 S \mathcal{S} S 上训练的神经网络效果和在 T \mathcal{T} T 上训练得到的神经网络效果接近。 用 ϕ θ T \phi_{\boldsymbol{\theta}^{\mathcal{T}}} ϕθT 和 ϕ θ S \phi_{\boldsymbol{\theta}^{\mathcal{S}}} ϕθS 表示深度神经网络,其参数分别为 θ T \boldsymbol{\theta}^{\mathcal{T}} θT 和 θ S \boldsymbol{\theta}^{\mathcal{S}} θS,分别在训练集 T \mathcal{T} T 和 S \mathcal{S} S 上训练得到。DC的目标是如下方程:
E x ∼ P D [ ℓ ( ϕ θ τ ( x ) , y ) ] ≃ E x ∼ P D [ ℓ ( ϕ θ S ( x ) , y ) ] \begin{equation} \mathbb{E}_{\boldsymbol{x} \sim P_{\mathcal{D}}}\left[\ell\left(\phi_{\boldsymbol{\theta}^\tau}(\boldsymbol{x}), y\right)\right] \simeq \mathbb{E}_{\boldsymbol{x} \sim P_{\mathcal{D}}}\left[\ell\left(\phi_{\boldsymbol{\theta}^{\mathcal{S}}}(\boldsymbol{x}), y\right)\right] \end{equation} Ex∼PD[ℓ(ϕθτ(x),y)]≃Ex∼PD[ℓ(ϕθS(x),y)]
在真实数据分布 P D P_{\mathcal{D}} PD 上的损失 ℓ \ell ℓ (i.e. cross-entropy loss)。
在浓缩数据集 S \mathcal{S} S 上训练得到的模型参数要尽可能接近原始数据集的结果, i.e. θ S ≈ θ T \boldsymbol{\theta}^{\mathcal{S}} \approx \boldsymbol{\theta}^{\mathcal{T}} θS≈θT。
然后作者就开始举例DC有哪些不好的地方。
例如:
- 在每一轮都假设 θ t T \boldsymbol{\theta}^{\mathcal{T}}_t θtT 和 θ t S \boldsymbol{\theta}^{\mathcal{S}}_t θtS相等,继续训练。
- 只对一个模型进行提取。
2. DSA
方法就是在DC前面套了一层数据增强,可微的数据增强
进入正题,那么本文提出的DSA,可微暹罗增强(我也不知道为什么是暹罗)
2.1 暹罗增强
首先是暹罗增强,在图片数据中基本就是裁剪,旋转,颜色变换等
min S D ( ∇ θ L ( A ( S , ω S ) , θ t ) , ∇ θ L ( A ( T , ω T ) , θ t ) ) \min _{\mathcal{S}} D\left(\nabla_{\boldsymbol{\theta}} \mathcal{L}\left(\mathcal{A}\left(\mathcal{S}, \omega^{\mathcal{S}}\right), \boldsymbol{\theta}_t\right), \nabla_{\boldsymbol{\theta}} \mathcal{L}\left(\mathcal{A}\left(\mathcal{T}, \omega^{\mathcal{T}}\right), \boldsymbol{\theta}_t\right)\right) SminD(∇θL(A(S,ωS),θt),∇θL(A(T,ωT),θt))
此处 ω T \omega^{\mathcal{T}} ωT和 ω S \omega^{\mathcal{S}} ωS分别代表了在两个数据集上进行的数据增强参数。然后作者指出,如果使用随机分布的 ω T \omega^{\mathcal{T}} ωT和 ω S \omega^{\mathcal{S}} ωS会导致训练无法收敛,因此在文中使用的 ω T = ω S \omega^{\mathcal{T}} = \omega^{\mathcal{S}} ωT=ωS。
那么因为,浓缩数据集 S \mathcal{S} S和原始数据集 T \mathcal{T} T肯定是不一样的,那就没有一个一对一的关系,来进行同样的数据增强,那么文中的方法就是,一个batch的数据使用一样的数据增强。一个batch里 S \mathcal{S} S和 T \mathcal{T} T相互对应。
2.2 可微增强
要让这个过程可以BP训练,那么这个数据增强必须是可以微分的,即:
∂ D ( ⋅ ) ∂ S = ∂ D ( ⋅ ) ∂ ∇ θ L ( ⋅ ) ∂ ∇ θ L ( ⋅ ) ∂ A ( ⋅ ) ∂ A ( ⋅ ) ∂ S \frac{\partial D(\cdot)}{\partial \mathcal{S}}=\frac{\partial D(\cdot)}{\partial \nabla_{\boldsymbol{\theta}} \mathcal{L}(\cdot)} \frac{\partial \nabla_{\boldsymbol{\theta}} \mathcal{L}(\cdot)}{\partial \mathcal{A}(\cdot)} \frac{\partial \mathcal{A}(\cdot)}{\partial \mathcal{S}} ∂S∂D(⋅)=∂∇θL(⋅)∂D(⋅)∂A(⋅)∂∇θL(⋅)∂S∂A(⋅)

Traditionally transformations used for data augmentation are not implemented in a differentiable way, as optimizing input images is not their focus. Note that all the standard data augmentation methods for images are differentiable and can be implemented as differentiable layers.
这里是不是有点自相矛盾,传统数据增强变换实现不是可微的,但是图像上的标准数据增强方法是可微的?
2.3 训练过程

和DC基本一致,最外层训练K负责训练不同的模型初始化以增强浓缩数据集适用性,内层不断更新模型,训练T-1步,最内层是对每一个标签进行训练更新数据集。
3. 实验结果

相关文章:
《Dataset Condensation with Differentiable Siamese Augmentation》
《Dataset Condensation with Differentiable Siamese Augmentation》 在本文中,我们专注于将大型训练集压缩成显著较小的合成集,这些合成集可以用于从头开始训练深度神经网络,性能下降最小。受最近的训练集合成方法的启发,我们提…...
多普勒频率相关内容介绍
图1 多普勒效应 1、径向速度 径向速度是作用于雷达或远离雷达的速度的一部分。 图2 不同的速度 2、喷气发动机调制 JEM是涡轮机的压缩机叶片的旋转的多普勒频率。 3、多普勒困境 最大无模糊范围需要尽可能低的PRF; 最大无模糊速度需要尽可能高的PRF;…...
win10睡眠快捷方式
新建快捷方式 如下图 内容如下 rundll32.exe powrprof.dll,SetSuspendState 0,1,0 下一步 点击完成即可。 特此记录 anlog 2023年10月6日...
C++中的static和extern关键字
1 声明和定义 声明就是告诉编译器有这个东西的存在,而定义则是这个东西的实现。 对于变量来说,声明就是告诉编译器存在这个名称的变量,定义则是给这个变量分配内存并赋值: // 变量声明,声明时不能赋值,如…...
JAVA经典百题之找完数
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如61+2+3.编程找出1000以内的所有完数。 程序分析 首先,我们需要编写一个程序来找出1000以内的所有完数。"完数"是指一个数等于它的…...
CSS 滚动驱动动画 view-timeline-inset
view-timeline-inset 语法例子🌰 正 scroll-padding 为正正的 length正的 percentage 负 scroll-padding 为负负的 length负的 percentage 兼容性 view-timeline-inset 在使用 view() 时说过, 元素在滚动容器的可见性推动了 view progress timeline 的进展. 默认…...
ansible部署二进制k8s
简介 GitHub地址: https://github.com/chunxingque/ansible_install_k8s 本脚本通过ansible来快速安装和管理二进制k8s集群;支持高可用k8s集群和单机k8s集群地部署;支持不同版本k8s集群部署,一般小版本的部署脚本基本是通用的。 …...
Nginx限流熔断
一、Nginx限流熔断 Nginx 是一款流行的反向代理和负载均衡服务器,也可以用于实现服务熔断和限流。通过使用 Nginx 的限流和熔断模块,比如:ngx_http_limit_req_module 和 ngx_http_limit_conn_module,可以在代理层面对服务进行限流…...
QQ登录的具体流程
文章目录 网站授权QQ登录QQ登录的完整流程代码示例1. 添加依赖2. 配置文件3. 实现Service4. 创建Controller 网站授权QQ登录 首先需要去QQ互联申请应用填写网站的相关信息,以及回调地址,需要进行审核。申请流程暂时不说了,百度一下挺多申请失…...
用JMeter对HTTP接口进行压测(一)压测脚本的书写、调试思路
文章目录 安装JMeter和Groovy为什么选择Groovy? 压测需求以及思路准备JMeter脚本以及脚本正确性验证使用Test Script Recorder来获取整条业务线上涉及的接口为什么使用Test Script Recorder? 配置Test Script Recorder对接口进行动态化处理处理全局变量以…...
接着聊聊如何从binlog文件恢复误delete的数据,模拟Oracle的闪回功能
看腻了文章就来听听视频演示吧:https://www.bilibili.com/video/BV1cV411A7iU/ delete忘加where条件(模拟Oracle闪回) 操作基本等同于上篇:再来谈谈如何从binlog文件恢复误update的数据,模拟Oracle的回滚功能 原理&a…...
计算机竞赛 深度学习机器视觉车道线识别与检测 -自动驾驶
文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…...
pyqt5使用经验总结
pyqt5环境配置注意: 安装pyqt5 pip install PyQt5 pyqt5-tools 环境变量-创建变量名: 健名:QT_QPA_PLATFORM_PLUGIN_PATH 值为:Lib\site-packages\PyQt5\Qt\plugins pyqt5经验2: 使用designer.exe进行设计࿱…...
【MQTT】mosquitto库中SSL/TLS相关API接口
文章目录 1.相关API1.1 mosquitto_tls_set1.2 mosquitto_tls_insecure_set1.3 mosquitto_tls_opts_set1.4 mosquitto_tls_insecure_set1.5 mosquitto_tls_set_context1.6 mosquitto_tls_psk_set 2.示例代码 Mosquitto 是一个流行的 MQTT 消息代理(broker)…...
假期题目整合
1. 下载解压题目查看即可 典型的猪圈密码只需要照着输入字符解开即可得到答案 2. 冷门类型的密码题型,需要特意去找相应的解题思路,直接百度搜索天干地支解密即可 3. 一眼能出思路他已经给了篱笆墙的提示提示你是栅栏密码对应解密即可 4. 最简单的社会主…...
Redisson—分布式服务
一、 分布式远程服务(Remote Service) 基于Redis的Java分布式远程服务,可以用来通过共享接口执行存在于另一个Redisson实例里的对象方法。换句话说就是通过Redis实现了Java的远程过程调用(RPC)。分布式远程服务基于可…...
volatile使用方法
volatile使用方法 编译优化。使用等级3的话,可能将优化了一些变量。 这为什么会开启等第三呢?这是关于单片机的内存容量比较小,所以开启优化的话,可以可以省一些空间,但是如果。会出现些变量的问题,需要通过…...
提升您的 Go 应用性能的 6 种方法
优化您的 Go 应用程序 1. 如果您的应用程序在 Kubernetes 中运行,请自动设置 GOMAXPROCS 以匹配 Linux 容器的 CPU 配额 Go 调度器 可以具有与运行设备的核心数量一样多的线程。由于我们的应用程序在 Kubernetes 环境中的节点上运行,当我们的 Go 应用程…...
计算摄像技术02 - 颜色空间
一些计算摄像技术知识内容的整理:颜色视觉与感知特性、颜色空间和基于彩色滤镜阵列的彩色感知。 文章目录 一、颜色视觉与感知特性 (1)色调 (2)饱和度 (3)明度 二、颜色空间 (1&…...
Pytorch笔记之分类
文章目录 前言一、导入库二、数据处理三、构建模型四、迭代训练五、模型评估总结 前言 使用Pytorch进行MNIST分类,使用TensorDataset与DataLoader封装、加载本地数据集。 一、导入库 import numpy as np import torch from torch import nn, optim from torch.uti…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
