作者:Jaehong Yoon
年份:2018
期刊:ICLR
关键词:深度网络 在线增量学习 终身学习 动态可扩展网络

动态可扩展网络(DEN)
DEN通过执行选择性再训练来进行有效的在线训练,在每个任务到达时只使用必要数量的单元动态地扩展网络容量,并通过分裂/复制单元和时间戳来有效地防止语义漂移。

背景
对于深度学习而言的终身学习,存储和传输知识可以通过学习到的网络权重直接完成。学习到的权重可以作为现有任务的知识,新任务可以通过简单地分享这些权重来利用这一点。因此,我们可以在深度神经网络中将终身学习简单地视为在线或增量学习的一种特殊情况。
然而,1. 简单的网络再训练可能会降低新任务和旧任务的性能。(新任务和旧任务很大不同) 2.对新任务的重新训练表示可能会对旧任务产生不利影响,因为它们可能已经偏离了原来的含义,不再是最佳的任务。
图1:概念:(a)再训练模型,如 Elastic Weight Consoliation。在之前任务上学习到的整个网络,同时对其进行正则化,以防止与原始模型的大偏差。红色的单位和权重表示重新训练的单位,黑色的是保持固定的单位。(全部重新训练)
(b)非再训练模型,如渐进式网络(Rusuetal.,2016)扩展了新任务t的网络,同时保留了对以前任务的网络权值的修改。(对新加入的任务通过以往的网络进行训练,并可更改(我猜是微调)以往网络权值)
(c)DEN有选择地重新训练旧的网络,在必要时扩大其容量,从而在其继续运行时动态地决定其最佳容量。(有选择重新训练)

对于这种具有选择性参数共享和动态层扩展的增量深度学习设置,要解决:
1.训练中的可扩展性和有效性。网络不断增长,按照以往方法再训练模型,造成时间成本up,需要一种方法降低再训练的开销。
2.决定何时扩展网络,以及要添加多少神经元:如果旧的网络能够充分解释新任务,那么网络可能不需要扩展其大小。另一方面,如果任务与现有的神经元非常不同,它可能需要添加许多神经元。因此,该模型只需要动态地添加所需数量的神经元。
3.防止语义漂移,或灾难性遗忘,即网络在训练时从初始配置中漂移,从而在早期的示例/任务中显示出退化的性能。由于我们的方法对网络进行重新训练,甚至部分训练,以适应以后学习到的任务,并添加新的神经元,这也可能通过建立与旧子网络的连接而对之前的任务产生负面影响,我们需要一种机制来防止潜在的语义漂移。(如果任务很多,且不尽相同,那个最早期学习的网络会逐渐向新任务偏移,那么早期任务再过来的时候,效果会差)

相关工作

  1. 防止灾难性的遗忘
    深度网络的增量或终身学习导致被称为灾难性遗忘的问题,它描述了网络对新任务的再训练导致网络忘记为之前任务学习的东西的情况。
    解决这个问题的一个解决方案是使用一个正则化器,防止新模型偏离前模型,例如l2正则化器。然而,使用简单的l2正则化器可以阻止模型为新任务学习新知识,这导致以后任务的性能次优。
    为了克服这一限制 (Kirkpatrick et al. (2017)) 提出了一种名为弹性权重整合(EWC)的方法,该方法通过当前任务的Fisher信息矩阵将每一步的模型参数与模型参数正则化,能够为这两个任务找到一个好的解决方案。 (Zenke et al. (2017))提出了类似的方法,但他们的方法是在线计算每个突触本身的整合,并考虑整个学习轨迹,而不是最终的参数值。
    另一种防止灾难性遗忘的方法是完全阻止对前一个网络的任何修改,就像Rusu等人所做的那样。 Rusu et al. (2016),在每个学习阶段,网络扩展为具有固定容量的子网络,该子网络通过原始网络的权值进行训练,但不向其反向传播。

  2. 动态网络拓展
    目前的工作很少探索神经网络可以在训练过程中动态增加其能力的神经网络。

  • 周等人(2012)提出,通过添加一组损失较大的困难样本,逐步训练新的神经元,然后将它们与其他神经元合并,以防止冗余。(这里的样本我认为应该是差异很大的,才能造成loss大)

  • 最近,Fhilpp&Carbonell(2017)提出了一个非参数神经网络模型,它不仅可以学习最小化损失,而且可以找到每一层可以减少损失的最小维数,假设每一层都有无限数量的神经元。(每层的维数在变化,像是单独学习了不同的网络?)

  • Cortes等人。(2016)还提出了一个基于增强理论的自适应学习结构和权重,以最小化给定的损失。

  • 然而,这些工作都没有考虑到多任务设置,并涉及到添加神经元(或神经元集)的迭代过程,而我们的方法只需要为每个任务训练一次网络,以决定需要添加多少神经元。

  • Xiao等人。(2014)提出了一种逐步训练网络进行多类分类的方法,该网络不仅容量增长,而且随着新类到达模型而形成层次结构。然而,该模型只生长和分支最上面的层,而我们的方法可以增加任何一层的神经元数量。

