本文是作者这几天翻译的一篇经典的ELM文章,是第一稿,所以有很多错误以及不足之处。

另外由于此编辑器不支持MathType所以好多公式没有显示出来,原稿是word文档。

联系:250101249@qq.com可以获得原稿。

转载请注明出处

2019-01-20 22:50:33


极限学习机:一个新的前馈神经网络的学习方案

摘要:很明显,前馈神经网络的学习速度通常远远低于要求,并且在过去几十年中它一直是其应用的主要瓶颈。其中两个主要的原因是:1)缓慢的基于梯度下降的算法被广泛用于训练神经网络。2)网络中所有的参数都是使用这种算法迭代求解。不同于传统的实践方案,本文提出了一个针对前馈神经网络中单一隐含层的极限学习机算法,其可以自动选择输入权重,并分析决定该算法的输出权重。理论上,该算法可以以极快的学习速度提供最佳的泛化表现。基于真实世界基准函数逼近和分类问题(包括大型复杂应用)的实验结果表明,新算法在某些情况下可以产生最佳的泛化性能,并且可以比传统的前馈神经网络学习算法学得更快。

第一部分:介绍

从数学的角度,关于前馈神经网络近似能力主要集中在两方面:在紧集上的通用逼近以及在有限集上的近似。许多研究者已经探索了在多层前馈神经网络的通用近似。在实际例子中,神经网络通常使用有限集进行训练。为了在有限训练集上的功能近似,Huang 和Babri展示了一个有着N个隐含神经以及几乎都是非线性激活函数的单一隐含层前馈神经网络在零误差下可以学习N个不同的观测对象。应该指出的是输入权重(连接输入层至第一个隐含层)需要在所有先前理论研究工作以及所有前馈神经网络的实际算法中调整。

传统地,所有的前馈神经网络的参数都应该被调整,以及不同层之间的参数存在着相互依赖。过去几十年中,基于梯度下降的方法被广泛应用于各种前馈神经网络的学习算法。但是,基于梯度下降的学习算法由于不正确的学习步骤,速度通常较慢。并且它容易收敛到局部最小值。同时为了获得更好的学习效果,通常需要多次的迭代学习步骤。

研究表明,有着随机选择输入权重的SLFNs算法可以以极小的误差学习N个不同的观测值。不同于所有的前馈神经网络的参数都需要被调整这种传统的认知以及实际的操作,也许不需要调整输入权重和第一个隐含层偏至在实际应用中。实际上一些模拟显示,在我们实际运用中已经证明了这种方式不仅提高了学习速度还产生了很好的泛化能力。最近,我们研究进一步证明了有着随机分配的输入权重、隐含层的偏置以及几乎所有非零激活函数的SLFNs算法可以广泛的近似所有连续的函数在紧致输入集中。这些研究表明在前馈神经网络的实际运用中输入权重也许不需要调整。

在输入权重以及隐含层偏置被随机选择后,SLFNs算法可以简单的认为一个线性的系统,其输出权重可以通过隐含层输出矩阵的反转操作来决定。基于这种概念,本文为SLFNs提出一个简单的学习算法称为极限学习机及算法(ELM)。它的学习速度是传统的通过获得更好的泛化能力的反馈算法前馈神经网络学习算法的几千倍。不同于传统的学习算法,本文提出的算法不仅可以达到最小的训练误差同时可以获得最小的权值范数。BARTLETT的关于前馈神经网络泛化表现的理论指出前馈伸进网络为了得到最小的训练误差,权重范数越小,网络就越能获得更好的泛化表现。因此,本文提出的学习算法对前馈神经网络有着更好的泛化能力。

当新提出的学习算法趋向达到最小的训练误差,获得最小的权值范数以及最优的泛化能力,同时保持快速运算。为了同其他常见的SLFN算法区别,本文中称这种算法为极限学习机算法(ELM)。

本文的结构如下:第二部分介绍了Moore-Penrose广义逆以及一般线系统的最小化范数的最小二乘方法,这种方法在发挥我们新的ELM学习算法中扮演着重要作用。第三部分给单一隐含层前馈神经网络提出了新的ELM算法。性能评估在第四部分展示,第五部分为讨论和总结。

第二部分 初始

本章介绍Moore-Penrose广义逆。我们同时在本章考虑Euclidean空间中一般线性系统 的最小范数化最小二乘法的解法,其中 、 。如参考文献找【5】,【6】

中,SLFNs实际上是一个线性系统,如果输入权值以及隐含层偏置可以被随机选择。

A. Moore-Penrose 广义逆

线性方程 的解可以简单地使用Moore-Penrose广义逆表示出来,其中A是奇异的甚至不是平方的。

