Life Long Learning论文阅读记录之LwF

  • 写在前面
  • 获取原文
  • 问题
  • 难点
  • 目标
  • 符号说明
  • 现有方法
    • 不使用旧数据集的方法
  • Learning without Forgetting(LwF)
    • 优点
    • 网络结构
    • 方法论
      • 训练过程
      • 损失函数
      • 算法流程
      • 与联合训练的关系
    • 实现细节
  • 实验
    • 目的
    • 数据集
    • 网络结构
    • 对比方法
    • 评价指标
    • 方法
    • 实验结果
  • 其他
  • 参考

写在前面

仅作为个人阅读论文的简单记录,可能理解有误。
PS:文中插图均源于原论文

获取原文

Learning without Forgetting,Zhizhong Li, Derek Hoiem, Member, IEEE

问题

一个已经训练好的网络,在保持旧任务能力的基础上,能学习新任务,即任务增量学习。

难点

灾难性遗忘,即在学习到新任务后,会忘记之前学过的。例如,一个网络学习到了如何区分猫狗,现在让其学习区分狮子老虎,学完之后能很好的区分狮虎了,但是区分猫狗变得困难。

目标

利用卷积神经网络分类器,针对图像分类问题,开发一种简单有效的方法克服灾难性遗忘问题

符号说明

θs\theta_sθs​:一组共享参数
θo\theta_oθo​:特定于旧任务的参数
θn\theta_nθn​:新特定于新任务的随机初始化参数

现有方法

特征提取(Feature Extraction) 微调(Fine-tuning) 微调FC(Fine-tuning FC) 联合训练(Joint Training)
结构 ——
固定 θs\theta_sθs​、θo\theta_oθo​ θo\theta_oθo​ θo\theta_oθo​、部分θs\theta_sθs​(卷积层) ——
优化 θn\theta_nθn​ θs\theta_sθs​、θn\theta_nθn​ θs\theta_sθs​(顶部的完全连接层)、θn\theta_nθn​ θs\theta_sθs​、θo\theta_oθo​和θn\theta_nθn​联合优化
备注 一层或多层的输出被用作新任务训练θn\theta_nθn​的特征 使用低学习率防止θs\theta_sθs​发生大的偏移 部分θs\theta_sθs​固定以防止过拟合 结果是文章所提方法的上界
缺点 新任务上通常性能不佳 旧任务上的性能降低 新任务性能降低 训练越来越麻烦
原因 共享参数不能表示对新任务不利的信息 共享参数发生变化,而原始特定于任务的预测参数没有新的指示 —— 新任务增加,需要之前任务的训练数据

不使用旧数据集的方法

  • A-LTM:使用较小规模数据集完成旧任务,用大规模数据集完成新任务
  • 较少遗忘学习(LFL:Less Forgetting Learning ):通过阻止共享表示的改变以保持在旧任务上的性能。认为特定于任务的决策层不应该改变,并保持旧任务最后一层不变。
  • LwF:使用大规模数据集完成旧任务,用较小规模数据集完成新任务;不鼓励旧任务的输出改变,并联合优化共享表示和最后一层。

Learning without Forgetting(LwF)

优点

  1. 性能好:LwF > Feature Extraction
  2. 效率高:Joint Training > LwF >Fine-tuning >Feature Extraction
  3. 部署简单:学到任务后,不需要保留或重新使用训练数据来保持性能

网络结构

方法论

训练过程

  • 记旧任务(由 θs\theta_sθs​ 和 θo\theta_oθo​ 定义)的原始输出网络对每个新任务的图像的响应为 yoy_oyo​(“伪标签”) 。实验考虑的是分类任务,故 yoy_oyo​ 是每个训练图像标签概率的集合。将每个新类的节点添加到输出层,全连接到下一层,随机初始化权值 θn\theta_nθn​ 。新参数的数量 = 新类的数量 × 最后一个共享层节点数
  • 使用随机梯度下降法训练,以最小化所有任务和正则项 R\mathcal RR 的损失,R\mathcal RR 是0.0005的简单权值衰减
  • 训练
  • warm-up step: 固定 θs\theta_sθs​ 和 θo\theta_oθo​ ,训练 θn\theta_nθn​ 达到收敛
  • joint-optimize step: 联合训练 θs\theta_sθs​ 、θo\theta_oθo​ 和 θn\theta_nθn​ 直至收敛

