极限学习机
2004年提出的机器学习系统或方法
极限学习机(Extreme Learning Machine, ELM)或“超限学习机”是一类基于前馈神经网络(Feedforward Neuron Network, FNN)构建的机器学习系统或方法,适用于监督学习非监督学习问题。
历史
极限学习机(Extreme Learning Machine, ELM)在2004年由南洋理工大学的Guang-Bin Huang、Qin-Yu Zhu和Chee-Kheong Siew提出,并发表于当年的IEEE国际交互会议(IEEE International Joint Conference)中,目的是为了对反向传播算法(Backward Propagation, BP)进行改进以提升学习效率低并简化学习参数的设定。2006年,ELM原作者在对算法进行了进一步的测评后,将结论发表至Neurocomputing并得到了关注。
ELM提出时是为监督学习问题而设计的,但在随后的研究中,其应用范围得到了推广,包括以聚类为代表的非监督学习问题,并出现了具有表征学习能力的变体和改进算法。
结构
ELM可以作为一种学习策略(例如对BP框架的改进),也可作为一类神经网络构筑进行论述。对于后者,标准的ELM使用单层前馈神经网络(Single Layer Feedforward neuron Network, SLFN)的结构。具体地,SLFN的组成包括输入层、隐含层和输出层,其中隐含层的输出函数具有如下定义:
这里 为神经网络的输入、 为输出权重, 被称为特征映射或激励函数(activation function),其作用是将输入层的数据由其原本的空间映射到ELM的特征空间:
式中 和 是特征映射的参数,在ELM研究中也被称为节点参数(node parameter),其中 为输入权重(input weights)。由于ELM中输入层至隐含层的特征映射是随机的或人为给定的且不进行调整,因此ELM的特征映射是随机的。依据通用近似定理,特征映射可以是任意非线性的片段连续函数(piecewise continuous function),常见的有:
不同的隐含层节点可以有不同的映射函数,神经网络的节点也由其具有的特征映射命名,例如Sigmoid节点、径向基函数节点等。除上述映射函数外,SLFN的节点也可以是其它经过封装的计算单元,例如模糊推理系统(fuzzy inference system)和其他次级神经网络。
算法
标准算法
ELM仅需求解输出权重,因此是一个线性参数模式(linear-in-the-parameter model),其学习过程易于在全局极小值收敛。已知N组学习数据,对包含L个隐含层节点和M个输出层节点的ELM进行学习有如下步骤:
ELM使用的L2误差函数(L2 loss function)有如下表示:
这里 为输出矩阵, 为训练目标, 为矩阵元素的弗罗贝尼乌斯范数(Frobenius norm)。引入L2正则化项后,上式改写为:
其中 为正则化系数(regularization coefficient)求解该误差函数等价于岭回归问题,其解有如下表示:
此外奇异值分解(single value decomposition, SVD)也可用于求解权重系数:
式中 为 的特征向量, 为 的特征值。研究表明相对较小的权重系数能提升SLFN的稳定性和泛化能力。
这里以Python 3为例对ELM标准算法进行编程实现:
ELM算法中求解输出权重的过程中有矩阵求逆的步骤。由于映射函数的初始化是随机的,因此在实际计算中经常出现矩阵无法求逆的现象。在理论上只要设定较大的正则化参数,需要求逆的矩阵将始终是正定矩阵,但是过大的正则化系数会影响ELM的泛化能力。一个可行的改进方案,是在映射函数随机初始化的过程中,仅选择能使隐含层输出矩阵达到行满秩或列满秩的参数。这一改进可见于径向基函数和Sigmoid函数中。
改进算法
动态算法
ELM中特征映射的随机初始化为其带来了泛化的优势,但也意味着相比于梯度下降算法,ELM的神经网络需要更多的节点。节点的增加带来了计算量的增加,在训练数据大时,冗余的节点会额外消耗计算资源,并可能出现过拟合(overfitting)。为解决上述问题,有研究在原有ELM算法的基础上提出了动态学习的解决方案,即在训练过程中不断改变隐含层节点数,以平衡经验风险和结构风险。包含上述动态学习功能的改进包括增量式ELM(Incremental ELM, I-ELM)、双向ELM(Bidirectional ELM, B-ELM)和自适应ELM(Adaptive ELM, A-ELM)等。
以I-ELM为例,在开始阶段,SLFN会被赋予一个可容忍的最简结构,随后整个学习过程以迭代方式进行,每一次迭代都会随机产生数个备选节点,而对缩小学习误差贡献最大的一个节点会被选中并加入SLFN中进行下一次迭代,这样当学习误差迭代至预先设定的精度时,SLFN中不会有多余的节点。
一些动态算法,例如I-ELM和自适应ELM能够使用常见的激励函数,而且被证明和标准算法一样,保持了SLFN的通用近似定理。
在线序列ELM
在线序列ELM(Online Sequential ELM,OS-ELM)是可以使用实时数据进行学习并更新输出权重的ELM算法。OS-ELM的运行分为两部分,首先,OS-ELM像ELM标准算法一样通过给定的训练数据计算输出权重;随后在在线学习的过程中,每当有新的数据块被接收,就重新运行一次ELM并得到新的输出权重,最后新旧输出权重会进行组合从而完成对神经网络的更新,有些算法会在更新数据时加入遗忘函数。这里给出一个OS-ELM的简单例子:
输入:学习数据 ;输出:完成学习的ELM
初始化阶段:定义 ;使用初始的学习数据和ELM标准算法计算输出矩阵 和输出权重 ;定义
在线学习阶段:当第 组学习数据可用时,计算新的输出矩阵 ,其中 为使用第 组学习数据独立计算所得的输出矩阵。最后计算新的输出权重 ,其中
偏斜与噪声数据的改进算法
神经网络可能对训练数据的质量和标准化程度敏感。偏斜数据难以被转化至标准正态分布,会降低神经网络的学习效率;噪声数据包含过多除学习目标以外的信息,会降低神经网络的泛化能力。加权ELM(Weighted ELM, W-ELM)是在分类问题中为应对偏斜数据对标准ELM进行改进的算法。加权ELM与标准算法的区别在于误差函数的构建,标准算法中的正则化参数为一常数,而加权ELM将其修改为与输入数据大小相同的矩阵,矩阵的元素被称为惩罚系数(penalty coefficients)。惩罚系数能够弱化偏斜数据中的多数成员对算法的影响。加权ELM的误差函数可有如下表示:
式中 即为惩罚系数。在加权ELM的基础上,有研究提出了重加权ELM(re-weighted ELM),即以迭代方式加权的ELM算法。重加权ELM被证明具有更好的稳定性,能够解决训练数据中的异常值问题。
噪声数据可理解为真实数据与扰动的叠加,对扰动在ELM算法中传播的研究表明,使用特定的方式选取映射函数和输入权重,能够降低输入噪声对输出矩阵和输出权重的影响。由此提出的FIR-ELM(Finite Impulse Response filte ELM)和DFT-ELM(Discrete Fourier Transform ELM)在初始化输入层权重时使用了滤波技术,提高了算法对噪声数据的稳定性。
扩展算法
ELM模式集合
将机器学习方法进行模式集合的方法适用于ELM。常见的模式集合方法包括取平均、投票制(voting)、迭代(boosting)等,这里以分类问题中的投票制的ELM模式集合进行说明:
输入:学习数据 、测试数据 和 个ELM;输出:测试数据的学习结果
学习过程:使用学习数据对每个ELM进行独立的训练;测试过程:使用ELM对测试数据进行分类,汇总分类结果,输出被分最多的类别。
非监督学习ELM
ELM可以通过流型正则化(manifold regularization)得到面向聚类和字符嵌入(embedding)问题的非监督ELM(unsupervised ELM, US-ELM)。具体地,US-ELM的误差函数中加入了流型正则化项( ):
其中 是无标签学习数据的拉普拉斯矩阵(graph Laplacian)上述优化问题被证明等价于一次广义特征值求解(Generalized Eigenvalue Problem, GEP):
输出权重矩阵可以从第二组到第 组特征向量中获得:
对嵌入问题,US-ELM将直接输出嵌入矩阵;对于聚类问题,US-ELM使用K-均值算法(k-means algorithm)对嵌入矩阵中的数据进行聚类。
具有深度结构的ELM
ELM能够以堆栈自编码器(stacked autoencoders)的形式得到深度结构。在进行学习时,深度ELM前端的数个隐含层使用ELM训练堆栈自编码器对输入变量进行表征学习,并在最后一个隐含层中使用ELM对编码后的特征进行解码。深度ELM在图像处理等问题中的表现被证实优于ELM传统算法。此外,在获得深度结构后,ELM也可以仅进行特征学习并将编码的特征输出至其它算法。包含ELM的深度学习框架在计算机视觉问题,例如基于MNIST手写字符数据的图像分类问题中有得到尝试。
性质与理论
插值与泛化性质
在ELM的插值理论研究中有如下结论:给定任意无限可导的激励函数,对于N组训练数据 ,存在隐含层节点数小于N的SLFN,在由ELM学习后,训练误差能逼近任意精度,且当SLFN隐含层节点数与训练数据相同时,训练误差为零。这里的激励函数的参数 可以由服从任意连续概率分布的随机数在ELM学习中初始化。上述结论表明,从插值角度而言,只要隐含层节点数足够,ELM能够使得SLFN以任意精度拟合给定的训练数据
ELM具有泛化能力,其原因被认为是算法中对特征映射参数的随机初始化增强了各输入特征的相互独立性,创造了一个更大的求解空间,从而有利于SLFN找到正确的目标函数进行学习。对于回归问题,研究表明,在使用多项式函数Sigmoid函数和Nadaraya–Watson函数作为映射时,ELM较好地保持了SLFN原本的泛化能力;若使用高斯类函数作为映射,ELM的泛化能力将会降低,但使用正则化和模式集合技术能够补偿泛化能力的损失。按统计学习理论,ELM被认为具有较小的VC维(Vapnik–Chervonenkis dimension),即ELM在泛化时拥有较小的实际风险(actual risk)上限。具体地,对于包含L个无限可导特征映射节点的ELM具有L个V-C维度,在泛化时,其 概率下的实际风险为:
式中 为训练数据样本数, 为V-C维度, 为训练数据所得的经验风险(empirical risk)
通用近似定理
ELM中SLFN的特征映射是随机的,但其服从通用近似定理。对回归问题,ELM的通用近似定理可有如下表述:
对任意的非常数片段连续特征映射 如果 在 空间稠密,则 ,即SLFN可以无限趋近于任意连续的目标函数。这里特征映射序列 可以由服从任意连续概率分布随机数在ELM学习中初始化。
ELM的通用近似定理适用于常见的激励函数,且不要求激励函数出处连续可导,阈值函数(threshold function)可以作为ELM的激励函数。
对于分类问题,ELM的通用近似定理可以有如下形式:
对任意特征映射 ,如果 在 维实数空间 或其紧致集 上稠密,那么隐含层包含随机初始化 的泛化SLFN能够区分在 或 上任意数量和形状的不相交区域(disjoint region)。
ELM在分类问题上的通用近似定理表述意味着,ELM在理论上能够无限趋近任意的决策边界(decision boundary)。
生物学相似性
ELM被认为包含了生物学习的某些机制。例如在小鼠的实验中,不同嗅觉信号从嗅小球(glomeruli)至嗅脑(piriform cortex)的映射被认为是分散和无差别的,即神经元对信号的加工与环境无关,这与ELM的输入权重独立于输入数据和学习过程具有相似性。类似的学习机制在猴子的决策行为中也有出现。
按Huang (2014),ELM命名的含义是“超越和打破传统机器学习与生物学习间的障碍”:
(原文)‘‘ ‘Extreme’ here means to move beyond conventional artificial learning techniques and to move toward brain alike learning. ELM aims to break the barriers between the conventional artificial learning techniques and biological learning mechanism.”
ELM与生物学习过程间的相似性被认为影响了RKS(Random Kitchen Sinks)和No-Prop(No-Propagation)等机器学习算法。
有关概念与比较
ELM在研究中可以与支持向量机(Support Vector Machine, SVM)和使用反向传播算法(Back-Propagation, BP)的单层感知机,即BP神经网络相比较,一般性的监督学习结果表明,ELM在学习速率和泛化能力上可能具有优势。
反向传播算法
在与BP神经网络,或反向传播算法的比较中,ELM的学习速率是前者的十倍以上,具有效率优势,但在误差方面,ELM与BP的学习误差相近,没有显著提升。在基于回归问题的测试和比较研究中,ELM的学习表现可能超过BP算法,也可能略低于BP算法。
支持向量机
支持向量机是常被用于和ELM进行比较的算法,这里列出一些两者的不同:
ELM算法包含直接的特征映射并且输入层,隐含层和输出层是连接的;SVM基于核方法(kernel method)的特征映射是间接的,不考虑特征在神经网络各层的连接。SVM在求解时通过构建超平面(hyperplane)对数据进行分类;而ELM的输出层没有误差节点,也没有上述过程。
ELM使用岭回归求解输出权重;SVM使用最大边距优化(maximal margin optimization)给出结果。ELM可以直接求解多元分类(multiclass classification);而SVM需要将多元分类转换为二项分类(binary classification)进行求解。
按一些研究的个例分析,ELM与SVM的学习误差相当,但ELM的计算复杂度更低要快于SVM。
评价
谷歌学术在2017年5月推出的“Classic Papers: Articles That Have Stood The Test of Time”测评活动中,与ELM有关的两份研究被选入人工智能领域持续受到引用的经典文献。
对ELM原创性的争议
机器学习领域有许多与ELM思路相当的算法,例如随机向量连接函数(Random Vector Functional-Link, RVFL)和Schmidt等对前馈神经网络权重的随机化实验。因此,在ELM被提出后有观点认为,ELM不是一种独立的算法。并且有评论指出,ELM原作者为了凸显其工作的独立性而有意回避了对其它类似研究的引用。但也有观点认为,ELM通过发展,已成为独立的,且包含完整理论并与其它机器学习方法相联系的学习系统,。
应用
图像处理方面,ELM被成功用于低分辨率至高分辨率图像的转化,以及遥感图像中对下垫面类型的识别。在生物科学领域,ELM被用于预测蛋白质交互作用。地球科学领域的很多预测问题包含非线性过程且观测数据缺乏,ELM因其泛化能力而得到应用,成功的例子包括对日河流径流量风速干旱指数的预测。
包含ELM算法的编程模块
HP-ELM:该模块是基于Python开发的ELM算法库,包含GPU加速和内存优化设计,适用于处理大数据问题。HP-ELM支持LOO(Leave One Out)和分组交叉验证(k-fold cross validation)动态选择隐含层节点个数,可用的特征映射包括线性函数、Sigmoid函数、双曲正弦函数和三种径向基函数。
Guang-Bin Huang在南洋理工大学的个人主页上有ELM源代码开放下载。
参考资料
最新修订时间:2024-06-17 18:27
目录
概述
历史
参考资料