定义2.1 阶矩阵G是 阶矩阵A的Moore-Penrose广义逆,如果:

(1)

简便得缘故,Moore-Penrose广义逆A定义为 。

B.一般线性方程的最小范数的最小二乘解

一个线性方程 ,如果:

我们称 为最小二乘的解。其中 为Euclidean空间下的范数。

定义2.2: 如果对所有的 ,满足

则 是线性方程 最小化范数的最小二乘解。

这意味着,解 是线性方程 最小范数的最小二乘解,如果它在所有最小二乘解中的范数是最小的。

理论2.1 如果存在矩阵 ,其中 是线性方程 最小范数的最小二乘解。则 是充分且必要的条件,且是矩阵 的Moore-Penrose广义逆矩阵。

三、极限学习机

在第二部分我们简单介绍了Moore-Penrose广义逆矩阵以及线性方程 的最小范数的最小二乘解。我们现在给有N个神经元的单一隐含层前馈神经网络提出一个速度极快的学习算法,其中 ,训练数据的个数。

A、SLFNs的近似问题

N个随机不同的例子 ,其中 和 ,将有 个隐含神经元的标准SLFNs以及激活函数 组合为:

其中 是连接第i个隐含层和输入层的权值向量, 是连接第i个隐含神经元和输出神经元的权值向量,同时 是第i个隐含神经元的阈值, 表示 和 的内积。本文的输出神经元选取为线性。

标准SLFNs 有 个隐含神经元以及激活函数 可以零误差近似这N个样例,意味着 ,存在着 , 以及

上式N个方程可以写成:

其中:

以及

B.基于梯度下降的学习算法

正如在文献【4】、【5】、【6】中分析的,如果隐含神经网络的数量等于不同训练数据的数量,即 ,矩阵 是二次方的以及可逆的,SLFNs可以近似这些样本以零误差。但是,大多是情况下,隐含神经元的数量时少于独特样本数量的, , 是非二次方的矩阵以及可能不存在 , , 使得 。因此,可能需要发现特定的 使得

其等于最小化下列损失函数

当 是未知的基于梯度的学习算法是,通常采用寻找最小化 。在最小化步骤中,通过使用基于梯度下降的算法,向量 是 的集合,同时偏置 参数通过下列迭代调整:

这里 是学习速率。在前馈神经网络中流行的学习算法是反馈学习,该算法中的梯度可以通过从输出到输入的传播有效的计算出来。关于反向传播学习算法有以下几个问题:

1)当学习速率 太小时,该学习算法收敛的太慢。但是当 太大时,该算法变得不稳点以及发散。

2)该误差平面的另一个影响着该反向传播算法性能的特性是存在局部最小值。该学习算法如果在一个距离全局最小值较远的局部最小值停下来是不令人满意的。

3)神经网络有可能过训练当使用反向传播学习算法时,并且获得较差的泛化表现。因此,验证以及何时的停止策略在最小化损失函数时是必要的。

4)基于梯度下降的学习在大多数运用中是十分耗时的。

本篇文章的目的是解决上述关于基于梯度下降算法的问题,以及提出一种有效率的针对前馈神经网络的学习算法。

C.SLFN的最小范数的最小二乘的解

正如在第一部分提到的,不同于大多数关于SLFNs的所有参数都需要被调整的传统理解,输入权重 以及隐含层偏置 实际上不需要被调整,同时隐含层输出矩阵 可以保持在开始学习时分配给这些参数随机的值不变。

我们最近的研究表明SLFNs算法在输入权重随机选择情况下,其可以学习不同的观测对象以随机的小误差。实际上,人工模拟、现实世界中例子以及本文进一步描述的表明,通过调整输入权重以及隐含层偏置情况下,没有增益是有可能的。最近,这一点被进一步严格的证明了在我们的文章中,不同于传统的近似理论,其通常需要调整输入权重以及隐含层偏置。前馈神经网络可以随机的分配输入权重和隐含层偏置,以及几乎所有的非零激活函数可以广泛的近似任何连续的函数在紧致的输入空间上。

这些研究结果展示了SLFNs的输入权重以及隐含层偏置根本不需要被调整,可以被随机给定。修订的输入权重w以及隐含层偏置B,见方程9,为了训练一个SLFN等效于发现一个最小二乘解B关于线性系统 :

根据理论2.1,最小的最小二乘解的范数得解关于上述线性系统的是:

强调:正如在第二部分讨论的我们有一下重要的特性:

1)最小化训练误差。特殊解 是线性系统 最小二乘解的一个,意味着最小训练误差可以通过这个特殊方式达到:

