【博士每天一篇文献-算法】iCaRL_ Incremental Classifier and Representation Learning

简介: 本文介绍了iCaRL算法,一种增量分类器和表示学习系统,它能够逐步从数据流中学习新概念,通过使用最近均值示例规则、基于牧羊的样本选择和知识蒸馏等方法,在CIFAR-100和ImageNet数据集上展示了其优越的逐步学习能力和对灾难性遗忘的有效抵抗。

阅读时间:2023-10-27

1 介绍

年份:2017
作者:Sylvestre-Alvise Rebuffi; Alexander Kolesnikov; Georg Sperl; Christoph H. Lampert ,牛津大学
期刊:Proceedings of the IEEE conference on Computer Vision and Pattern Recognition
引用量:2892
提出了一种名为iCaRL(增量分类器和表示学习)的学习系统的开发,它可以从数据流中随着时间学习新的概念。论文讨论了现有增量学习方法的局限性,并提出了一种训练策略,可以实现类增量学习,只需要同时存在少量类的训练数据,并且可以逐步添加新的类别。iCaRL同时学习强大的分类器和数据表示,这与以前的工作不同,以前的工作只能使用固定的数据表示,并且与深度学习架构不兼容。论文解释了iCaRL的主要组成部分,包括基于最近均值示例规则的分类、基于牧羊的优先选择例子和使用知识蒸馏和原型重演进行表示学习。对CIFAR-100和ImageNet数据集的实验证明,iCaRL可以在很长一段时间内逐步学习许多类别,而其他策略很快失败。
iCaRL(增量分类器和表示学习)是一种学习系统,通过处理数据流,可以随着时间的推移学习新的概念。iCaRL的主要组成部分包括分类器学习、样本管理和表示学习。分类器学习使用最接近均值的例子规则进行分类,样本管理使用基于聚集的方法选择重要的样本,表示学习使用知识蒸馏和原型演奏来提高性能。

2 创新点

(1)提出了一种名为iCaRL的学习系统,可以从数据流中逐步学习新概念。这种系统可以在只有少数几个类别的训练数据同时存在的情况下进行增量学习,并能够逐步添加新的类别。
(2)iCaRL同时学习强大的分类器和数据表示,这与之前的方法不同。之前的方法只能使用固定的数据表示,并且不适用于深度学习架构。
(3)iCaRL的主要组成部分包括使用最近样本均值规则进行分类、基于套牛算法的优先选择样本、使用知识蒸馏和原型回放进行表示学习等。
(4)在CIFAR-100和ImageNet数据集上的实验证明,iCaRL可以在很长时间内逐步学习许多类别,而其他策略很快失败。

3 算法

(1)使用特征提取器 φ ( ⋅ ) \varphi (\cdot) φ(⋅)对新旧数据(旧数据只取一部分)提取特征向量,并计算出各自的平均特征向量
把某一类的图像的特征向量都计算出来,然后求均值,注意本文对于旧数据,只需要计算一部分的数据的特征向量。
截屏2023-10-27 下午4.42.11.png
(2)通过最近均值分类算法(Nearest-Mean-of-Examplars) 计算出新旧数据的预测值

截屏2023-10-27 下午4.42.45.png
(3)在上面得到的预测值代入如下loss函数进行优化,最终得到模型。
image.png

4 实验结果分析