损失函数

  • 对新任务,使用多项logistic损失,鼓励预测值与真实值保持一致。此处省略了正则项 R\mathcal RR,对单个样本表示损失函数: Lnew(yn,y^n)=−yn⋅logy^n\mathcal L _{new}(y_n,\hat y _n) = -y_n \cdot log\hat y _nLnew​(yn​,y^​n​)=−yn​⋅logy^​n​其中 yny_nyn​ 表示数据的真实标签(one-hot ground truth label vector), y^n\hat y _ny^​n​ 表示新数据在网络上的Softmax 输出(Softmax output of network)。在训练中,对所有样本的总损失取平均值
  • 对旧任务,使用**知识蒸馏损失**(一种改进的交叉熵损失),鼓励一个网络的输出近似于另一个网络的输出Lold(yo,y^o)=−H(yo′,y^o′)=−∑i=1lyo′(i)⋅logy^o′(i)\mathcal L _{old}(y_o,\hat y _o) =-H(y _o ^{'},\hat y _o ^{'})= -\sum _{i=1}^l y _o ^{'(i)} \cdot log\hat y _o ^{'(i)}Lold​(yo​,y^​o​)=−H(yo′​,y^​o′​)=−i=1∑l​yo′(i)​⋅logy^​o′(i)​其中 yoy_oyo​ 是新任务的数据在原始网络上的输出概率,y^o\hat y _oy^​o​ 是新数据在当前网络上的输出概率。yo′,y^o′y _o ^{'},\hat y _o ^{'}yo′​,y^​o′​ 是对 yo,y^oy _o ,\hat y _oyo​,y^​o​ 用蒸馏的思想修改后的表示,具体地:yo′(i)=(yo(i))1/T∑j(yo(j))1/T,y^o′(i)=(y^o(i))1/T∑j(y^o(j))1/T.y _o ^{'(i)} =\frac{(y _o ^{(i)})^{1/T}}{\sum _j (y _o ^{(j)})^{1/T}},\hat y _o ^{'(i)} =\frac{(\hat y _o ^{(i)})^{1/T}}{\sum _j (\hat y _o ^{(j)})^{1/T}}.yo′(i)​=∑j​(yo(j)​)1/T(yo(i)​)1/T​,y^​o′(i)​=∑j​(y^​o(j)​)1/T(y^​o(i)​)1/T​.文章取 T=2T =2T=2(Hinton等人建议取 T>2T>2T>2 以鼓励网络更好的编码类间相似性)。如果有多个旧任务(或一个旧任务是多分类),则取每个旧任务(或标签)损失的总和。
  • 损失函数的完整表示L=λoLold(Yo,Y^o)+Lnew(Yn,Y^n)+R(θ^s,θ^o,θ^n)\mathcal L = \lambda_o \mathcal L _{old}(Y_o,\hat Y _o) + \mathcal L _{new}(Y_n,\hat Y _n)+\mathcal R(\hat \theta _s,\hat \theta _o,\hat \theta _n)L=λo​Lold​(Yo​,Y^o​)+Lnew​(Yn​,Y^n​)+R(θ^s​,θ^o​,θ^n​)其中 λo\lambda _oλo​ 是损失平衡权重,增大 λo\lambda _oλo​ 有利于旧任务,文中的大多数实验设 λo=1\lambda _o=1λo​=1 。

算法流程

与联合训练的关系

  • 联合训练(Joint Training)需要使用旧的数据集
  • LwF不再使用旧的数据集,而是使用新任务中的样本及"伪标签"替代,这消除了对旧的数据集的需求,节省了存储,也节省了计算。但由于不同任务的样本分布可能不同,这种替代可能会降低性能,故联合训练可以看作是LwF的上界。

实现细节

  • 使用MatConvNet训练
  • 使用SGD:momentum=0.9momentum=0.9momentum=0.9,全连接层有dropoutdropoutdropout
  • 数据标准化:平均减法(和原网络一样)
  • 调整大小:
    对AlexNet :256×256
    对VGG:固定长宽比,最短边变为256像素
  • 随机抖动训练数据:在5×5的网格上随机对大小已调整的图像进行固定尺寸的剪切,随机镜像,像AlexNet一样改变RGB值
  • θn\theta _nθn​ 初始化:使用Xavier初始化
  • 学习率:是原网络学习率的0.02~0.1倍,选取学习率以使得模型性能最优
  • epochs:基于在held-out set上的验证选择warm-up阶段和joint-optimize阶段的epochs。
  • 超参数:由于验证过程只观擦新任务上的性能,故选择的超参更有利于新任务。

为了和其他方法公平比较:

  • 每种方法使用相同的epochs
  • 将Warm-up step后的中间网络作为联合训练和微调的起点可以加快收敛速度
  • 对于特征提取,固定θs\theta _sθs​,禁用dropout层,并在其上增加一个隐藏层有4096个节点的两层网络
  • 对于联合训练,一个任务输出节点的损失仅用于其自身的训练图像,每个任务在每个epoch对相同数量的图像进行下采样,以平衡损失,并将不同的任务分批交错进行梯度下降。

实验

目的

评价LwF是一种既保留旧任务性能又能学习新任务的有效方法

数据集

  • 旧任务:使用大规模数据集
    ImageNet ILSVRC2012子集:1000类,超过1000000训练图像像
    Places361-standard数据集:365个场景,1600万张训练图像
  • 新任务:使用中等规模数据集
    PASCAL VOC 2012 image classfication(VOC):5717张训练图,与ImageNet相似
    Caltech-USCD Birds-200-2011 fine-grained classfication(CUB):5994张训练图像,不与ImageNet、Places365相似
    MIT indoor scene classfication(Scenes):5360张图像,与Places365相似

网络结构

主要是AlexNet,也用VGG16在较小的实验集上验证。这两种网络的最后一层视为任务特定层,其余是共享层。