算法
对于连续来的T个任务,每个任务有Nt个样本,每个样本d维,方法使用了分类标签01.
在终身学习设置中,主要的挑战是,所有以前到t−1的训练数据集在当前时间t不可用(只有之前任务的模型参数可以访问,如果有的话)。t的终身学习代理旨在通过解决以下问题来学习模型参数Wt:
minimize⁡WtL(Wt;Wt−1,Dt)+λΩ(Wt),t=1,…\underset{\boldsymbol{W}^{t}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}^{t} ; \boldsymbol{W}^{t-1}, \mathcal{D}_{t}\right)+\lambda \Omega\left(\boldsymbol{W}^{t}\right), \quad t=1, \ldotsWtminimize​L(Wt;Wt−1,Dt​)+λΩ(Wt),t=1,… (1)

Ω(Wt)\Omega \left( {W}^{t} \right)Ω(Wt)是正则项,L是损失函数,W^t是任务t 的网络参数,Dt是训练集

为了解决终身学习的这些挑战,我们让网络最大限度地利用从之前任务中获得的知识,同时在积累的知识不能充分解释新任务时动态扩展其能力
图2
动态可扩展网络的增量学习:
左:选择性再训练。DEN首先识别与新任务相关的神经元,并选择性地重新训练与它们相关(黄色部分)的网络参数。
中心:动态网络扩展。如果选择性再训练不能获得低于设置阈值以下的期望损失,我们以自上而下的方式扩展网络容量,同时使用群稀疏性正则化消除任何不必要的神经元。
右图:网络拆分/复制。DEN计算每个单元的漂移pitp^t_ipit​,以识别在训练过程中从原始值漂移过多的单元,并复制它们。(漂移过多代表和原先的任务越来越不相关,为什么复制?)

  • 选择性再训练
    对受新任务影响的权重进行重新训练,对模型进行选择性的再训练。最初(t=1),我们用L1正则化训练网络,以促进权值的稀疏性,这样每个神经元只连接到下面一层的少数神经元:
    minimize⁡Wt=1L(Wt=1;Dt)+μ∑l=1L∥Wlt=1∥1\underset{\boldsymbol{W}^{t=1}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}^{t=1} ; \mathcal{D}_{t}\right)+\mu \sum_{l=1}^{L}\left\|\boldsymbol{W}_{l}^{t=1}\right\|_{1}Wt=1minimize​L(Wt=1;Dt​)+μ∑l=1L​∥∥​Wlt=1​∥∥​1​ (2)
    小l表示网络第l层,W是tensor,WltW_l^tWlt​是第l层 的网络参数。对于卷积层,我们在滤波器上应用2,1范数,从前一层中只选择几个滤波器。(???)

    保持Wt−1W^{t-1}Wt−1稀疏,当新任务到来,可以只关注子网的连接从而降低计算量。(每个任务到来后,都只是在最后一层网络中添加一个线性分类器)

为此,当一个新的任务t到达模型时 ,拟合一个稀疏线性模型,使用神经网络的最顶部隐藏单元来预测任务t:
minimize⁡WL,ttL(WL,tt;W1:L−1t−1,Dt)+μ∥WL,tt∥1\underset{\boldsymbol{W}_{L, t}^{t}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}_{L, t}^{t} ; \boldsymbol{W}_{1: L-1}^{t-1}, \mathcal{D}_{t}\right)+\mu\left\|\boldsymbol{W}_{L, t}^{t}\right\|_{1}WL,tt​minimize​L(WL,tt​;W1:L−1t−1​,Dt​)+μ∥∥​WL,tt​∥∥​1​ (3)
计算第t个任务的第L层(最后一层)的参数,需要用到第t-1个任务(前一时刻)的除了第L层的所有数据,并使计算参数层保持稀疏。(前L-1层相当于共享层,这样做训练了任务t在先前任务中的共享部分,去除了一些噪声,当然还有一部分独有的并没有学习到。如果独有的部分比较多,这种情况会在下面的章节讲到)

