文章目录

  • 前言
  • 工作流程
    • exemplar level

前言

目前也写了较多增量学习的文章了,我的目的是在写的过程中对方法的细节进行梳理,帮助自己理解,其中难免有表述不当的地方,请各位辩证看待我文章中的观点与描述,如有错误,还望指出。

本篇文章发表于2020年CVPR,论文代码地址

作者从一个非常有趣的点出发,从而让模型抵抗灾难性遗忘,但是这篇文章细节部分写的不是很好。现有的增量学习算法多数都会存储部分旧图片,作者将旧图片作为优化参数,通过优化旧图片从而让旧图片尽可能反映旧类别的特性,最终让模型尽可能较少的遗忘。作者通过让保存的旧图片训练出的模型,在全部旧图片上计算出的loss值尽可能小,从而让旧图片尽可能反映旧类别的特性。上述方法称为Mnemonics

从exemplar level抵抗灾难性遗忘的做法,NIPS2019上也有一篇文章:Online Continual Learning with Maximally Interfered Retrieval。

先上一张简单的效果图:

通过t-SNE技术,将高维特征映射到低维度进行可视化,结果如上,深色的点表示exemplar。可以看到,利用Mnemonics训练的model,会将类别分的更开,并且利用Mnemonics得到的旧图片,会更位于类别边缘(这个特性不知道可以说明什么)。

工作流程


一次增量学习分为model-level与exemplar-level两个层级。model level利用蒸馏loss,结合存储的exemplar,对model进行训练,由于是增量学习的常见方法,故在此不做过多介绍。 exemplar level将对旧图片进行优化。

exemplar level

设第iii次增量学习后,模型的参数为θi\theta_iθi​,对于第iii次增量学习的数据,作者会将其分为验证集与训练集两类,设训练集中待优化的图片为ϵi\epsilon_iϵi​,对应的验证集中的图片为DiD_iDi​,LcL_cLc​为交叉熵损失函数,则优化目标为

