当前位置: 首页 > news >正文

IJCAI23 - Continual Learning Tutorial

前言

如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

本篇 Tutorial 主要介绍了 CL 中的一些基本概念以及一些过往的方法。


Problem Definition

Continual LearningIncremental learning 以及 Lifelong learning 属于同一概念, 其所关心的场景均为「如何在新数据持续到来的情况下更新模型?」;并且由于存储空间和隐私问题,流式数据通常不能被存储。

CL 的整体目标为最小化所有已见任务的期望损失,如下所示:

在这里插入图片描述
CL 又细分为三类( { Y t } \{\mathcal{Y}^t\} {Yt} 表示 t t t 时刻的类别标签集合, P ( Y t ) P(\mathcal{Y}^t) P(Yt) 表示类别分布, P ( X t ) P(\mathcal{X}^t) P(Xt) 表示输入数据分布):

  • Class-Incremental Learning (CIL): { Y t } ⊂ { Y t + 1 } , P ( Y t ) ≠ P ( Y t + 1 ) , P ( X t ) ≠ P ( X t + 1 ) \left\{\mathcal{Y}^t\right\} \subset\left\{\mathcal{Y}^{t+1}\right\},P\left(\mathcal{Y}^t\right) \neq P\left(\mathcal{Y}^{t+1}\right),P\left(\mathcal{X}^t\right) \neq P\left(\mathcal{X}^{t+1}\right) {Yt}{Yt+1},P(Yt)=P(Yt+1),P(Xt)=P(Xt+1)
  • Task-Incremental Learning (TIL): { Y t } ≠ { Y t + 1 } , P ( X t ) ≠ P ( X t + 1 ) \left\{\mathcal{Y}^t\right\} \neq\left\{\mathcal{Y}^{t+1}\right\},P\left(\mathcal{X}^t\right) \neq P\left(\mathcal{X}^{t+1}\right) {Yt}={Yt+1},P(Xt)=P(Xt+1),测试时任务 id ( t ) \text{id}(t) id(t) 已知
  • Domain-Incremental Learning (DIL): { Y t } = { Y t + 1 } , P ( Y t ) = P ( Y t + 1 ) , P ( X t ) ≠ P ( X t + 1 ) \left\{\mathcal{Y}^t\right\} =\left\{\mathcal{Y}^{t+1}\right\},P\left(\mathcal{Y}^t\right) =P\left(\mathcal{Y}^{t+1}\right),P\left(\mathcal{X}^t\right) \neq P\left(\mathcal{X}^{t+1}\right) {Yt}={Yt+1},P(Yt)=P(Yt+1),P(Xt)=P(Xt+1)

在这里插入图片描述

与其它相关领域的区别

Multi-task Learning:(1)同时拿到所有任务的数据;(2)离线训练
在这里插入图片描述
Transfer Learning:(1)只有两个阶段;(2)并且不关注第一阶段,即 Source 的性能
在这里插入图片描述
Meta-Learning:(1)离线训练;(2)不关心 meta-train 的性能
在这里插入图片描述


CL 的一些传统做法

具体方法分类如下:
在这里插入图片描述

Data-Centric Methods

核心思想:保存一部分先前数据,在面对新任务时,可以作为训练损失的正则项 (hosting the data to replay former knowledge when learning new, or exert regularization terms with former data)

保存一部分数据的过往方法:

  • [Welling ICML’09] 计算 Embedding 空间的类中心,选取离类中心近的样本。
  • [Rebuffi et al. CVPR’17] 每个类依次贪心选取样本,使得样本 Embedding 均值逼近类中心。
  • [Shin et al. NIPS’17] [Gao and Liu ICML’23] 使用生成式模型学习每个类的数据分布。

将先前数据作为新任务训练损失正则项的一些方法:

  • [Lopez-Paz and Ranzato NIPS’17] 训练时要求模型不仅在新任务上做好,在旧任务上也要做的比之前好;模型在新任务和旧任务上的损失梯度夹角为正。

一些可能的问题:

  • [Verwimp et al. ICCV’21] Data replay 可能会遭遇 overfitting.
  • [Wu NeurIPS’18] 生成式模型也会出现灾难性遗忘。

Model-Centric Methods

核心思想:调整网络结构,或者识别网络中的重要参数并限制其变化

  • [Kirkpatrick et al. PNAS’17] 训练新任务时,限制模型参数的变化,越重要的参数权重越高

Algorithm-Centric Methods

核心思想:设计一些训练机制避免旧模型的遗忘 (design training mechanisms to prevent the forgetting of old model)

知识蒸馏 (Knowledge Distillation) 的相关方法:

  • [Li et al. TPAMI’17] 将旧模型作为 Teacher,训练时模型不仅要做好当前任务,在过去任务上需要表现得和 Teacher 尽可能相近。

模型纠正 (Model Rectify) 的相关方法:

  • 例如「降低新类输出概率 Logit」和「降低最后一层新类的权重矩阵」。

Trends of CL

最后是 CL 近几年的整体发展趋势:
请添加图片描述


参考资料

  • IJCAI23 - Continual Learning Tutorial
  • PyCIL - A Python Toolbox for Class-Incremental Learning
http://www.lryc.cn/news/312892.html

相关文章:

  • 【YOLO v5 v7 v8 v9小目标改进】HTA:自注意力 + 通道注意力 + 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度
  • 外包干了10天,技术退步明显。。。。。
  • 如何在Win系统本地部署Jupyter Notbook交互笔记并结合内网穿透实现公网远程使用
  • 【自动化测试】之PO模式介绍及案例
  • 3D-Genome | Hi-C互作矩阵归一化指南
  • 【设计者模式】单例模式
  • Windows7缺失api-ms-win-crt-runtime-l1-1-0.dll的解决方法
  • coqui-ai/TTS 安装使用
  • Spring AOP相关注解及执行顺序
  • C++从零开始的打怪升级之路(day44)
  • [C++核心编程](七):类和对象——运算符重载*
  • 什么是MVC和MVVM
  • 物体检测-系列教程23:YOLOV5 源码解析13 (SPP层、Flatten模块、Concat模块、Classify模块)
  • 2024.3.6每日一题
  • YOLOSHOW - YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 基于 Pyside6 的图形化界面
  • sql高级
  • 更快更强,Claude 3全面超越GPT4,能归纳15万单词
  • devc++小游戏3.8.5
  • Java网络通信TCP
  • 层级锁笔记
  • 基于SpringBoot+Vue 的专家医院预约挂号系统
  • 计算机基础专升本笔记十二-Excel常用快捷键大全
  • 制作耳机壳的UV树脂和塑料材质相比优势有哪些?
  • JS(JavaScript)中如何实现,复选框checkbox多选功能
  • 直接修改zynq petalinux编译出来的rootfs.cpio.gz文件内容
  • 什么是 Golang 类型断言
  • mysql数据库root权限读写文件
  • 力扣爆刷第88天之hot100五连刷26-30
  • Ethersacn的交易数据是什么样的(2)
  • 学习Android的第二十二天