paper 103:ELM算法

ELM(Extreme Learning Machine)是一种新型神经网络算法,最早由Huang于2004年提出【Extreme learning

machine: a new learning scheme of feedforward neural networks】。
与SVM,传统神经网络相比,ELM的训练速度非常快,需要人工干扰较少,对于异质的数据集其泛化能力很强。
Huang在【Extreme learning machines: a survey,2011】这篇论文中对ELM进行了总结,包括最初的ELM算法和后来被发展延伸的ELM算法(比如在线序列ELM算法、增量ELM算法和集成ELM算法等),里面的很多知识点值得学习。
ELM的原理
从神经网络的结构上来看,ELM是一个简单的SLFN,SLFN示意图如下:
ELM算法1
该SLFN包括三层:输入层、隐含层和输出层(忽略输入层则为两层)。其中隐含层包括L个隐含神经元,一般情况下L远小于N,输出层的输出为m维的向量,对于二分类问题,显然该向量是一维的。
对于一个训练数据样本,忽略输入层和隐含层而只考虑隐含层神经元的输出和输出层,则神经网络的输出函数表达式为:ELM算法1ai和bi是隐含层节点的参数,ELM算法1表示第i个隐含层神经元和输出神经元之间的连接权值,即它是一个m维的权值向量。公式里面的G是隐含层神经元的输出。针对加法型隐含层节点,G为:ELM算法1其中,小g为激励函数,激励函数可以是线性函数,也可以是sigmoid函数;针对RBF型隐含层节点,G为:ELM算法1ai和bi分别表示了第i个径向基函数节点的中心和影响因子。
神经网络输出函数可以写成:ELM算法1,其中:
ELM算法1

如果神经网络能够无误差的预测训练样本,那么隐含层和输出层的权值是有解的,特别的,当L=N时,肯定有解。但是实际问题中,L往往是远小于N的,那么求解权值向量的问题是无解的,即网络输出和实际值之间有误差,可以定义代价函数为:ELM算法1
接下来如何求解最优的权值向量,使得损失函数J最小呢?
针对这个问题ELM分两种情况解决:
a.如果H是列满秩的,那么可以通过最小二乘找到最佳的权值,其解为:ELM算法1,其中:ELM算法1

b.如果H是非列满秩的,则使用奇异值分解求解H的广义逆来计算最佳权值。

和BP使用梯度下降迭代更新所有层之间权值不同,ELM不调整SLFN的输入层和隐含层的权值,这些权值是随即设定的,因此ELM的训练速度非常快。ELM注重于隐含层到输出层的权值的选取,其采用的方法是最小二乘。
ELM算法一般可以描述如下:
ELM算法1
在Huang的survey中描述了一种思想,该思想把SVM也看成了神经网络,该思想把神经网络的输入层到最后一层隐含层的部分或者SVM核函数映射的部分都看成了从输入空间到一个新的空间的转换,然后,BP会将误差反向传播更新权值使得误差最小化,而SVM则力求找到最大分界间隔的分界面,将新空间映射到输出空间,从这个角度来看,SVM确实可以看成是一种神经网络。
ELM最初算法就如上所述,从2004年至今,后来的学者对其进行了很多改进,主要包括对输入层和隐含层权值随即确定权值的优化、求解隐含层和输出层权值的优化(使得ELM更适应于噪声数据集)、核函数ELM以及加入了正则化项的损失函数(求解结构风险而不再是经验风险)、ELM和其他方法相结合等。ELM为神经网络的结构设计提供了一个新的思路,使我们更好地理解神经网络,但是还有很多问题需要解决,比如隐含层节点个数的确定,正则化项的选择等等。作为一个性能很好的机器,我们也可以将其应用到诸多交叉学科的应用中。
原文地址:https://www.cnblogs.com/molakejin/p/5743529.html