Zhu, Xiaofeng, et al. “Frosting Weights for Better Continual Training.” 2019 18th IEEE International Conference On Machine Learning And Applications (ICMLA). IEEE, 2019.

1. 问题背景

问题依旧是解决深度学习灾难性遗忘问题,详见深度学习之灾难性遗忘问题与PRN(20200816):A Hierarchical Deep Convolutional Neural Network for Incremental Learning [Tree-CNN]中的介绍。

但是,作者在引言第五段中,明确指出,该文可作为Continual learning的一个特殊案例,因为该论文的关注点以及数据的设置方置与Continual learning是有区别的。

在Continual learning与Sequential learning中,只有新数据是可用于模型训练的。

作者称该文的目的与Continual learning与Sequential learning有所区别,此处是为了保证:重新训练的模型在新旧数据上都能有很好的性能。所以,该文在遇到新数据时,会将新数据与部分旧数据一齐对网络进行重训练。作者补充说:为了保证计算量不会随着新数据增加而越来越大,论文采用固定大小的训练集,也即新数据+旧数据的总数是一个常值。论文中相关的数据筛选方法却未给出。当然,还有一系列疑点会在下文给出。

作者缓解灾难性遗忘问题的方法属于集成模型类方法,主要贡献是提出了两种集成模型(BoostNet与FrostNet)用于持续的训练任务。

2. 解决灾难性遗忘的三种途径

  • 参数正则化:这类方法通过限制对历史任务重要的节点权值的改变来平衡新旧任务的学习问题,方法内部要解决的问题是如何评价节点权值的对历史任务的重要性?例如,突触智能就属于这类方法。
  • 模型集成:可以用集成学习的概念先入为主的理解它,解决灾难性遗忘问题的手段就是给预训练过的网络训练多个子网络分别解决不同的任务,该方法存在的问题是存储消耗与训练阶段数成正比。简单来说,你要训练新数据需要新建立一个子网络
  • Memory Consolidation:记忆巩固是从数据层面来解决灾难性遗忘的问题,它通过学习存储不同数据的模式或记忆来重新生成对历史知识具有巩固作用的虚似训练数据对网络进行不断刺激。代表方法有,知识蒸馏法、Self-refreshing Memory Approaches以及基于对抗生成网络(GAN)的方法等。

该文的目标是持续的学习到一个更加泛化的网络,即能够通过获取新数据中知识来修正历史训练的模型的错误。

3. 方法

为了更好的理解方法,先给出论文训练的过程:

  • 利用数据集1预训练一个教师网络;(数据集1被称为历史数据,数据集2被称为新数据)
  • 之后利用一半的数据集1与一半的新数据集2构成新的训练数据集训练新网络。(这个构造的数据集被称为重训练数据集)

3.1 BoostNet

  • 对于一个利用历史数据集训练好的网络(如下图虚框A所示),此处称为网络A;
  • 我们组合新数据与老数据的一部分(老数据的子集)构成重训练数据集;
  • 将重训练数据集输入到网络A,计算模型的输出与残差(Residuals),其中残差为真值与预测值的差值,用来度量网络A需要提升多少才能在重训练数据表现好;正常情况下,此时重训练数据集中的老数据的残差接近零,新数据的残差很大。
  • 网络A的参数与结构都保持不变,然后利用上面计算的残差作为训练数据的label训练网络B;
  • 最后,在推断(也即预测阶段)用网络A的输出与网络B的输出的和作为最终的输出。

想法很纯朴,但是BoostNet的问题是,每次新数据到来时,都需要新建一个网络来拟合前面网络的残差。

3.2 FrostNet(2020.10.13更新)

对于预训练的网络,如果有新数据加入,则在每层有参数连接的网络间添加一层以参数作为输入的结霜网络层,然后用新旧各一半的数据集对添加结霜层的网络进行训练。训练结束,将结霜层与网络本身的参数相乘得到网络新的参数。其实就是训练了网络参数的系数。训练新网络其实就是训练一个层数更多的包含参数结霜层的网络。

最后:感谢李老师(2020.10.13补)

开始,由于本人对该论文有过多的期待,所以导致“Frosting”结霜这个词在我脑海中很神奇。潜意识里就没有往那个较粗暴的路上去理解这个结霜网络。下面是之前该博客里的内容,是不是充满了对知识的渴望,充满了一个求知者的弱小无助。。。=^=

没看懂,我把原文贴出来(看懂的大神请告诉小弟):


由于没看懂,所以不评价FrostNet的好坏。但是,论文这样写是不是太过简化了,重要的东西没有说出来。
为了避免有些人说我没有好好看,我贴出我与作者交流的邮件内容来证明我是有多想弄清这个结霜网络到底是如何结霜的:
我给作者的邮件[不惜贴上我蹩脚的英文]:

作者的回复:

首先,感谢作者的回复,还是挺和气。可是,真的没有回答到点子上。唉,也不想继续在此逗留,回了句Thank you very much就撤了。

以上是引用博客之前的内容。

昨天晚上,研究生导师说查资料看到我这篇博客:

好吧,其实我很不愿意相信这个事实:


再次感谢恩师!

此段记于此,谨表谢意!


by windSeS
2020.10.13

PRN(20200908):Frosting Weights for Better Continual Training相关推荐

  1. PRN(20210421):Task-Free Continual Learning

    写这篇博客前,我又重新阅读了之前的博客( 利用突触智能实现连续学习|从原理到代码解析(人生好难呀!))的内容,以及文后的那段笔(tu)记(cao).一直没有放弃关注增量式学习的近况,比如:最近ICLR ...

  2. PRN(20210426):Online Continual Learning with Maximally Interfered Retrieval

    基于回放单元的方法被大量研究证明能够有效缓解深度学习灾难性遗忘问题.基于回放单元方法的有效性取决于选择存储的样本是否有助于帮助避免遗忘.本篇介绍一种新方法,它通过可以预见的参数更新,来判断样本损失值受 ...

  3. PRN(20201231):驾驶人驾驶决策机制遵循最小作用量原理

    王建强, 郑讯佳, 黄荷叶. 驾驶人驾驶决策机制遵循最小作用量原理[J]. 中国公路学报, 2020, v.33;No.200(04):159-172. 观点: 为提升智能汽车的自主决策能力,使其能够 ...

  4. PRN(20210426):GRAPH-BASED CONTINUAL LEARNING(ICLR2021)

    @article{tang2021graph-based,title={Graph-Based Continual Learning},author={Tang, Binh and Matteson, ...

  5. PRN(20200816):A Hierarchical Deep Convolutional Neural Network for Incremental Learning [Tree-CNN]

    Roy D , Panda P , Roy K . Tree-CNN: A Hierarchical Deep Convolutional Neural Network for Incremental ...

  6. Caffe代码导读(5):对数据集进行Testing

    转载自: Caffe代码导读(5):对数据集进行Testing - 卜居 - 博客频道 - CSDN.NET http://blog.csdn.net/kkk584520/article/detail ...

  7. 系列笔记 | 深度学习连载(5):优化技巧(下)

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 深度学习中我们总结出 5 大技巧: 本节继续从第三个开始讲起. 3. Early stoppi ...

  8. Python 数据分析三剑客之 NumPy(五):数学 / 算术 / 统计 / 排序 / 条件 / 判断函数合集

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  9. 数据可视化系列(三):布局格式定方圆

    前言 期待了好久的datawhale可视化教程终于出来了,这次标题狠有文艺范儿,哈哈哈 这次我主要目的是最近要写篇论文,也正好为以后建模画图打劳基础~ 大家可以多看看官方教程: 中文官方网站:http ...

最新文章

  1. php引入路径配置,require.js的路径配置和css的引入方法详解
  2. python画五角星-Python第八课 绘制五角星1.0
  3. 关于过往与未来的思考
  4. 基础提供程序在 Open 上失败
  5. c语言变量名s_i使其随i变化,动态规划I(含细c语言代码).ppt
  6. 通透!数据仓库领域常见建模方法及实例演示
  7. C++静态库与动态库(转)
  8. sun cluster 3.3 +oracle 10g R2 RAC with ASM on solaris 10 U9
  9. PhpStorm 配置 Git 教程
  10. 区位码、国标码、机内码的区别和内在机制
  11. 企业微信 发送或接收 图片失败,怎么办?
  12. 高斯法求解方程原理及实现
  13. 魔兽争霸显示比例调整的问题
  14. 真无线蓝牙耳机怎么选?分体式蓝牙耳机选购攻略及推荐
  15. 戴尔计算机软件的安装,怎么安装dell电脑系统
  16. 无线数字DR平板探测器维修瓦里安PaxScan 4030X分析
  17. Python3,掌握这20个小技巧,小菜鸡瞬间变成老码农~
  18. 页面加载时,vue生命周期的触发顺序
  19. 谷歌浏览器去广告扩展程序(网页插件)
  20. 深度学习-图像处理之误差传播、权重更新及优化器

热门文章

  1. 标准柯西分布_柯西分布没有数学期望
  2. 基于java的圆通快递单号自动识别api接口代码实例
  3. C++模板元编程(3)模板显示具体化
  4. Java之Stream的管道处理
  5. Cross-species regulatory sequence activity prediction
  6. 不同方式实现IP访问限制
  7. 开放平台中的鉴权的实现
  8. 基于STM32单片机智能RFID刷卡汽车位锁设计(论文
  9. 余压监控系统保证火灾发生时消防疏散通道的通畅,为大型高层建筑的安全运行和人民生命财产安全保驾护航
  10. 流程图软件lauto_Iauto流程软件