尽管大多数学习算法期望达到最小训练误差,但是,大部分都达不到因为局部最小值以及无限的训练迭代在实际运用中是不允许的。

2)权值的最小范数和最佳泛化表现。进一步,在 的所有最小二乘解中,特解 有着最小范数。

正如Bartlett指出的,针对有许多小权重但是在训练集上有小平方误差得前馈神经网络,Vapnike-Chervonenkis 维度与泛化表现是不相关的。相反,网络中权值的数量级是更重要的。权值越小,网络的泛化能力就越佳。正如上面分析的,我们的方法不仅在训练集上达到最小的平方误差,而且获得了最小的权重。因此,此方法有更好的泛化能力是合理的。需要指出的是像反馈传播这种基于梯度下降的学习算法达到最佳的泛化能力是困难的,因为他们只能获得最小的训练误差而没有考虑权值的数量级。

3) 的最小二乘解的小范数解时唯一的,即

D.SLFNs的学习算法

针对SLFNs一个简单的学习算法称作极限学习机,其可以总结为:

ELM:给定一个训练集 ,激活函数g(x),以及 个隐含神经元。

步骤1:随机分配输入权值 ,偏置 ,

步骤2:计算隐含层输出矩阵

步骤3:计算输出权重 :

四、表现评估

在本章,ELM的性能将会和传统的前馈神经网络算法如BP算法,在近似以及分类领域的标记问题进行比较。本文主要关注与前馈神经网络,以及提出一个新的训练前馈神经网络的有效算法。尽管支持向量机不同于标准的前馈神经网络。同时系统的比较SVM和前馈神经网络的差异也不是本文的目标,因此SVMs和ELM的比较只在本文简单的列出。

关于BP和ELM算法比较的模拟都是在MATLAB6.5环境下,以及Pentium 4,1.9GHZ CUP下运行的。尽管有许多不同的BP算法,本文使用的是一个更快的Levenberg-Marquardt 算法。

关于SVM的模拟是在基于C编程的SVM包:LIBSVM,其运行在相同的电脑配置上。当比计较ELM和SVMs的运行速度时,读者应知道基于c实施的算法要比基于MATLAB的速度更快。所以使用LIBSVM的SVM算法更有优势。SVM中使用的核函数是径向基函数,同时 我们提出的算法中使用的激活函数时简单的S型函数 ,为了比较BP和ELM 算法,这两者通常都被分配相同的数量的隐含神经元。

A. 函数逼近问题的基准测试

加利福尼亚房价是一组来自StatLib库的数据。里面有20640组观测数据用来预测加利福尼亚房价。有关这些变量的信息是从1990年的人口普查中使用加州所有街区组收集的。这组样例中一个街区平均包括1425.5个住在地理上靠近的住户。自然地,地理区域随人口密度变化。每各街区的中心点之间的距离通过维度和经度进行计算。所有报告为零实体的独立变量以及因变量都被排除。最后一组数据包含20640个数据,每各数据包含9个变量,其中8个是连续输入(收入中位数、房龄中位数、房间数总和、卧室数总和、人口、花园、维度和经度)以及以1个连续输出。在我们模拟中,8000组训练数据以及12640组测试数据从加利福尼亚房价数据库中每一次测试中随机产生。

为了简化,这八个输入变量以及一个输出变量被标准化为【0,1】。参数C可以被调整并且在SVR算法中被设定为500。针对所有的算法已经进行了50次测试,平均结果展示在表格1中。从表格1中看出,ELM算法的速率要比BP和SVM快1000到2000倍。LEM算法的泛化能力接近于BP和SVMs算法。

表格1

关于加利福尼亚房价预测的表现比较

算法

时间/秒

训练RMS

测试RMS

神经元的数量

训练

测试

ELM

0.272

0.143

0.1358

0.1365

20

BP

295.23

0.286

0.1369

0.1426

20

SVM

558.4137

20.9763

0.267

0.1275

2534.0

B、基于真实医疗诊断应用的基准测试

新提出的ELM算法和其他流行的算法性能比较通过一个世纪的医疗诊断问题来比较:糖尿病,使用“Pima Indians Diabetes Database”产生于1988年 Johns Hopkins 大学应用物理实验室。诊断是一个二值变量,即该病人是否有糖尿病的症状根据世界卫生组织的标准(两小时内的post-load血糖量至少在200mg/dl在任何调查实验中或者如果在唱过医疗检查中被发现患有糖尿病)。这组数据包含768个在Phoenix,Arizona地区各年龄段的女性。所有的样例属于阳性或者阴性类别。所有的输入值介于【0,1】之间。针对这个问题,在每次各自的训练中75%样例被选为训练集,25%样例被选为测试集。算法SVM的参数C可以调整,同时将其设置为10,其余参数都被设定为默认值。

