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

论文精读:TiC-CLIP: Continual Training of CLIP Models(三)

论文精读:TiC-CLIP: Continual Training of CLIP Models(三)

在这里插入图片描述

在本篇中我们将详细介绍他们的重放方法

重放方法

在本篇论文中作者一共设计了6种不同的重放方法,通过同时比较他们在ImageNet和TiC-CLIP数据集中的表现来观察其中的区别。

方法如下:

  1. Restart
    1. 从头开始训练模型,不使用之前的检查点。
    2. 在每个时间步骤使用计算预算C。
  2. Sequential
    1. 仅在新数据上训练,从上一个时间步骤的最佳检查点开始。
    2. 不使用重放缓冲区。
  3. Patching
    1. 使用Ilharco等人(2022)的顺序修补方法,从上一步的修补模型初始化,并仅在新数据上训练。
    2. 通过权重插值获得修补模型,并优化先前任务的平均检索性能来调整混合系数。
  4. Cumulative
    1. 从上一个检查点开始训练每个模型,使用计算预算C。
    2. 包括不同的重放策略,如All(重放所有以前的数据)、Exp(指数减少旧数据的数量)、Equal(平均分配缓冲区)。
  5. LwF(Learning without Forgetting)
    1. 仅在新数据上训练,并在每个批次上对上一个检查点和当前模型的图像-文本相似性矩阵之间的KL散度进行惩罚。
  6. Oracle
    1. 从头开始训练模型,使用大量的计算预算。
    2. 代表了一种成本高昂的方法,通常是训练大规模基础模型的常见实践。

其中多数方法都为先前已有方法,作者们主要针对Cumlative方法做出了改变:

Cumulative:在所有数据直到t的并集上训练每个模型,从上一个检查点初始化,计算预算为C。

与持续学习文献中常见的相比,具有更大的缓冲区

在每个过去步骤的固定缓冲区大小下,我们观察到随机抽样和其他策略之间几乎没有差异。

  • All:重放所有以前的数据。

  • Exp:重放大小为D的缓冲区,并在每个步骤中将旧数据的数量减半。例如,在第3个时间步骤,我们保留D/2, D/2的旧数据,在第4个时间步骤,我们保留D/4, D/4, D/2的旧数据。连同D数据从当前步骤,这种方法在每个步骤中最多训练2D数据。

  • Equal:重放大小为D的缓冲区,但将缓冲区平均分配给所有以前的年份。例如,在第4个步骤,我们保留D/3, D/3, D/3的旧数据。连同D数据从当前时间步骤,这种方法在每个步骤中最多训练2D数据。

    时间步骤 (t)Cumulative-All 存储占用Cumulative-Exp 存储占用Cumulative-Equal 存储占用
    1D (当前数据)D (当前数据)D (当前数据)
    22D (当前+之前数据)1.5D (当前+之前一半数据)D (当前+之前数据)
    33D (当前+之前所有数据)1.25D (当前+之前1/4之前数据)D (当前+之前数据)
    44D (当前+之前所有数据)0.625D (当前+之前1/8之前数据)D (当前+之前数据)

在这里插入图片描述

这张图表展示了在不同的基准测试(TIC-YFCC、TIC-RedCaps、TIC-DataComp)上,使用不同方法(如Restart、Sequential、Patching、Cumulative-Exp、Cumulative-Equal、Cumulative-All、LwF、Oracle)训练模型时的性能比较。这些方法在静态任务(如ImageNet分类、ImageNet分布偏移、Flickr30k检索)和动态检索任务(如Backward Transfer、ID Performance、Forward Transfer)上的表现被评估。

符号“*”和“**”表示违反计算预算的方法。对于静态任务,记录了在最终时间戳上获得的模型的准确率。对于动态任务,记录了在检索任务上的向前/向后迁移和ID性能。对于TIC-DataComp (XL),包括了使用Bestpool过滤的结果。对于所有指标,数值越高越好。