min⁡ϵiLc(θi′(ϵi);Di)s.t.θi′(ϵi)=arg min⁡θiLc(θi;ϵi)(式1.0)\begin{aligned} &\min_{\epsilon_i}L_c(\theta'_i(\epsilon_i);D_i)\\ &s.t. \theta'_i(\epsilon_i)=\argmin_{\theta_i}L_c(\theta_i;\epsilon_i) \end{aligned}\tag{式1.0} ​ϵi​min​Lc​(θi′​(ϵi​);Di​)s.t.θi′​(ϵi​)=θi​argmin​Lc​(θi​;ϵi​)​(式1.0)

exemplar level分为两个阶段,首先利用θi\theta_iθi​初始化另外一个model,接着利用ϵi\epsilon_iϵi​训练该model,使得LcL_cLc​取值最小,得到模型θi′(ϵi)\theta'_i(\epsilon_i)θi′​(ϵi​),梯度更新的式子如2.0所示:

θi′=θi′−αΔθi′Lc(θi;ϵi)(式2.0)\theta_i'=\theta_i'-\alpha\Delta_{\theta_i'}L_c(\theta_i;\epsilon_i)\tag{式2.0} θi′​=θi′​−αΔθi′​​Lc​(θi​;ϵi​)(式2.0)

接着固定θi′(ϵi)\theta'_i(\epsilon_i)θi′​(ϵi​),将ϵi\epsilon_iϵi​作为参数进行优化,梯度更新的式子如3.0所示:

ϵi=ϵi−βΔϵLc(θi′(ϵi);Di)(式3.0)\epsilon_i=\epsilon_i-\beta \Delta_{\epsilon} L_c(\theta'_i(\epsilon_i);D_i)\tag{式3.0} ϵi​=ϵi​−βΔϵ​Lc​(θi′​(ϵi​);Di​)(式3.0)

Lc(θi′(ϵi);Di)L_c(\theta'_i(\epsilon_i);D_i)Lc​(θi′​(ϵi​);Di​)表示模型θi′(ϵi)\theta'_i(\epsilon_i)θi′​(ϵi​)在数据集DiD_iDi​上的交叉熵损失函数,模型的输入是数据集DiD_iDi​,那如何将误差反向传播至ϵi\epsilon_iϵi​?关于如何更新ϵ\epsilonϵ,作者写的不是很清楚,我这边给出自己的理解,可能是联合式2.0与式1.0进行更新,梯度反向传播至参数θi′\theta_i'θi′​上后,依据式1.0,将梯度传播至ϵi\epsilon_iϵi​

对于旧数据,设旧数据为ϵ0:i−1\epsilon_{0:i-1}ϵ0:i−1​,作者也将其分为不相交的两部分:ϵ0:i−1A\epsilon_{0:i-1}^Aϵ0:i−1A​、ϵ0:i−1B\epsilon_{0:i-1}^Bϵ0:i−1B​,将其中一部分作为验证集,优化另外一部分,通过交替优化,使得ϵ0:i−1A\epsilon_{0:i-1}^Aϵ0:i−1A​、ϵ0:i−1B\epsilon_{0:i-1}^Bϵ0:i−1B​都可以得到优化。

比如首先将ϵ0:i−1A\epsilon_{0:i-1}^Aϵ0:i−1A​作为训练集,ϵ0:i−1B\epsilon_{0:i-1}^Bϵ0:i−1B​作为验证集,利用下式对ϵ0:i−1A\epsilon_{0:i-1}^Aϵ0:i−1A​进行优化

ϵ0:i−1A=ϵ0:i−1A−βΔϵ0:i−1ALc(θi′(ϵ0:i−1A);ϵ0:i−1B)\epsilon_{0:i-1}^A=\epsilon_{0:i-1}^A-\beta\Delta_{\epsilon_{0:i-1}^A}L_c(\theta_i'(\epsilon_{0:i-1}^A);\epsilon_{0:i-1}^B) ϵ0:i−1A​=ϵ0:i−1A​−βΔϵ0:i−1A​​Lc​(θi′​(ϵ0:i−1A​);ϵ0:i−1B​)

接着将ϵ0:i−1B\epsilon_{0:i-1}^Bϵ0:i−1B​作为训练集,ϵ0:i−1A\epsilon_{0:i-1}^Aϵ0:i−1A​作为验证集,利用下式对ϵ0:i−1B\epsilon_{0:i-1}^Bϵ0:i−1B​进行优化

ϵ0:i−1B=ϵ0:i−1B−βΔϵ0:i−1BLc(θi′(ϵ0:i−1B);ϵ0:i−1A)\epsilon_{0:i-1}^B=\epsilon_{0:i-1}^B-\beta\Delta_{\epsilon_{0:i-1}^B}L_c(\theta_i'(\epsilon_{0:i-1}^B);\epsilon_{0:i-1}^A) ϵ0:i−1B​=ϵ0:i−1B​−βΔϵ0:i−1B​​Lc​(θi′​(ϵ0:i−1B​);ϵ0:i−1A​)

重复上述过程。

我们可以看到,式1.0的优化分为两个部分,优化模型时,图像ϵ\epsilonϵ固定,优化图像ϵ\epsilonϵ时,模型固定,这就相当于坐标下降法。优化的最终目的是使使用图像ϵ\epsilonϵ训练出来的model,在全部训练数据上的loss最小,即拟合全部训练数据,这样,我们在存储图像上训练出的model,和使用全部训练数据训练得到的model,性能将尽可能接近。

exemplar level的训练流程可以用下图表示

深度学习论文笔记(增量学习)——CVPR2020:Mnemonics Training: Multi-Class Incremental Learning without Forgetting相关推荐

  1. [深度学习论文笔记]医学图像分割U型网络大合集

    [深度学习论文笔记]医学图像分割U型网络大合集 2015 U-Net: Convolutional Networks for Biomedical Image Segmentation (MICCAI ...

  2. [深度学习论文笔记]Multi-phase Liver Tumor Segmentation with Spatial Aggregation

    Multi-phase Liver Tumor Segmentation with Spatial Aggregation and Uncertain Region Inpainting [深度学习论 ...

  3. [深度学习论文笔记]Pairwise Learning for Medical Image Segmentation

    [深度学习论文笔记]Pairwise Learning for Medical Image Segmentation 医学图像分割的成对学习 Published: October 2020 Publi ...

  4. 深度学习课程笔记(七):模仿学习(imitation learning)

    深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...

  5. [深度学习论文笔记]Multimodal CNN Networks for Brain Tumor Segmentation in MRI

    Multimodal CNN Networks for Brain Tumor Segmentation in MRI: A BraTS 2022 Challenge Solution MRI中用于脑 ...

  6. [深度学习论文笔记]UNETR: Transformers for 3D Medical Image Segmentation

    UNETR: Transformers for 3D Medical Image Segmentation UNETR:用于三维医学图像分割的Transformer Published: Oct 20 ...

  7. [深度学习论文笔记]A Tri-attention Fusion Guided Multi-modal Segmentation Network

    A Tri-attention Fusion Guided Multi-modal Segmentation Network 一种三注意力融合引导的多模态分割网络 Published: 2 Nov 2 ...

  8. 【深度学习论文笔记】DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition

     时间:2014/7/29 10:00 论文题目:DeCAF: A Deep Convolutional Activation Featurefor Generic Visual Recognit ...

  9. [深度学习论文笔记DoDNet: Learning to segment multi-organ and tumors from multiple partially labeled datasets

    DoDNet: Learning to segment multi-organ and tumors from multiple partially labeled datasets DoDNet:学 ...

  10. [深度学习论文笔记]Modality-aware Mutual Learning for Multi-modal Medical Image Segmentation

    Modality-aware Mutual Learning for Multi-modal Medical Image Segmentation 多模态医学图像分割中的模态感知互学习 Publish ...

最新文章

  1. 为什么人们爱听有声书?
  2. linux项目变量存放,linux 堆、栈、全局变量存放
  3. 影响中国发展的七大垂直搜索引擎
  4. go defer性能测试
  5. 开发 Windows 8 Bing地图应用(2)
  6. zs040蓝牙模块使用方法_如何使用车载蓝牙播放手机音乐的方法
  7. eclipse常用窗口和功能总结
  8. C++开源矩阵计算工具——Eigen 在VS2005中的下载、配置与使用
  9. Dart与系统进程交互
  10. 时间函数strtotime
  11. 为什么前端H5工程师工资那么高?
  12. nodejs实现同步http请求
  13. Android widget之CompoundButton
  14. Kafka配置broker映射错误报错Discovered coordinator xxx rack: null
  15. 地图与定位(一)定位服务
  16. linux 查看当前连接ip,netstat查看系统连接数及当前连接IP
  17. 大连工业大学计算机技术,大学计算机基础-大连工业大学计算机技术试验教学中心网站.PPT...
  18. The purpose of a tem
  19. 计算机学生应不应该考研?附上袁哥的考研经历
  20. 和平精英显示模拟服务器已满,和平精英模拟器注册达到上限? 模拟器注册上限完美解决攻略...

热门文章

  1. 安装java1.6_JAVA1.6怎么安装
  2. LibZXing二维码工具
  3. 友价T5开发的网站源码交易平台
  4. 数据孤岛下的新破局 Real Time DaaS:面向 AP+TP 业务的数据平台架构
  5. Golang 小技巧
  6. 【iMessage苹果相册推位置推】 去向证书发送到 App Store 本子, 可以使用同一个出站证书,这样可以测试你的ME环境出站工艺流程是不是有题目题目。
  7. linux下安装安装pcre-8.32 configure: error: You need a C++ compiler for C++ support
  8. VB6.0开发的计算机串口通讯程序1
  9. BUAA OO第二单元作业总结
  10. 并行程序设计方法实验(包括openmp、向量化实现pi计算、SPECOMP2012测试、矩阵乘法优化)