极限学习机(Extreme Learning Machine)原理详解和其MATLAB实现

 

              极限学习机(Extreme Learning Machine, ELM)原理详解和MATLAB实现

目录

引言

极限学习机原理

MATLAB中重点函数解读

极限学习机的MATLAB实践


引言

极限学习机不是一个新的东西,只是在算法(方法)上有新的内容。在神经网络结构上,就是一个前向传播的神经网络,和之前几篇博文讲的意义。

为什么我们需要ELM?

The learning speed of feedforward neural networks is in general far slower than required and it has been a major bottleneck in their applications for past decades. Two key reasons behind may be:

1) the slow gradient-based learning algorithms are extensively used to train neural networks.

2) all the parameters of the networks are tuned iteratively by using such learning algorithms.

最大的创新点:

1)输入层和隐含层的连接权值、隐含层的阈值可以随机设定,且设定完后不用再调整。这和BP神经网络不一样,BP需要不断反向去调整权值和阈值。因此这里就能减少一半的运算量了。

2)隐含层和输出层之间的连接权值β不需要迭代调整,而是通过解方程组方式一次性确定。

研究表明,通过这样的规则,模型的泛化性能很好,速度提高了不少。

一言概之,ELM最大的特点就是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。

Compared BP Algorithm and SVM,ELM has several salient features:

•Ease of use. No parameters need to be manually tuned except predefined network architecture.只有隐含层神经元个数需要我们调整。

•Faster learning speed. Most training can be completed in milliseconds, seconds, and minutes.

•Higher generalization performance. It could obtain better generalization performance than BP in most cases, and reach generalization performance similar to or better than SVM.(泛化能力提升)

•Suitable for almost all nonlinear activation functions.Almost all piecewise continuous (including discontinuous, differential, non-differential functions) can be used as activation functions.

•Suitable for fully complex activation functions. Fully complex functions can also be used as activation functions in ELM.

极限学习机原理

ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。

对于一个单隐层神经网络(见上面的图),假设有个任意的样本,其中。对于一个有个隐层节点的单隐层神经网络可以表示为

其中,为激活函数,为输入权重,为输出权重,是第个隐层单元的偏置。表示的内积。

单隐层神经网络学习的目标是使得输出的误差最小,可以表示为

即存在,使得

可以矩阵表示为

其中,是隐层节点的输出,为输出权重,为期望输出。

为了能够训练单隐层神经网络,我们希望得到,使得

其中,,这等价于最小化损失函数

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重和隐层的偏置被随机确定,隐层的输出矩阵就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统。并且输出权重可以被确定

其中,是矩阵的Moore-Penrose广义逆。且可证明求得的解的范数是最小的并且唯一。

上面涉及到矩阵论的一些知识,其实也不需要理解,只要百度一下相关的概念,比如广义逆怎么求,或直接matlab里面去算就好了。对于偏工程应用的人而言,此处不需要多费时间了解数学原理。

ELM的作者,黄广斌老师提供的代码:http://www.ntu.edu.sg/home/egbhuang/elm_codes.html

参考博文:https://blog.csdn.net/google19890102/article/details/18222103?utm_source=copy

MATLAB中重点函数解读

下面我们打算用MATLAB来实现以下ELM。使用到的不是作者的代码,而是网络上的高手前辈们自己写的代码。

  • nargin:n arg in:自动计算出方法输入了几个参数

  • error:给出错误信息

  • pinv:求伪逆矩阵

  • sin / hardlim:涉及到激活函数

  • elmtrain 自己写的函数,用于ELM训练,记住:每一列代表一个样本

极限学习机的MATLAB实践

【实例1】汽油辛烷值预测

【实例2】鸢尾花侯种类识别

数据集放在:链接:https://pan.baidu.com/s/1wqVzwcL1xQ_Uh50XoYqyrw 密码:5wq2

猜你喜欢

转载自www.cnblogs.com/Jesee/p/10969767.html