【数据蒸馏】静态数据蒸馏方法汇总

基于几何的方法

基于几何的方法假设在特征空间中彼此接近的数据点往往具有相似的属性。因此,基于几何的方法试图移除那些提供冗余信息的数据点,剩下的数据点形成一个核心集合S,其中jSj ≤ jTj。

Herding(聚集)

是一种基于几何的方法,它根据特征空间中核心集合的中心点与原始数据集中心点之间的距离选择数据点。该算法每次以贪婪的方式将一个样本逐步添加到核心集合中,以使两个中心点之间的距离最小化。

Herding方法的目标是构建一个代表性的数据子集,以捕捉原始数据集的基本信息。通过选择最小化与核心集合中心的距离的样本,它旨在包含最具信息量和代表性的数据点,以代表整个数据集。
Herding是基于几何的方法中的一种技术,用于数据降维或摘要。它有助于识别一个较小的数据点集合,保留原始数据集的基本特征,从而实现更高效的分析和处理,同时尽量减少信息损失。

k-Center Greedy(k-中心贪婪)

是一种解决最小最大设施选址问题(minimax facility location problem)的方法,即从完整数据集T中选择k个样本作为核心集合S,使得T中的数据点与S中最近的数据点之间的最大距离最小化
k-Center Greedy已成功应用于广泛的领域,例如主动学和高效的GAN训练。

k-Center Greedy的目标是选择一组k个样本,使得它们能够最好地代表整个数据集,并且能够满足最小最大距离的要求。算法通过贪婪地选择距离当前核心集合最远的样本,逐步构建核心集合。

k-Center Greedy算法的优势在于它的高效性和可扩展性。它可以在大规模数据集上进行快速计算,并且可以通过调整k的值来控制核心集合的大小和代表性。这使得k-Center Greedy成为许多应用中的有用工具,特别是在需要选择一小部分样本来代表整个数据集的问题中。

不确定性方法(Uncertainty Based Methods)

在模型优化中认为,置信度较低的样本可能对模型优化的影响大于置信度较高的样本,因此应该将其包含在核心集合中。下面是给定特定分类器和训练时期的常用样本不确定性度量指标,即最小置信度(Least Confidence)、熵(Entropy)和边界(Margin)[9],其中C是类别的数量。我们按照分数的降序选择样本。

在不确定性方法中,最小置信度(Least Confidence)是指分类器对某个样本所预测的最低置信度。熵(Entropy)是在多分类问题中衡量样本预测概率分布的不确定性的度量,当分类器对某个样本的预测概率分布更平坦时,熵值越大,不确定性越高。**边界(Margin)**是指分类器对两个最高概率的类别之间的差异程度,边界越大表示分类器对某个样本的预测更加确定。

根据以上不确定性度量指标,可以按照分数的降序选择样本。也就是说,将样本按照不确定性度量的分数从高到低进行排序,然后选择分数最高的样本加入核心集合。

不确定性方法在主动学习、样本选择和数据集压缩等领域具有广泛的应用。通过选择具有较高不确定性的样本,可以提高模型的鲁棒性和泛化能力,并减少对大型数据集的依赖,从而加快模型训练和预测的速度。

误差/损失方法(Error/Loss Based Methods)

在训练神经网络时,认为对误差或损失做出更大贡献的训练样本更为重要。样本的重要性可以通过每个样本的损失或梯度,或者它对其他样本预测的影响来衡量,这些样本在模型训练过程中对其他样本预测的影响。选择具有最大重要性的样本作为核心集合。

遗忘事件(Forgetting Events)是指在训练过程中发生遗忘的次数。Toneva等人计算了在当前时期中被正确分类的样本在前一个时期中被错误分类的次数,即accti > acct+1i,其中accti表示时期t中样本i的预测的正确性(True或False)。遗忘次数反映了训练数据的内在特性,可以通过删除那些无法遗忘的样本来实现性能的最小损失

通过基于误差或损失的方法选择样本,可以强调那些对模型训练产生更大影响的样本,提高模型对重要样本的关注度,从而提高模型的性能。此外,通过观察遗忘次数,可以了解训练数据的特点,并识别出对模型性能影响较小的样本,从而实现数据集的压缩或简化,减少模型训练和推断的计算负担。
重要性采样(Importance Sampling)中,我们定义s(x, y)为数据点(x, y)对总损失函数的上界贡献,也称为敏感性分数。可以通过以下公式表示:

s(x, y) = max [ ∀(x0, y0)∈T ] s(x0, y0) (5)

