论文笔记:iCaRL: Incremental Classifier and Representation Learning

news/2024/9/29 7:37:32 标签: 人工智能

1. Contribution

  1. 提出了一种新的训练策略,iCaRL:允许以增量方式学习:只需要同时存在一小部分类别的训练数据,新类别可以逐步添加。
  2. 同时学习分类器和数据表示:iCaRL能够同时学习强大的分类器和数据表示,这与早期的工作不同,早期工作基本上限制在固定数据表示,因此与深度学习架构不兼容。
  3. 在CIFAR-100 和ImageNet ILSVRC 2012 data 数据集上做了实验

2. Challenge/ Issues

  1. 增量学习挑战:传统的机器学习系统通常是批量训练的,这意味着所有类别在训练开始前就已知,并且所有类别的训练数据可以同时访问。然而,现实世界中,新的视觉信息是连续不断被接收的,这就要求系统能够增量地学习新类别,同时保留现有知识。
  2. 灾难性遗忘:当训练数据流包含新类别时,现有类别的分类准确度会迅速下降,这种现象称为灾难性遗忘。

3. 论文设定的scenario----class-incremental learning

随着计算机视觉领域向人工智能靠拢,很明显需要更灵活的策略来处理现实世界对象分类情况的大规模和动态特性。至少,当新类的训练数据可用时,视觉对象分类系统应该能够逐步学习新类。

  1. 它应该可以从数据流中进行训练,其中不同类别的示例在不同时间出现
  2. 它应该随时为迄今为止观察到的类别提供竞争性多类别分类器
  3. 相对于迄今为止看到的类数量,其计算要求和内存占用应该保持有限,或者至少增长非常缓慢。

4. Technical Contribution

4.1 最近均值样本分类

在这里插入图片描述

这个方法的优点:每当特征表示发生变化时,类原型就会自动改变,从而使分类器对特征表示的变化具有鲁棒性。

4.2 使用知识蒸馏和原型演练的表示学习

  1. 构建增强训练集:iCaRL 将当前可用的训练样本和存储的示例集结合起来,构建一个增强的训练集。
  2. 评估当前网络:对每个样本评估当前网络,存储所有旧类别的网络输出结果(因为网络尚未对新类别进行训练,所以不存储新类别的输出)。
  3. 更新网络参数:通过最小化损失函数来更新网络参数。损失函数包含两部分:
  • 对新类别:鼓励网络输出正确的类别(分类损失)。
  • 对旧类别:鼓励网络再现上一步中存储的输出分数(蒸馏损失)。

4.3 样本选择策略

所有类别都受到同等对待,即,当到目前为止已观察到 t 个类别且 K 是可存储的样本总数时,iCaRL 将为每个类别使用 m = K/t 样本(向上舍入)。这样就确保了 K 个样本的可用内存预算始终被充分利用,但从未超出。

在为新类别选择示例时,iCaRL 按照迭代方式逐个选择示例,直到达到目标数量 m。每一步都会从当前的训练集中选择一个样本,将其加入到该类别的示例集中。

选择过程的关键在于:每次加入的新样本应该让整个示例集的特征向量均值最接近该类别训练集中所有样本的特征向量均值。这意味着,示例集不仅仅是一个随机选择的集合,而是一个优先级列表。列表中的顺序很重要,排在前面的示例更为关键。

在这里插入图片描述


http://www.niftyadmin.cn/n/5682599.html

相关文章

grafana加载缓慢解决方案

背景 目前随着数据和图表的逐渐增多,Grafana 页面加载速度明显变慢,严重影响了用户体验,几次都有骂娘的冲动.,因此我们需要对 Grafana 进行优化,以提升加载性能。 对于速度优化,我们可以从以下方面进行入…

Scala第一天

1、 Scala 学习 在bg中创建Scala模块,导入3个org.scala-lang依赖 和 1个Java Compiler(Java 编译的插件) 、1个Scala Compiler(Scala 编译的插件) (1) java类是class定义的,scala是object定义的 def : 定义…

智能硬件语音交互接入大模型知识库的排错指引

前言 前篇讲了把大模型知识库接入到聆思CSK6大模型开发板的文章,这篇讲一下配置失败时该怎么去定位问题和解决。 阅读这篇文章前建议先看:三步把知识库接到智能语音硬件上-CSDN博客 一、排错流程顺序参考 二、云端鉴权问题处理 原因1:聆思平…

【优选算法】(第八篇)

目录 串联所有单词的⼦串(hard) 题目解析 讲解算法原理 编写代码 最⼩覆盖⼦串(hard) 题目解析 讲解算法原理 编写代码 串联所有单词的⼦串(hard) 题目解析 1.题目链接:. - 力扣&#…

docker pull报错:dial tcp: no such host

有一段时间没用docker了,今天使用docker下载镜像竟然报错,而且是莫名其妙的错误,奔走相告,避免后来者踩坑! Error response from daemon: Get "https://mirror.aliyuncs.com/v2/": dial tcp: lookup mirror…

Java - LeetCode面试经典150题(二)

哈希表 383. 赎金信 题目 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 提示…

RM服务器研究(一)

客户端默认端口是10100: MultiPort.dll BOOL sub_10001070() { UINT v0; // esi BOOL result; // eax CHAR KeyName; // [espCh] [ebp-10Ch] DWORD flOldProtect; // [esp10h] [ebp-108h] CHAR Buffer; // [esp14h] [ebp-104h] char v5; // [esp15h] [e…

英伟达Ampere架构和Hopper架构技术解析

英伟达的Ampere架构和Hopper架构技术解析 英伟达Ampere与Hopper架构,两大GPU设计里程碑,显著提升性能与能效,适应不同应用场景,引领行业革新。 Ampere架构(安培架构) Ampere架构于2020年随NVIDIA A100计算…