iCaRL的实现,对于iCIFAR-100,我们依赖于theano包,并训练了一个具有32层的ResNet 。
对于iILSVRC,最大样本数为K = 20000,我们使用tensorflow框架训练一个具有18层的ResNet 。
iCIFAR-100基准:使用CIFAR-100[16]数据,并以每次2、5、10、20或50个类的批次进行训练。评估指标是测试集上的标准多类准确率。由于数据集规模适中,我们使用不同的类别顺序运行了该基准测试十次,并报告结果的平均值和标准差。
iILSVRC基准:使用ImageNet ILSVRC 2012[34]数据集的两个设置:只使用100个类的子集,按照每次10个类的批次进行训练(iILSVRC-small)或使用全部1000个类,按照每次100个类的批次进行训练(iILSVRC-full)。评估指标是数据集的val部分的top-5准确率。
(1)准确率评价
截屏2023-10-27 下午3.49.27.png
iCaRL明显优于其他方法。在训练完第一批数据后固定数据表示(fixed repr.)的结果比基于蒸馏的LwF.MC差,除了iILSVRC-full。在没有防止灾难性遗忘的情况下对网络进行微调(finetuning)获得最差的结果。作为对比,使用所有可用数据训练的相同网络的多类准确率为68.6%。
(2)混淆矩阵评价
截屏2023-10-27 下午3.54.53.png
iCaRL的预测在所有类别上分布均匀,而LwF.MC倾向于更频繁地预测最近批次的类别。具有固定表示的分类器对于来自第一批次的类别有偏向性,而通过微调训练的网络仅预测来自最后一批次的类别标签。
(3)消融实验,差异性分析
从三个角度:用基于示例均值的分类规则、使用示例进行表示学习、使用蒸馏损失

  • hybrid1:以与iCaRL相同的方式学习表示,但直接使用网络的输出进行分类,而不是使用基于示例均值的分类器。
  • hybrid2:使用示例进行分类,但在训练过程中不使用蒸馏损失。
  • hybrid3:在分类和表示学习过程中都不使用蒸馏损失和示例,但在表示学习过程中使用示例。

截屏2023-10-27 下午4.07.34.png
混合设置主要在iCaRL和LwF.MC之间取得了结果,表明确实iCaRL的所有新组成部分都对其性能有所贡献。特别是与hybrid 1相比,iCaRL的比较显示基于示例均值的分类器在较小批量大小(即执行更多表示更新时)特别有优势。比较iCaRL和hybrid 2可以看出,在非常小的类别批量大小情况下,与仅使用原型相比,蒸馏甚至可能降低分类准确率。对于更大的批量大小和较少的更新次数,使用蒸馏损失显然是有优势的。最后,将hybrid 3的结果与LwF.MC进行比较清楚地显示了示例在防止灾难性遗忘方面的有效性。

5 思考

(1)蒸馏思想来源于论文【. Distilling the knowledge in a neural network】,最初提出了蒸馏方法来在不同的神经网络之间传递信息,在iCaRL中将其用于单个网络在不同时间点之间的信息传递 。
(2)本文启发于Lwf论文【. Learning without forgetting】
(3)“iCaRL会为每个类别使用m = K/t个样例(向上取整)。通过这样做,可以确保可用的K个样例的内存限额始终被充分利用,但不会超过”。这个算法思想,在GEM算法中所沿用。但具体是如何实现的,还不清楚。
(4)算法2、4、5具体的用处,还不清楚,需要结合代码理解
截屏2023-10-27 下午5.02.17.png
截屏2023-10-27 下午5.02.55.png

6 代码

https://github.com/srebuffi/iCaRL

目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 资源调度
【博士每天一篇文献-算法】连续学习算法之HAT: Overcoming catastrophic forgetting with hard attention to the task
本文介绍了一种名为Hard Attention to the Task (HAT)的连续学习算法,通过学习几乎二值的注意力向量来克服灾难性遗忘问题,同时不影响当前任务的学习,并通过实验验证了其在减少遗忘方面的有效性。
87 12
|
4月前
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
290 9
|
4月前
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之RWalk:Riemannian Walk for Incremental Learning Understanding
RWalk算法是一种增量学习框架,通过结合EWC++和修改版的Path Integral算法,并采用不同的采样策略存储先前任务的代表性子集,以量化和平衡遗忘和固执,实现在学习新任务的同时保留旧任务的知识。
100 3
|
1天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
101 80
|
20天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
26天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
6天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
13天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
22天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
13天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。