一旦我们在这一层建立了稀疏连接,我们就可以识别网络中受训练影响的所有单位和权重,而保持网络中没有连接的部分不变。具体来说,我们从那些选定的节点开始对网络进行广度优先搜索(构建这种稀疏的连接有助于识别那些在模型其他部分受到影响的神经元)。然后,我们只训练所选子网S的权值,记为WStW_S^tWSt​:
minimize⁡WStL(WSt;WSct−1,Dt)+μ∥WSt∥2\underset{\boldsymbol{W}_{S}^{t}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}_{S}^{t} ; \boldsymbol{W}_{S^{c}}^{t-1}, \mathcal{D}_{t}\right)+\mu\left\|\boldsymbol{W}_{S}^{t}\right\|_{2}WSt​minimize​L(WSt​;WSct−1​,Dt​)+μ∥∥​WSt​∥∥​2​
(在子网中,这种部分再训练将导致更低的计算开销,也有助于避免负转移,因为未被选择的神经元不会受到再训练过程的影响。)

  • 动态网络扩展
    上一步:如果新任务与旧任务高度相关,或者从每个任务中获得的聚合部分知识足以解释新任务,那么仅进行选择性再训练就足以完成新任务。
    这一步:然而,当学习到的特征不能准确地表示新任务时,需要引入额外的神经元到网络中,以解释新任务所必需的特征。
    方法:使用组稀疏正则化来动态决定每个任务在哪个层添加多少神经元
    Wlt=[Wlt−1;WlN]\boldsymbol{W}_{l}^{t}=\left[\boldsymbol{W}_{l}^{t-1} ; \boldsymbol{W}_{l}^{\mathcal{N}}\right]Wlt​=[Wlt−1​;WlN​]
    Wl−1t=[Wl−1t−1;Wl−1N]\boldsymbol{W}_{l-1}^{t}=\left[\boldsymbol{W}_{l-1}^{t-1} ; \boldsymbol{W}_{l-1}^{\mathcal{N}}\right]Wl−1t​=[Wl−1t−1​;Wl−1N​]
    意思是对任务t的l层来说,保留了上时刻的l层参数,并且新加了几个参数N(扩展权重矩阵)。
    由于想添加的参数是不固定的,提出解决方案–组稀疏
    minimize⁡WlNL(WlN;Wlt−1,Dt)+μ∥WlN∥1+γ∑g∥Wl,gN∥2\underset{\boldsymbol{W}_{l}^{N}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}_{l}^{\mathcal{N}} ; \boldsymbol{W}_{l}^{t-1}, \mathcal{D}_{t}\right)+\mu\left\|\boldsymbol{W}_{l}^{\mathcal{N}}\right\|_{1}+\gamma \sum_{g}\left\|\boldsymbol{W}_{l, g}^{\mathcal{N}}\right\|_{2}WlN​minimize​L(WlN​;Wlt−1​,Dt​)+μ∥∥∥​WlN​∥∥∥​1​+γ∑g​∥∥∥​Wl,gN​∥∥∥​2​ (5)
    其中g∈G是在每个神经元的传入权重上定义的一个组。

在完成选择性再训练后,网络检查损失是否低于一定的阈值。如果不是,那么在每一层上,我们通过k个神经元扩展其容量,并求解公式5。由于公式5中的群稀疏性正则化,被认为在训练中不必要的隐藏单元(或卷积滤波器)将被完全丢弃。期望该模型捕获了以前Wlt−1W_l^{t−1}Wlt−1​没有表示过的新特征,以最小化残差,同时通过避免添加太多的单元来最大限度地利用网络容量。

  • 网络分裂/复制
    多个任务的学习会导致semantic drift, or catastrophic forgetting(学着后面忘着前面,导致性能退化),最常用的解决方式是加2范数
    minimize⁡WtL(Wt;Dt)+λ∥Wt−Wt−1∥22\underset{\boldsymbol{W}^{t}}{\operatorname{minimize}} \mathcal{L}\left(\boldsymbol{W}^{t} ; \mathcal{D}_{t}\right)+\lambda\left\|\boldsymbol{W}^{t}-\boldsymbol{W}^{t-1}\right\|_{2}^{2}Wtminimize​L(Wt;Dt​)+λ∥∥​Wt−Wt−1∥∥​22​ (6)
    让当前学习的权重和之前不要变化太多。 缺点:如果任务的数量很大,或者以后的任务在语义上与以前的任务不同,可能会很难为以前和新的任务找到一个好的解决方案。
    新方案:分裂神经元。执行公式(6)之后,测量每个隐藏单元i的语义漂移量,ρitρ^t_iρit​,作为t-1和t时传入权值之间的L2-距离。如果距离超出阈值,我们认为该特征的意义在训练过程中发生了显著的变化,并将这个神经元i分成两个拷贝(适当地引入来自和重复的新边缘)。此操作可以对所有隐藏单元并行执行。在神经元的复制之后,网络需要通过求解方程6来再次训练权值。
    (对新添加的单元会增加一个时间戳,进一步防止引入新隐藏单元引起的语义漂移。在推理时,每个任务将只使用在t阶段之前引入的参数,以防止旧任务使用在训练过程中添加的新的隐藏单元。)

  • 实验略

