Compacting, Picking and Growing for Unforgetting Continual Learning

这是2019年的NIPS的文章,来自台湾中央研究院资讯科学研究所。

这篇关注深度模型压缩、关键权重选择、渐进网络扩展。呼应标题的压缩、选择、成长。

本方法在增量学习中,直接没有遗忘问题,不用记忆数据,同时能利用之前累积的知识建立一个更好的模型(比起重新训练来说)。


1.Intrduction

顺序任务学习中,如何保持对过去任务的性能。过去数据不可用,fine-tuning会导致灾难性遗忘。

  • 为减轻遗忘,可对梯度或参数的正则化——比如Krikpatrik的EWC,尝试寻找两个任务之间的交集。Schwarz介绍的一种知识蒸馏方法,应用EWC,教师和学生网络。
    然而这系列方法还是会渐渐遗忘,不适合顺序任务无限的情况。

  • 为解决数据缺失问题,可用数据保留,记忆重放技术——数据保留直接保存重要数据或其编码,记忆重放导入额外记忆模型比如GAN,间接地保持数据信息或分布。
    缺点需要积累的旧信息显式再训练,这会导致记忆空间和遗忘的二难选择。

本文介绍一个可持续且紧凑的深度模型,可解决无限序列任务的学习问题,并且避免遗忘。模型在扩张之余也会消除冗余。

此外,预训练和微调只是在初始化时引入先验,知识库会随着过去的任务减少。我们的模型紧凑,不易遗忘,且旧知识能增强后续学习。

Motivation

设计理念:compacting,picking,growing(CPG)。先谈了下PNN,受PNN启发,其中有大量冗余可去除。

  • conpacting:新增任务时,固定对旧任务重要的参数,释放不重要的学习新任务。
  • growing:先用释放的权重学习新任务,如果性能不达标,扩展网络,将扩展参数和释放参数一并来学习新任务。
  • picking:在PNN中,学习新任务需要所有的旧权重。用可区分的掩码,选择关键任务权重用于辅助新任务学习。

Method Overview

  1. 通过剪枝建立一个压缩模型。
  2. 选择、重用一些老任务权重,和释放的权重,学习新任务。
  3. 如果准确率目标不满足,通过增加滤波器或结点重复上述过程。

这样新任务权重就包括了两部分:1.旧任务固定权重上的可学习的mask  2.新增权重剪枝所剩的


2.Related Work

(这里作者的分类和那篇综述Continual lifelong learning差不多)

网络正则化

记忆重放

动态结构


3.Method

task1

初始模型训练好后,用gradual pruning方法——这种方法迭代地移除一部分权重然后重训练模型,以恢复性能,直到达到剪枝标准。剩下的权重固定,剪除的权重释放。

task k to k+1

piggyback方法,学一个实值mask然后设定一个阈值构建本步mask M。M权重与释放的权重Wk一起学习task k+1的训练集,其中M参数仅参与前向传播。如果性能不满足条件,模型结构成长以包含更多权重来用于训练。

compaction of task k+1

M和Wk学好后,task k+1的模型也就完成了。固定M,对Wk应用gradual pruning,得到Wk+1。


4.实验

这个模型避免了遗忘问题,性能还更高了。


5.思考

看PNN的时候只觉得哇,好暴力的方法...感觉就是凭算力抢先占坑。

本文整个思路还是很直观的——既然原方法那么奢侈,我们就精细一点,腾出多余的参数;旧信息如何有效利用呢?用一个mask。但是作者拿来解决两个关键问题——剪枝和mask——的工具,是只看IL文章是无法想到的(piggyback是一个调整单网络适应多任务的方法)...广度很重要啊。个人感觉是很好的工作。

虽然本文问题还是类增量,但引入的方法有一些普遍性。这个mask方法来“蒸馏”知识也许比蒸馏损失更好(我总觉得分类器和特征提取器的划分过于粗暴了,蒸馏损失建立在最后一层的基础上有可能并不牢靠)?或者剪枝方法可以用来精华一下网络参数以更好地再训练?