对比方法

  • 特征提取
  • 微调
  • 微调FC
  • 较少遗忘学习(LFL)

评价指标

准确性(accuracy)

方法

  • 添加一个新任务、依次添加多个任务
  • 数据集大小和网络设计的影响
  • 消融实验研究:检验alternative response-preserving losses、扩展网络结构的效用、以较低的学习率微调

实验结果

  • 添加单个新任务
  • 添加多个新任务
  • 数据集大小的影响

其他

文章还将LwF和模型扩张(model expansion)结合进行探究,也探究了LwF在跟踪中的应用。

参考

机器学习:Learning without Forgetting --增量学习中的抑制遗忘
《Learning without Forgetting》论文阅读笔记

Life Long Learning论文阅读记录之LwF相关推荐

  1. 华为又开始放大招了?CV新架构:VanillaNet: the Power of Minimalism in Deep Learning 论文阅读笔记

    华为又开始放大招了?CV新架构:VanillaNet: the Power of Minimalism in Deep Learning 论文阅读笔记 一.Abstract 二.引言 三.单个 Van ...

  2. MapReduce论文阅读记录

    本文为阅读MapReduce论文的记录,内容主要是论文的第三部分--实现.方便本人今后查看. 1. 运行概述 下图展示了 MapReduce 过程的整体情况 当用户程序执行 MapReduce 时,会 ...

  3. MVS学习(一):综述论文阅读记录

    MVS学习(一):综述论文Multi-View Stereo: A Tutorial阅读记录 Abstract Introduction SfM简介 Openmvs简介和安装 Multi-view P ...

  4. Deep Depth Completion of a Single RGB-D Image论文阅读记录以及quicktest

    (一)论文简要说明 这是一篇2018年CVPR的最新论文,可以直接通过输入RGB图以及相对应的Depth图,然后可以直接补全任意形式深度图的缺失. 论文地址:https://arxiv.org/abs ...

  5. ICLR2022论文阅读记录 - AVHuBERT

    文章目录 论文(AV-HuBERT):LEARNING AUDIO-VISUAL SPEECH REPRESENTATION BY MASKED MULTIMODAL CLUSTER PREDICTI ...

  6. 【项目小结】英语语法错误检测(GEC)开题论文阅读记录

    毕业论文准备尝试一下GEC,虽然没有过这方面的经验,但做老生常谈的课题实在是亏待宝贵的最后一年.其实最主要的原因是莫名奇妙被一个从来没上过课的教授加微信翻了牌子,我看了一下他给出的题目:英语句法分析. ...

  7. ICASSP2022论文阅读记录3 - TalkingFlow

    文章目录 论文: TalkingFlow: Talking facial landmark generation with multi-scale normalizing flow network 论 ...

  8. LeCun-Nature-Deep Learning论文阅读笔记

    目录 Acknowledge 卷积的定义 神经网络模型 卷积神经网络 循环神经网络 总结 Acknowledge 首先致敬 Lecun Y, Bengio Y, Hinton G E, et al. ...

  9. 【课程作业】Adversary Instantiation: Lower Bounds for Differentially Private Machine Learning论文阅读报告

    0.论文信息 论文名字 Adversary Instantiation: Lower Bounds for Differentially Private Machine Learning 所属会议 I ...

最新文章

  1. 程序还没写完只能当然计算器用,先发过来用着后面的慢慢写
  2. hdu1251 hash或者字典树
  3. boost::mp11::mp_replace_at相关用法的测试程序
  4. 【2021新版】一线大厂 Go 面试题合集
  5. 正则表达式的介绍与底层分析
  6. mysql 单机_mysql单机多实例——方法1
  7. rhel系统启动过程_linux系统启动过程及运行等级详解
  8. [转] webpack之plugin内部运行机制
  9. springboot读取linux文件_SpringBoot 读取文件代码模版
  10. oracle表update在等待,Oracle中如何更新一张大表记录
  11. [题解]一本通1240:查找最接近的元素
  12. Zend Studio小技巧:自动生成版本信息
  13. 【深入理解Java原理】ThreadLocal
  14. c#语言开发教程pdf版,用C#语言制作PDF文件全攻略图文教程
  15. linux软件包管理思维导图,推荐五款管理工具(思维导图)
  16. 杀毒软件之父 John McAfee 自杀
  17. 怎么篡改计算机硬盘大小,怎么样更改Parallels Desktop硬盘大小 Parallels Desktop虚拟机硬盘大小如何更改...
  18. 代码随想录第十四天 二叉树基础 LeetCode 144、145、94
  19. c#语言小括号里面的逗号是什么意思
  20. 18. SELinux管理

热门文章

  1. Redis - 消息发布订阅机制
  2. Invalid bound statement (not found): com.itheima.mapper.userMapper.SelectAll
  3. 人机交互-1-人机交互概述
  4. Android View 生成唯一 Id
  5. 利用kali爆破telnet
  6. 【MVC-自定义过滤器】
  7. 滴滴开源小程序框架 Mpx
  8. node和npm如何升级版本
  9. VS2010、VS2012、VS2013、VS2015对C++11的支持进度
  10. python黑白像素面积占比计算(脏污、白点等)