读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System

一篇2018年澳门大学科技学院前院长陈俊龙先生的论文: Broad Learning System: An Effective and Efficient Incremental Learning System Without the Need for Deep Architecture。作者在题目已表明这是一种颠覆以往纵向神经网络架构的有效且高效的增量学习系统。传统的神经网络通常因为在 filters 和 layers 间有大量参数存在,导致模型训练与扩展阶段十分耗时。因此作者提出Broad Learning System(BLS)宽度学习系统,一种基于Random Vector Functional-link neural networks(RVFLNN)随机向量函数链接神经网络的增量学习模型。

  • 什么是RVFLNN?

                                                     读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第1张图片

上图是对RVFLNN的图解,x 作为Input data被输入到Input Layer, 与常规做法不同,RVFLNN把输入 x 乘上一组随机权重 W 再加一个随机bias,这部分数据经由激活函数处理后,由Enhancement nodes中输出,记作 H。随后把 x 和 H 合并成一个矩阵 A,记作 A = [ x | H ]。此时把A作为输入,乘上另一组权重再加一个bias,传入Output Layer得到最终结果 Y。注意,x乘上的随机权重W在选定后就不再改变。

                                                   读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第2张图片

上图做了一个变形,把Input data 和 Enhancement Nodes 看作一个整体 A,我们知道,AW = Y。由于Input data变换为Enhancement nodes过程中的权重不再改变,整个神经网络的训练其实可以看作由 A 和 Y 求 W 的过程。

由于Input data x 已知,输入层到增强层的权重已知,即 A 也可以求得。由Input data x的标签数量知道输出 Y 的规模。因此,W=A^{-1}Y 可解。

简而言之,RVFLNN就是将原始输入数据 x1 做一个映射后,作为另一组输入 x2,把 x1 和 x2 一起作为输入训练得到输出 Y。


  • 什么是BLS?

Broad Learning System(BLS)基于RVFLNN做了改进,并支持Incremental Learning增量学习。

 

  • 不含增量学习的BLS

                     读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第3张图片

上图是不含增量学习的BLS结构图,其中,Mapped Feature、Mapped Node、Enhancement Node的数量都是人为规定好。共分为3个步骤:

  1. 与RVFLNN不同,输入数据 X 先进行处理(特征提取),把输入数据映射为多个Mapped nodes, 这些nodes可以分类成为 Mapped Feature。图中Z1 .. Zn即为这部分数据,类似与RVFLNN中的输入数据 x。
  2. 把 Z1 .. Zn 乘上一组随机权重W再加上bias,激活函数处理后作为Enhancement nodes的输出,记作H1 .. Hm。这部分与RVFLNN中增强层一致。
  3. 最后把 Z1 .. Zn 与 H1 .. Hm 合并,记作 A = [ Z | H ],输出 Y=AW^{m}

 

  • 包含增量学习的BLS

在上述BLS架构下实现增量学习,即有3个方向可扩展:

  1. Increment of the enhancement nodes(Enhancement node的增加)
  2. Increment of the feature nodes(Feature node的增加)
  3. A new coming input(输入数据的增加)

 

论文对3个扩展方向均提出了对应算法,接下来一一介绍。

  • Increment of the enhancement nodes(Enhancement node的增加)

                  读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第4张图片

当BLS的性能下降,其中一个方法就是引入一个新的Enhancement node记作 P 以降低Loss。

原来的A记作A^{m}=[Z^{n} | H^{m}],引入新节点后,记作。其中W_{h_{m+1}} 和 \ss _{h_{m+1}}

均随机生成,矩阵合并后得到 A^{m+1},从而求得新的权重。增加Enhancement node的伪代码如下:

                                                     读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第5张图片

 

  • Increment of the Feature nodes(Feature node的增加)

                读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第6张图片

上图增加了Mapped Feature的显示,与增加Enhancement node不同。先随机生成W_{e_{n+1}} 和 \beta _{e_{n+1}},用输入数据 X 乘以 W_{e_{n+1}} 再加上 \beta _{e_{n+1}} 得到 Z_{n+1}。然后随机生成W_{e_{xi}} 和 \beta _{e_{xi}} (i = 1 ... m),求得H_{e_{xm}}。从而得到新的 A_{n+1}^{m} (表示n+1组mapped features & m组enhancement nodes)。增加Feature node的伪代码如下:

                                                  读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第7张图片

 

  • A new coming input(输入数据的增加)

读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第8张图片

伪代码如下:

                                                             读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第9张图片    


其中,以上提及的由 W=A^{-1}Y 的求解方式在论文中也有介绍,详细方法如下:

                                                 读书笔记-增量学习-Broad Learning System: An Effective and Efficient Incremental Learning System_第10张图片 

可见,求解新的权重W^{_{n+1}^{m}}会重用上一次的权重W^{_{n}^{m}},因而有效减少更新权重的计算量。


最后,BLS最重要的特点在于单隐层结构,具有“横向扩展”和“增量学习”两大优势。当模型性能下降时,以往的神经网络采用增加Layer或调参,BLS可采用横向扩展的方式,增加新的增强节点、特征节点、输入数据。不需要从头学习,也不会导致灾难性遗忘。因而论文的确如题目所说的 Efficient 和 Effective。

你可能感兴趣的:(读书笔记,神经网络,机器学习,深度学习,人工智能)