针对所有的算法已经进行了50次测试,平均结果展示在表格2中。从表格2中可以看出,SVM算法可以达到测试比率为77.31%在平均317.16个支持向量下。Ratsch etal 获得了一个测试率为76.50%的SVM,它比我们获得的SVM测试结果稍低。但是新的ELM学习算法可以达到一个76.54%测试率在只有20个神经元数量下,其结果要高于许多其他的流行算法如bagging and boosting方法,c4.5,以及RBF。BP算法在这个样例中表现很差。同时可以看出在这个小问题中,ELM算法比BP算法快1000倍,比SVM快12倍在没有考虑基于C的算法要比基于MATLAB的算法更快条件下。

表格2

各算法关于实际医疗诊断糖尿病的性能比较

算法

训练时间/s

成功率

No of SVs/Neurons

训练集

测试集

ELM

0.015

78.71%

76.54%

20

BP

16.196

92.86%

63.45%

20

SVM

0.1860

78.76%

77.31%

317.16

表格3

各算法关于实际医疗诊断糖尿病的性能比较

算法

测试率

ELM

76.54%

SVM

76.50%

AdaBoost

75.60%

C4.5

71.60%

RBF

76.30%

C. 使用实际的大型复杂应用程序进行基准测试

我们同时也测试了一些针对复杂运用下的ELM算法的性能,如森林覆盖类型的预测。

森林覆盖类型预测是一个有7个类型复杂的分类问题,森林覆盖类型分类基础是30*30m^2的方格,数据来自美国森林服务局地区2的信息。这里有581012组数据,每组有5个特性。为了和先前的工作对比,类似地将它调整为二分类问题,其目标是将两类从其它6类中区分出来。这里有100000组训练数据和481012组测试数据。SVM算法的参数是C=10和 。

ELM算法已经测试了50组,而SVM算法只测试了1组因为使用SVM算法训练SLFNs这种复杂的例子需要花费很长时间。但是,所提出的ELM学习算法只花费了1.5分钟进行训练而SVM算法需要12小时,学习速度提高了430倍。另一方面,因为通过SVM获得的支持向量要比ELM算法中需要的隐藏神经元要大的多,因而对于这种大测试数据集,SVMs的测试时间是ELM算法的480倍。SVM算法处理481012组测试样例需要花费超过5.5小时。但是,对于ELM算法只需要1分钟不到的时间处理这些测试样例。这要比,在实际运用中通过训练开发ELM算法处理新的观测数据要比SVMs算法更快。需要强调的是,为了使SVMs算法获得更好的性能,已经花费了很长时间寻找SVM合适的参数。实际上,针对本文中我们模拟的例子,SVM算法的泛化能力要比文献【17】中的要好。

第五部分 讨论和结论

本文提出了一个新的关于单层隐含前馈神经网络(SLFNs)的学习算法,称作极限学习机(ELM)。ELM有几个有趣且重要特点,区别于其他传统流行的基于梯度下降的关于前馈神经网络的算法:

1)ELM算法的学习速度非常快。它训练SLFNs的速度要比经典的学习算法更快。以往,似乎存在着一个大多数经典学习算法不能打破的实际速度极限,通常使用经典学习算法即使是一个简单的运用也需要花费很长时间来训练一个前馈网络。

2)不同于为了达到训练误差最小值,但是不考虑权值的大小这种传统典型的基于梯度下降的学习算法,ELM算法倾向于找到最小的训练误差以及最小的权值范数。因此,对于前馈神经网络ELM算法有着更好的泛化能力。

3)不同于只能作用于可微的激活函数这种传统经典的基于梯度下降的学习算法那,ELM算法可以用于训练不是可微的激活函数的SLFNs模型。

4)不同于面临着诸如局部最小值、不合适的学习速率和过拟合等许多问题的传统经典的基于梯度下降的学习算法。ELM算法可以在没有上述问题下直接求得其解。ELM算法要比其他针对前馈神经网络的学习算法更简单。

需要强调的是基于梯度下降的学习算法比如:反向传播算法可以用来处理有多层隐含层的前馈神经网络,而目前形式的ELM算法只对单层隐含前馈神经网咯有效。幸运的是,已经证明SLFNs可以近似任何连续的函数,并且实施任何分类任务。因此合理的说,ELM算法可以运用到许多例子中,同时接下来需要对其进行进一步研究。另一方面,ELM算法关于不同仿造和实际生活中的分类问题的更加复杂的实验结果,可以在我们技术报告中找到。

