ELM基础

  • Post author:
  • Post category:其他



原文地址

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

machine: a new learning scheme of feedforward neural networks】。

elm特点是随机生成隐层节点的参数,训练模型速度快。

elm从网络结构上来看是一个单隐层的前馈神经网络(SLFN)如下图所示。

由此可知隐藏层的输入为:

其中g函数表示的激活函数,可以是sigmod,rbf,但不限于此。ai,bi表示的是输入节点的参数向量。βi代表的是输入节点与隐层节点连接的权重向量,βi的每个分量的维度为f(设输入层节点为f),式子中的L代表的是隐含层神经元节点的个数。

同理设隐层神经元节点的个数为L,输出层的输出为m维向量,若为2分类,则为一维向量,则在忽略输入层和隐藏层的情况下可以设输出函数表达式为:

G函数代表隐层神经元的输出,针对加法型隐藏层节点,G为:

小g为激活函数,可以使线性,也可以是sigmod函数。对于rbf隐含层节点为:

ai和bi分别表示了第i个径向基函数节点的中心和影响因子

神经网络的输出可以表示为:

其中


如果神经网络能够无误差的预测训练样本,那么隐含层和输出层的权值是有解的,特别的,当L=N时,肯定有解。但是实际问题中,L往往是远小于N的,那么求解权值向量的问题是无解的,即网络输出和实际值之间有误差,可以定义代价函数为:

接下来如何求解最优的权值向量,使得损失函数J最小呢?
针对这个问题ELM分两种情况解决:
a.如果H是列满秩的,那么可以通过最小二乘找到最佳的权值,其解为


其中:

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

和BP使用梯度下降迭代更新所有层之间权值不同,ELM不调整SLFN的输入层和隐含层的权值,这些权值是随即设定的,因此ELM的训练速度非常快。ELM注重于隐含层到输出层的权值的选取,其采用的方法是最小二乘。
ELM算法一般可以描述如下:


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