论文阅读:Compacting, Picking and Growing for Unforgetting Continual Learning相关推荐

  1. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey

    文章目录 一.介绍 二.背景 1.人工智能和深度学习 (1)多层感知机 (2)卷积神经网络 (3)循环神经网络 (4)自编码器 (5)生成对抗网络 2.NLP中深度学习的动机 三.NLP领域的核心概念 ...

  2. 论文阅读 【CVPR-2022】 A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation

    论文阅读 [CVPR-2022] A Simple Multi-Modality Transfer Learning Baseline for Sign Language Translation st ...

  3. 强化学习泛化性 综述论文阅读 A SURVEY OF GENERALISATION IN DEEP REINFORCEMENT LEARNING

    强化学习泛化性 综述论文阅读 摘要 一.介绍 二.相关工作:强化学习子领域的survey 三.强化学习中的泛化的形式 3.1 监督学习中泛化性 3.2 强化学习泛化性背景 3.3 上下文马尔可夫决策过 ...

  4. 【论文阅读】Misshapen Pelvis Landmark Detection WithLocal-Global Feature Learning for DiagnosingDevelop

    作者及团队:刘川斌 Chuanbin Liu; 谢洪涛; 张思成; 毛振东; 孙俊; 张永东 会议及时间:IEEE Transactions on Medical Imaging 2020-12| 期 ...

  5. 【论文阅读】Search-Based Testing Approach for Deep Reinforcement Learning Agents

    文章目录 一.论文信息 二.论文结构 三.论文内容 Abstract 摘要 一.论文信息 题目: Search-Based Testing Approach for DeepReinforcement ...

  6. 论文阅读(2)--Picking Deep Filter Responses for Fine-grained Image Recognition

    这次阅读的文章是Picking Deep Filter Responses for Fine-grained Image Recognition,这篇文章是来自上海交通大学Xiaopeng Zhang ...

  7. 【论文阅读笔记】FLAME: Taming Backdoors in Federated Learning

    个人阅读笔记,若有错误欢迎指正 会议: USENIX Security Symposium 2022  论文地址:[2101.02281] FLAME: Taming Backdoors in Fed ...

  8. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey 深度学习在自然语言处理中的进展

    Natural Language Processing Advancements By Deep Learning: A Survey 深度学习在自然语言处理中的进展 目录 Natural Langu ...

  9. [论文阅读] Maintaining Discrimination and Fairness in Class Incremental Learning

    论文地址:https://openaccess.thecvf.com/content_CVPR_2020/html/Zhao_Maintaining_Discrimination_and_Fairne ...

最新文章

  1. python解包裹_关于Python中包裹传参和解包裹的理解
  2. 2020-11-22(操作系统——页面置换算法)
  3. 取两个日期相差几年_干货~44个最常用的日期和时间类函数组合
  4. jquery中prop()方法和attr()方法的区别浅析
  5. Wait waitpid
  6. 第一百二十三期:免费在线制图神器!不上水印支持中文版,GitHub标星已破1万2
  7. Windows 7 仅是Windows Vista SP2?
  8. POJ 3186Treats for the Cows (区间DP)
  9. 工业通讯 | OEM嵌入式通讯模块与西门子PLC S7-1200通讯测试指南
  10. PPI | protein-protein interaction | 蛋白互作分析 | gene interaction | 基因互作
  11. [国家集训队2011]跳跳棋
  12. windows10安装虚拟机详细教程
  13. oracle之SQL的基本函数
  14. oracle函数怎么遍历二维数组,oracle存储过程之游标查询,一维和二维数组,循环,条件判断例子...
  15. 结对编程的合作情况,以及结对编程的优缺点
  16. Fiddler简单的使用教程
  17. 论文笔记《Fully Convolutional Networks for Semantic Segmentation》
  18. 如何一键制作ps铅笔素描画人物效果
  19. java 上传 excel_Java对Excel表格的上传和下载处理方法
  20. 追踪放“马”贼——从木马中分析放马者手记

热门文章

  1. 2006中国企业500强名单
  2. Linux中写C代码进行文件读写与权限修改等各类操作
  3. 有限元流体模拟matlab仿真
  4. USB 快充需要知道的知识
  5. 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....
  6. Spark-RDD使用IDEA-Scala编程练习题:对于两个输入文件A和B,编写spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件c。
  7. QT Create OCI方式连接达梦数据库
  8. ICN6202是一颗MIPI DSI转LVDS的桥接芯片
  9. 解决:Uncaught DOMException: Blocked a frame with origin “xxx“ from accessing a cross-origin frame.
  10. linux 显卡驱动程序 接口,Linux显卡驱动程序Nvidia 384.59发布,增加对GeForce GT 1030 GPU支持...