其中`(x, y)是具有参数Φ的非负代价函数。对于T中的每个数据点,被选择的概率被设置为p(x, y) = s(x, y) / Σs(x, y) (x, y)∈T。

核心集合S是基于这些概率构建的。类似的想法也在黑盒学习器(Black box learners)中提出,其中错误分类的样本将被加权或其采样概率将增加。通过重要性采样方法选择样本,可以更加有效地利用有限的计算资源,并提高对重要样本的关注度,从而加速模型训练和推断的过程。

基于决策边界的方法(Decision Boundary Based Methods)

由于决策边界附近的数据点很难被分离,因此最靠近决策边界的数据点也可以作为核心集合的一部分。

对抗性DeepFool(Adversarial DeepFool)

尽管无法准确获得到达决策边界的距离,但Ducoffe和Precioso在输入空间X中寻求这些距离的近似值。通过对样本进行扰动,直到样本的预测标签发生变化,那些需要最小对抗扰动的数据点最接近决策边界

对比主动学习(Contrastive Active Learning)

为了找到靠近决策边界的数据点,对比主动学习(Cal)选择预测概率与其邻居之间差异最大的样本来构建核心集合。

基于决策边界的方法通过关注决策边界附近的样本,可以捕捉到类别之间的边界区域,从而更好地表示和优化模型。这些方法可以提高模型对决策边界附近样本的关注度,从而提高模型的性能和鲁棒性。

基于梯度匹配的方法(Gradient Matching Based Methods)

通常使用(随机)梯度下降算法来训练深度模型。因此,我们期望通过完整训练数据集产生的梯度P(x, y)∈T rΦ(x, y, Φ)可以用一个子集P(x, y)∈S wΦ(x, y, Φ)的(加权)梯度来替代,且二者之间的差异最小化。

最小化目标函数:
min w, S D(
1 / |T| ∑_(x, y)∈T rΦ(x, y, Φ), 1 / |w| ∑_(x, y)∈S w rΦ(x, y, Φ))
s.t. S ⊆ T, wx ≥ 0 (6)

其中,w是子集权重向量,|w|是绝对值之和,D(·, ·)是衡量两个梯度之间距离的函数。

Craig方法(Craig)

Mirzasoleiman等人试图找到一个最优的核心集合,以在最大误差"下近似完整数据集的梯度。他们将梯度匹配问题转化为一个单调子模函数F的最大化问题,并使用贪心算法来优化F。

基于梯度匹配的方法通过近似完整数据集的梯度来选择核心集合,从而减少计算和存储的负担。这些方法可以在减少数据集规模的同时,尽可能保留与完整数据集相似的梯度信息,从而提高模型在核心集合上的训练效果。

GradMatch方法

相较于Craig方法能够在保持相同梯度匹配误差"的情况下,使用更小的子集。GradMatch引入了一个带有系数的平方l2正则化项,用于惩罚给个别样本分配较大权重。为了解决优化问题,GradMatch提出了一种贪心算法——正交匹配追踪(Orthogonal Matching Pursuit),该算法可以保证在约束条件jSj ≤ k(k为预设常数)下,达到误差1-exp(−(+kr^2_max))。

GradMatch方法通过引入正则化项和贪心算法,可以在减小子集规模的同时,保持较低的梯度匹配误差。这有助于进一步减少计算和存储需求,并提高在核心集合上的训练效果。

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

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

相关文章

[足式机器人]Part3 变分法Ch01-2 数学预备知识——【读书笔记】

本文仅供学习使用 本文参考: 《变分法基础-第三版》老大中 《变分学讲义》张恭庆 《Calculus of Variations of Optimal Control Theory》-变分法和最优控制论-Daneil Liberzon Ch01-2 数学基础-预备知识1 1.3.2 向量场的通量和散度1.3.3 高斯定理与格林公式 1.3.2 …

etcd 备份还原

etcd 备份还原 1. 查看 etcdctl 是否已经安装 # quick check if etcdctl is available or not ETCDCTL_API3 etcdctl --help | head2. 安装 etcdctl # 获取 etcd 版本信息 kubectl exec -it etcd-master -n kube-system -- /bin/sh -c ETCDCTL_API3 /usr/local/bin/etcd --v…

FPGA SPI 驱动程序

1.引言 此驱动程序已经完成很久了,花了2个星期的时间,主要是提升程序运行的效率。最近整理文件的时候又看到了,记录一下。 2.程序框架分解 module adc7254_Ctrl(input sys_clk, //system clkc 50Minput re…

react跳转页面redux数据被清除

关键代码如下,页面中有根据redux中state展示的数据,然后在组件卸载的时候会清空redux中存的数据,点击a标签可以打开新的标签页,如下代码会在打开新的标签页,组件卸载,清空redux数据,页面展示的也…

MySQL中的索引事务(1)索引----》数据库运行的原理知识+面试题~

本篇文章主要讲述MySQL索引事务 所谓的索引index就是指:目录~~ 索引存在的意义:加快查找的速度(省略了遍历的过程),但付出了一定的代价~ 付出的代价如下: 1.需要付出额外的空间代价来保存索引数据2.索引…

Nginx安装及使用

这里写目录标题 Nginx一.IO模型1.I/O模型相关概念2.网络I/O模型阻塞型I/O模型非阻塞型I/O模型多路复用 I/O 型信号驱动式 I/O模型异步I/O模型总结 二.Nginx概述三.Nginx模块四.安装及使用Nginx1.编译安装Nginx2.yum安装3.命令及信号使用4.USR1分割日志5.升级Nginx 五.配置详细解…

c#object类中方法的使用

C#中的Object类是所有类的基类,它定义了一些通用的方法和属性,可以在任何对象上使用。以下是Object类中常用的方法和属性的使用: 1.ToString():将对象转换为字符串表示形式。 string str obj.ToString();2.Equals():…

Windows下Redis的安装和配置

文章目录 一,Redis介绍二,Redis下载三,Redis安装-解压四,Redis配置五,Redis启动和关闭(通过terminal操作)六,Redis连接七,Redis使用 一,Redis介绍 远程字典服务,一个开源的,键值对形式的在线服务框架,值支持多数据结构,本文介绍windows下Redis的安装,配置相关,官网默认下载的是…

【力扣】两数相除(c/c++)

目录 题目 注意: 示例 1: 示例 2: 提示: 题目解析 题目思路 代码思路 数据处理 注意 减法函数 第一次使用的函数 问题 第二次改良后的代码 处理i的值并且返回 总代码 力扣的代码 注意 题目 给你两个整数,被除数 dividend 和…

关于Comparable、Comparator接口返回值决定顺序的问题

Comparable和Comparator接口都是实现集合中元素的比较、排序的,下面先简单介绍下他们的用法。 1. 使用示例 public class Person {private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name name;this.ag…

【UE】Texture Coordinate 材质节点

目录 一、简介 二、属性介绍 (1)参数:U平铺 (2)参数:V平铺 (3)参数:解除镜像U (4)参数:解除镜像V 三、 节点构成原理 四、初级…

基于YOLOV8模型的农作机器和行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOV8模型的农作机器和行人目标检测系统可用于日常生活中检测与定位农作机和行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…

统一网关Gateway

文章目录 概览网关的作用搭建网关断言工厂路由过滤器全局过滤器案例 过滤器执行顺序跨域问题 概览 网关的作用 搭建网关 断言工厂 路由过滤器 全局过滤器 案例 过滤器执行顺序 跨域问题

DB2 HADR+TSA运维,TSA添加资源组的命令

Tivoli System Automation(TSA)是一个高可用性集群管理软件,DB2 TSAHADR高可用方案可以实现DB2 hadr主备的自动检测切换。本文详细介绍了TSA的常用命令,如何把CDC或者DSG添加到TSA集群中,以及TSA的错误分析方法 常用命令&#xf…

论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones

论文阅读:Distortion-Free Wide-Angle Portraits on Camera Phones 今天介绍一篇谷歌 2019 年的论文,是关于广角畸变校正的。 Abstract 广角摄影,可以带来不一样的摄影体验,因为广角的 FOV 更大,所以能将更多的内容…

2006 - MySQL server has gone away

解决方法: 1、修改my.cnf配置文件 vim my.cnf 添加如下配置 wait_timeout288000 interactive_timeout 288000 max_allowed_packet100M 解释: wait_timeout:服务器关闭交互式连接前等待活动的秒数 interactive_timeout:服务器关闭…

单片机的ADC

如何理解ADC。ADC就是将模拟量转换成数字量的过程,就是转换为计算机所能存储的0和1序列,比如将模拟量转换为一个字节,所以这个字节的大小要能反应模拟量的大小,比如一个0-5V的电压测量量(外部输入电压最小0V,最大为5V&…

websocket基础

下面就以代码来进行说明 1&#xff0c;先导入websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.编写websocket相关bean管理配置 Config…

【ES6】迭代器Iterator

JavaScript中的Iterator是一种特殊对象&#xff0c;它允许我们访问并操作对象的每一个元素。Iterator对象由具有next方法的对象创建&#xff0c;next方法返回一个包含两个属性的对象&#xff1a;value和done。value属性是当前元素的值&#xff0c;done属性是一个布尔值&#xf…

Unity生命周期函数

1、Awake 当对象&#xff08;自己这个类对象&#xff0c;就是这个脚本&#xff09;被创建时 才会调用该生命周期函数 类似构造函数的存在 我们可以在一个类对象创建时进行一些初始化操作 2、OnEnable 失活激活&#xff08;这个勾&#xff09; 想要当一个对象&#xff08;游戏…