Extreme Learning Machine 翻译的更多相关文章

  1. Extreme Learning Machine(ELM)的工程哲学

    Extreme Learning Machine(ELM)的工程哲学 David_Wang2015 发布于2015年5月6日 11:29 工程问题往往需要的是一定精度范围内的结果,而不是“真正的”结果 ...

  2. paper 102:极限学习机(Extreme Learning Machine)

    原文地址:http://blog.csdn.net/google19890102/article/details/18222103   极限学习机(Extreme Learning Machine) ...

  3. Extreme Learning Machine

    Extreme Learning Machine 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. ELM 2004年南洋理工大学黄广斌提出了ELM ...

  4. 使用Cross-validation (CV) 调整Extreme learning Machine (ELM) 最优参数的实现(matlab)

    ELM算法模型是最近几年得到广泛重视的模型,它不同于现在广为火热的DNN. ELM使用传统的三层神经网络,只包含一个隐含层,但又不同于传统的神经网络.ELM是一种简单易用.有效的单隐层前馈神经网络SL ...

  5. 超限学习机 (Extreme Learning Machine, ELM) 学习笔记 (一)

    1. ELM 是什么 ELM的个人理解: 单隐层的前馈人工神经网络,特别之处在于训练权值的算法: 在单隐层的前馈神经网络中,输入层到隐藏层的权值根据某种分布随机赋予,当我们有了输入层到隐藏层的权值之后 ...

  6. 极限学习机(Extreme Learning Machine)学习笔记

    最近研究上了这个一个东西--极限学习机. 在很多问题中,我大多会碰到两个问题,一个是分类,另一个就是回归.简单来说,分类是给一串数打个标签,回归是把一串数变为一个数. 在这里我们需要处理的数据一般维度 ...

  7. The Brain as a Universal Learning Machine

    The Brain as a Universal Learning Machine This article presents an emerging architectural hypothesis ...

  8. Deep Learning 教程翻译

    Deep Learning 教程翻译 非常激动地宣告,Stanford 教授 Andrew Ng 的 Deep Learning 教程,于今日,2013年4月8日,全部翻译成中文.这是中国屌丝军团,从 ...

  9. (原创)Stanford Machine Learning (by Andrew NG) --- (week 6) Advice for Applying Machine Learning & Machine Learning System Design

    (1) Advice for applying machine learning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来 ...

随机推荐

  1. asp.net Web API简单的特性路由配置

    一,控制器代码: [RoutePrefix("ajilisiwei")]  //加URL前缀 (非必需)    public class ShoppingController : ...

  2. [JSOI2008]Blue Mary的战役地图

    嘟嘟嘟 当看到n <= 50 的时候就乐呵了,暴力就行了,不过最暴力的方法是O(n7)……然后加一个二分边长达到O(n6logn),然后我们接着优化,把暴力比对改成O(1)的比对hash值,能达 ...

  3. 【转】Android应用如何跳转到应用市场详情页面

    Android应用开发过程中,可能会有需求,比如:推广时跳转到应用市场下载应用,跳转到应用市场给自己的应用打分,跳转到应用市场更新自己的应用.那如何跳转到应用市场呢? 可能跳转的方法大家都是知道的,方 ...

  4. attr全选第三次失效

    一功能checkbox时隐时现,比如第一次打开有勾选,第n次打开可能就不选了. 经过偶层层抽次剥茧(da da jiang you),终于知道了原因:attr()在二次选中勾选框时,失效. 比如,如下 ...

  5. C# 通过word模板动态生成Word

    object oMissing = System.Reflection.Missing.Value; Word._Application oWord = new Word.Application(); ...

  6. etherlime-2-Etherlime Library API-deployer

    Etherlime Library API 库API Deployer部署者 Deployer functionality The main functionality the deployer ex ...

  7. linux shell基本知识 sleep命令

    在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时) sleep 睡眠1秒 sleep 1s 睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时

  8. cpu 基础知识

    认识cpu(中央处理器简称处理器)也叫CPU,Central Processing Unit线程是安排CPU执行的最小单位 四核八线程内涵: 每个单位时间内,一个CPU只能处理一个线程(操作系统:th ...

  9. [Phonegap+Sencha Touch] 移动开发29 安卓navigator.camera.getPicture得到图片的真实路径

    原文地址:http://blog.csdn.net/lovelyelfpop/article/details/38313021 phonegap的拍照插件选择图库中的图片.代码例如以下: naviga ...

  10. PHP DES加解密

    test.php测试文件 <?php require_once('Des.php'); $des = new Des(); $data['a'] = 'a'; $data['b'] = 'b'; ...