(小白本人,写博客为了记录看过的文章,翻译+理解,刚入门,理解不到位多包涵。欢迎友好指正讨论~)

Lifelong learning with dynamically expandable networks - 使用动态可扩展网络的终身学习-不完全记录相关推荐

  1. 【基础论文笔记二】Transfer Learning with Dynamic AdversarialAdaptation Network(2019 ICDM)动态对抗适应网络的迁移学习论文笔记

    背景 现有的对抗性领域自适应方法要么学习单个领域鉴别器来对齐全局源和目标分布,要么关注基于多个鉴别器的子域对齐.然而,在实际应用中,域之间的边际(全局)分布和条件(局部)分布对适应的贡献往往不同.在本 ...

  2. 什么是终身学习(Life Long Learning / Continuous Learning / Never Ending Learning / Incremental Learning)

    文章目录 1. 概念区分 1.1 Life Long v.s. Multi task 1.2 Life Long v.s. Transfer 2. 终身学习 2.1 Selective Synapti ...

  3. 《Continual lifelong learning with neural networks : A review》阅读笔记

    增量学习更多的起源于认知科学神经科学对记忆和遗忘机制的研究,Continual lifelong learning with neural networks : A review综述探讨了增量学习在生 ...

  4. Continual Learning/Lifelong Learning/Incremental Learning

    一.浅谈持续学习 持续学习(Continual Learning)又叫终身学习(Lifelong Learning)又叫增量学习(Incremental Learning).增量学习是可取的,因为它允 ...

  5. Why choose lifelong learning in medical images?(附3篇论文翻译)

    Why choose lifelong learning in medical images? 最近几年顶会上将lifelong用在medical images中的文章,可参考,附abstract和i ...

  6. lifelong learning 部分总结

    注: 深度学习领域小白,文章如有问题,欢迎批评指正. 部分翻译论文(Continual lifelong learning with neural networks: A review)发表在 Neu ...

  7. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

  8. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  9. AdaNet: Adaptive Structural Learning of Artificial Neural Networks

    AdaNet: Adaptive Structural Learning of Artificial Neural Networks tf的轻量级框架AdaNet,该框架可以使用少量专家干预来自动学习 ...

  10. 论文阅读笔记:ProjectionNet: Learning Efficient On-Device Deep Networks Using Neural Projections

    提示:阅读论文时进行相关思想.结构.优缺点,内容进行提炼和记录,论文和相关引用会标明出处. 文章目录 前言 介绍 相关工作 神经投影网络(Neural Projection Networks) Pro ...

最新文章

  1. 拼音转汉字 和 字符编码测试
  2. 【Java虚拟机】Java虚拟机深度讲解、VisualVM工具、JVM调优
  3. echo字符集 shell_Xshell 能显示中文 但输入的中文都变成了问号
  4. http拨测是什么意思_HTTP 501 是什么意思?
  5. 同时多个axios请求_用 React+Antd 封装 Axios 实现全局 Loading 效果
  6. Bootstrap页面布局17 - BS选项卡
  7. 基于队列的二叉树层次遍历
  8. nginx解析php详细教程,Nginx与PHP交互过程步骤详解
  9. Qt Qml 开发超高清 4K、8K 视频直播视频客户端
  10. 【学习教程】CMIP6数据处理方法与典型案例分析
  11. python linspace函数_等差数列与linspace函数
  12. python 线性插值处理_python线性插值解析
  13. 10月全球搜索引擎市场份额:Google、Bing份额大涨
  14. webpy模版中写JS代码的陷阱
  15. css如何实现圆角边框
  16. Blender 3.5 全新逼真视觉效果
  17. 怎么购买拼多多上架助理?拼多多上架助理好用吗?
  18. 【酷热高温教你给显卡降降温】
  19. 参数化Casper:介于去中心化/最终化时间(finality time)/开销之间的权衡
  20. 农信银新版系统使用手册-个人网银-配置项(控件类)IE浏览器

热门文章

  1. 梵语和藏语_《百字明》梵文和藏文发音区分
  2. PHP设置表格框线,ppt中表格边框线条怎样设置?
  3. speedoffice(PPT)插入的表格怎么拆分单元格
  4. 测试技术 --黑盒测试与白盒测试
  5. 01 牛顿迭代公式
  6. 鸿蒙分布式内核,鸿蒙系统:微内核,分布式
  7. HP LaserJet 1010 安装方法
  8. win10添加网络打印机_windows10安装Hp1010/1012/1015打印机教程
  9. 运放输入偏置电流方向_运算放大器的输入偏置电流
  10. 让微积分穿梭于工作与学习之间(7):我自认为牛逼的成果之三:直接用定义求正切函数的导数