Pérez-Sánchez, B., Fontenla-Romero, O., & Guijarro-Berdiñas, B. (2016). A review of adaptive online learning for artificial neural networks. Artificial Intelligence Review, 49(2), 281-299.
这个文章结构还是比较清晰的,遗憾的是算法的描写太没有区分度了Q Q,绝大多数都看不出特点和贡献在哪里,所以笔记中也没法详写,只是列出作者觉得重要的工作和一些简单的描述。
第一部分:引言
传统的神经网络通常是一次性把网络训练好,然后投入使用。但是有的时候,用来训练的数据是不可能一次性得到的,或者一直在增加和变化的,这种情况就没法一次性进行训练。比如经济形势分析,气象分析,反欺诈,交通管理,用户行为预测等等。
Batch learning,即前面说到的一次性学完所有数据的方法,当新的数据出现时,需要从头开始重新训练(Esposito et al. 2004)。显然这种方法是不经济的,它受到几方面的限制。
- 每次学习的过程都要重新处理所有的学习材料
- There are no temporal restrictions to completely adjust the model.
- The input data do not suffer from changes, hence the learnedmodel does not need further updates.
因此我们需要研究这种场景下如何更有效的学习,这种学习成为在线学习。在线学习的概念有这么几种不同的定义:
- 数据大规模变化的学习过程
- 大数据的处理
- 连续获取的数据流的处理
在动态变化的环境中,有可能数据的分布会随着时间改变,可以看作是“概念调整(concept drift)”(Klinkenberg 2004;Widmer and Kubat 1996)。
有些情况下,概念的调整只在有限的几个可能性之间切换,Deterministic learning (DL) theory (Wang and Hill 2006)提出的就是把几个可能的状态进行分别的训练,然后要用的时候就调用最接近的那个,而不需要重新训练了(Zeng et al. 2014, 2016; Zeng and Wang 2015)。
但是通常情况下,概念的改变意味着对于相同的输入,我要给出不同的输出了。这个模型需要在稳定性和适应性两个特性之间平衡(Grossberg 1987; Robins 2004)。要保持概念的不断更新,最好是模型能赋予新来的数据更大的权重(Kubat et al. 2004)。因此在动态变化的环境中学习也得到了很多关注,并已经发表了很多重要的工作(Bottou 2004; LeCunn et al. 1998; Moller 1993; Rosenblatt 1958)。
传统的人工神经网络最主要的问题就是在训练完之后,不能再根据新数据自适应地调整控制参数和网络结构。所以在线学习的方法主要分为:
- 参数适应(不改变结构的情况下调整参数)
- 结构调整(增减神经元或者链接)
这篇综述对于解决在线学习的问题的历史进行了一个综述,内容的框架如下:
- 第二部分:人工神经网络的简介和传统的训练算法
- 第三部分:在线学习的算法
- 第四部分:参数适应的方法
- 第五部分:结构适应的方法
- 第六部分:一些问题和挑战
- 第七部分:总结
第二部分:人工神经网络的简介和传统的训练算法
这块就算讲了一下传统的FNN,batch learning的方法。要对这些网络进行改造,让他们可以完成在线学习的任务,需要他们具备以下几个特点:
- 有支持在线学习的网络容量
- 可以进行参数调整
- 可以进行结构调整
第三部分:在线学习的算法
Normalized least-mean-square (NLMS) (Nagumo and Noda 1967) 最早的滤波器自适应算法。我没看出来为什么是自适应,可能是因为是古早的算法
Online sequential extreme learning machine (OS-ELM) (Huang et al. 2006; Liang and Huang 2006) 单层隐藏层的网络,第一部分为通过少量的训练样本,利用ELM算法计算并初始化输出权重 ;第二部分开始在线学习,每次当一个新的数据样本到来时,通过一个递推公式得到新的输出权重,从而实现在线且快速的训练。
机器或者生物学习可以不需要调整隐层节点:给定任何连续目标函数或者可分类目标,只要前馈神经的隐层节点是非线性阶段连续的,神经网络无需调整隐层节点就能任意逼近目标连续函数或者对分类目标加以区分。这个没有特别懂
Jain et al. (2014) 之前一个监督神经网络的在线学习综述。
Jain LC, Seera M, Lim CP, Balasubramaniam P (2014) A review of online learning in supervised neural networks. Neural Comput Appl 25:491–509
第四部分:参数适应的方法
Concept drift (Gama et al. 2013) 输入不变的情况下输出会变。这种变化有可能是突变也有可能是渐变。一个好的预测模型应该具有如下属性:
- 快速适应变化,及时的环境变化检测
- 区分噪声和环境变化
- 识别重复出现的环境,并快速的适应
目前对这个问题的解决方法主要可以分成三类(Ditzler et al. 2015; Gama 2010)。
- Instance selection (sliding windows)
- Instance weighting (forgetting factor)
- Classifier ensembles
Instance selection (sliding windows)
包含哪些新来的数据是窗口的大小决定的。窗口大小的算法不论是固定的还是动态变化的都不是很方便。
Alippi and Roveri (2008) 认为窗口大小由预期的变化率来决定,但是后人的研究发现最好的方法是由在线适应学习的方法决定(Alippi et al. 2011, 2012, 2013; Bifet and Gavalda 2006, 2007; Gama et al. 2004)。
Kuncheva and Žliobaite (2009) 的工作围绕如何根据分类器和数据的特点来决定窗口大小,取得了一定的进展。
Instance weighting (forgetting factor)
通过赋予新老数据不同的权重也可以改变学习的结果。
Martínez-Regoet al. (2011)引入了一个遗忘的概念,让新数据对学习的结果产生更大的影响。还是要重新学?Plavidis et al. (2011) Ghazikhani et al. (2014) 也是遗忘的方法。
Classifier ensembles
分类器整合集合了各种分类器的优势。比如当环境变化的时候用一个新的分类器训练,同时保留老的,这样当老的环境再次出现,也可以快速的适应。
这种分类方法的有效性和稳定性得到了验证(Ditzler et al. 2013, 2014).。但它的问题是占用大量计算资源。
Bouchachia (2011)提出三个层级的结构:
- 底层的分类器根据环境变化
- 每个分类器贡献度的适应性变化
- 所有分类器集合的结构性变化
还有其他和ensembles相关的工作Brzezinski and Stephanowski (2014), Ditzler et al. (2013) and Elwell and Polikar (2011)。
第五部分:结构适应的方法
训练数据的数量和复杂度不同,最佳的网络大小是不一样的。网络过大会导致过拟合的问题,而要确定网络的大小,如果逐一的尝试和调试是计算量很大的事情。另一方面,在线学习也需要根据数据在线调整网络结构,而不是一直用一个静态的结构。
主流的方法可以分为如下几类:
- 构造法(Constructive algorithms) 初始是小网络,随着学习慢慢增加隐藏层的细胞数量和链接,直到识别效果收敛
- 剪枝法(Pruning algorithms) 初始是大网络,学习中用不到的层和节点就剪掉
- 混合法(Hybrid methods) 前两个方法的结合,一边增加一边剪枝。
- 正则法(Regularization techniques) 在损失函数中增加网络复杂度的约束。难点是正则化函数的选择。一般也和前几种方法结合使用。
(Kwok and Yeung 1997) 描述了剪枝和构造相比的几个缺点:
- 初始化多大的网络是个谜
- 计算量大
- 构造通常比剪枝找到的网络更小
- 剪枝之后会增大error
- 剪枝之后要重新调参
5-1 构造法(Constructive algorithms)
一般步骤
- 初始只有3层,输入输出层都是根据数据和任务决定,隐藏层只有一个细胞
- 初始化所有细胞的值和连接的权重
- 训练网络
- 达到训练目标则停止,没有则继续
- 添加神经元的标准是否达到,没达到就回第三步,达到就继续
- 添加一个神经元,给初始化,然后回第三步
需要关注的问题
- 如何添加新的神经元 在原有的层上增加,还是加一个新层?(Hornik et al. 1989)认为神经数量够的话,单层就够了,但是并没有说明这个够的数量是多少。(Chentouf and Jutten 1996)认为从学习效率的角度考虑,两者都有增加是最好的。
- 新的连接如何改变权重 有两类方法,一类是老的和新的权重一起变,另一种是只改变新增的权重,把老的冻住。
- 如何判断当前是不是最合适的网络结构 一般有两种判断方法,一种是增加一个神经元,绩效的提升达不到期望了;另一种是整体的错误率低于一个给定的阈值。
几个经典的构造算法
- MaandKhorasani (2003) adaptively constructing multilayer FNN 当误差不再减小的时候停止改变结构。
- García-Pedrajas and Ortiz-Boyer (2007) 把老的网络结构和新学的结合起来。
- Huang and Chen (2008) enhanced incremental extreme learning machine (EI-ELM) 先多初始化几个,然后挑一个误差最小的。
- Qiao and Han (2010) repair radial basis function algorithm (RRBF) 根据输出判断是否更改结构,通过训练调整全网络参数。有什么特别的?
- Zhang et al. (2012) automatic designing of the network (AG-ELM) 隐藏层的神经元数量动态变化,以达到更好的结果。
最近新的算法
- Subirats et al. (2012) 用热感知器规则(thermal perceptron rule)保证旧知识的稳定性,并且所有的细胞在竞争输入的信息。因为新知识和老的知识很接近,老的细胞还是可以继续学习 (Ortega-Zamorano et al. 2014, 2015)。具体是怎么做的?
- Pérez-Sánchez et al. (2013, 2014, 2015) 新提出的结构有很好的性质,可以在静态和动态的环境中工作,并且在添加神经元的时候可以保留老的信息。参考Vapnik–Chervonenkis dimension
其他工作。Bertini JuniorandNicoletti (2016),Qiaoet al. (2016), and Wang et al. (2015b)
总的来说构造法还是很有效的,但是需要明确终止添加神经元的条件是什么,避免陷入过拟合的状况,或者只得到局部最优。
5-2 剪枝法(Pruning algorithms)
一般步骤
- 先建立一个特别大的网络
- 初始化参数
- 训练网络直到收敛
- 剪去贡献度不大的细胞
- 继续训练直到error和之前一样
- 重复第四步和第五步,直到修剪的网络没法训练到和之前的error一样小
几个经典的剪枝算法
- optimal brain damage (OBD) (Cun et al. 1990), optimal brain surgeon (OBS)(Hassibi and Stork 1993) 参考剪枝算法的综述
- subset-based training and pruning (SBTP) (Xu and Ho 2006) 正交分解,分析主元
- extended Fourier amplitude sensitivity test method (EFAST) (Lauret et al. 2006) 傅里叶分解找不重要的元素
- optimally pruned extreme learning machine (OP-ELM) (Yoan et al. 2010) leave-one-out criterion 更Robutst的算法
最近的算法
- Augasta and Kathirvalavakumar (2011)
- Thomas and Suhner (2015)
- Augasta and Kathirvalavakumar (2013) 剪枝算法综述
5-3 混合法(Hybrid methods)
一般步骤
- 先用构造算法形成初步的网络结构
- 计算每个细胞的贡献度
- 再用剪枝算法去除多余的
- 重新训练直到error保持一致
- 重复2-4,直到没法恢复之前的error
目前的算法
- Fritzke (1994) growing cell structure (GCS) 一个非监督的学习和一个监督学习。前者控制网络结构做剪枝,后者根据分类结果来决定怎么添加。
- Huang et al. (2005) generalized growing and pruning RBF (GGAP-RBF)
- Hsu (2008) adaptive growing and pruning neural network (AGPNNC)
- Narasimha et al. (2008) 一边增加一边剪枝。对计算量要求太大。
- Huang and Du (2008) 对 radial basis probabilistic neural networks (RBPNN) 进行了方法上的优化。
- adaptive merging and growing algorithm (AMGA) (Islam et al. 2009) 相关的merge,已有的split。大量减少重新训练。
- Han and Qiao (2013) 傅里叶分解来计算每个细胞的贡献度。
- de Jesus Rubio and Perez-Cruz (2014) 进化的智能系统。数据先聚类,然后每个类用不同的隐藏层细胞。如果一个instance和类的距离隔得太远,就新建一个类,不然就归为最近的那个类。在一定的循环之后,最少被用到的细胞就会被剪掉。
- Marques Silva et al. (2014) fuzzy neuron
- , Qiao et al. (2014) online self-adaptivemodular neural network, known as OSAMNN。受到multiple model approaches (Liu et al. 2008a) 和 localized modeling (Gregorcic and Lightbody 2007) 的启发。single-pass subtractive cluster approach
5-4 正则法(Regularization techniques)
- Peng et al. (2015) 对比了不同的正则化方法
- Wang et al. (2015a) 认为不同的方法会使得结果有很大的差异
5-5 结构修改的终止条件
- 根据training error,小于阈值或者收敛。问题是容易受到测试集等其他因素的bias。
- Singular value decomposition (SVD)的方法是看增加或减少神经元的过程中,某个神经元的贡献度,小于一定阈值就没用(Teoh et al. 2006)。Signal to noise ratio (SNR) 信噪比也是一种分析指标。Liu et al. (2007, 2008b)认为训练数据里面带有一部分符合高斯分布的白噪声,信噪比可以用来衡量过拟合的程度。?咋衡量的
- 几何学的技术和信息熵。有几种不同的方法,Akaike information criterion (AIC), Bayesian information criterion (BIC), root mean squared error (RMSE)andMeanAbsolute Percentage Error (MAPE)。目前研究说明并没有best。
最大的问题还是,这些方法都只能用在batch mode。而且目前也没有答案能回答什么是最优的网络结构。
第六部分:一些问题和挑战
目前还存在的问题
- 现有的模型还没法鉴别concept drift发生的条件(when,how,where)
- 所有的算法都是处理确定的输入数据的,不能处理不确定的情况
- concept drift和noise的区分非常繁琐
如今还面临的新挑战
- 有一种训练情况是开始是有标注数据的,后面的训练中变成无标注的,这个问题还处于非常早期的阶段
- 类别的不平衡在稳定环境下的研究已经很充分了,但是在变化环境中的研究还很初级。(He and Garcia 2009)(Wang et al. 2015b)(Gama et al. 2014)
- 数据和标注不是同时进入网络的情况,综述Ditzler et al. (2015)
- 更复杂的数据标签,比如序数标签,多标签识别
- 目前的方法还没有在大规模的实战数据中检验过
第七部分:总结
总之,现在就是还没有标准统一的方法,未来还有很多值得研究的地方。
网友评论