以下是图表中的关键点:

  1. 计算量(MACs):表示每种方法在训练过程中使用的计算资源量。
  2. 方法:比较了多种不同的持续学习方法,包括:
    • Restart:每次从头开始训练。
    • Sequential:顺序训练新数据。
    • Patching:在新数据上训练,使用之前的最佳检查点。
    • Cumulative-Exp:重放之前数据的指数减少。
    • Cumulative-Equal:重放之前数据的均匀分配。
    • Cumulative-All:重放所有之前的数据。
    • LwF:使用知识遗忘的正则。
    • Oracle:使用大量计算资源,每次从头开始训练。
  3. 性能比较:图表中展示了每种方法在不同任务上的性能,数值越高表示性能越好。
  4. 结果分析:从结果中可以看出,Cumulative-All方法在动态任务上接近Oracle的性能,同时计算资源显著减少。Sequential和Patching在某些任务上表现良好,但在其他任务上可能表现不佳。
  5. 规模影响:不同规模的数据集(如TIC-DataComp的M、L、L、XL)对性能有显著影响。

在这里插入图片描述

在这张图中展示了两种方法:Cumulative-All和Oracle。图表的目的是比较这两种方法在静态评估和动态评估任务上的性能。静态评估图显示了在ImageNet、ImageNet分布偏移和Flickr30k数据集上的性能。动态评估图显示了在2021-2022年数据上的检索性能。结果表明,随着计算资源的增加,两种方法的性能都有所提高,但在动态评估上,Cumulative-All方法与Oracle相比显示出性能差距。

在这里插入图片描述

这张图表是一个热图,展示了Oracle方法在不同时间步骤上的性能。热图显示了从2016年到2022年,Oracle方法在不同训练和评估时间步骤上的性能。颜色越深,表示性能越高。热图显示了Oracle方法在不同时间步骤上的性能变化,显示了随着时间的推移,Oracle方法的性能在大多数时间步骤上都有所提高。

通过这两张图表,作者得出了以下结果:

  1. 在静态评估任务上,Cumulative-All方法与Oracle方法的性能相似,但在动态评估任务上,Oracle方法的性能更好。
  2. 随着计算资源的增加,Cumulative-All方法的性能有所提高,但在动态评估上与Oracle方法相比仍有差距。
  3. Oracle方法在不同时间步骤上的性能有所提高,但不是线性增长,表明随着时间推移,性能提升有所减缓。
  4. 这些结果强调了在持续学习中,如何平衡计算资源和性能提升,以及如何选择合适的方法来适应数据分布的变化

在这里插入图片描述


http://www.mrgr.cn/news/57284.html

相关文章:

  • Linux杀毒-KVRT
  • RabbitMQ进阶_可靠性
  • Rust求解八皇后问题
  • 写一个 qq自动回话的程序
  • 【消息队列】RabbitMQ实现消费者组机制
  • wiki搭建
  • pdf表格读取和筛选
  • ArrayList 源码分析
  • 论文精读:TiC-CLIP: Continual Training of CLIP Models(二)
  • 搜维尔科技:使用CyberGlove数据手套控制机械手遥操作拿鸡蛋
  • LPDDR4/LPDDR4X讲解(一)
  • 香橙派、树莓派与Jetson的选择攻略:为您的项目找到最佳匹配
  • 【BJWC2008】王之财宝Gate Of Babylon——超详解
  • 时间同步协议有哪些?
  • 【redis】基础指令|数据结构总览|单线程架构分析
  • 为您的 Raspberry Pi 项目选择正确的实时操作系统(RTOS)
  • Java:抽象类和接口
  • Linux内核 -- `dynamic_debug` 使用指南
  • ELRS遥控器与接收机WIFI对频
  • python-----函数详解(一)
  • 组件可控个性化生成新方法MagicTailor:生成过程中可以自由地定制ID
  • libaom 编解码项目编码接口文件介绍
  • MySQL笔试面试题之AI答(2)
  • Docker 基础入门
  • 破四元!一区飞蛾扑火算法+时序卷积+双向单元+注意力机制!MFO-TCN-BiGRU-Attention多变量时间序列预测
  • MySQL优化手段有哪些