您的位置:首页 > 其它

极限学习机(Extreme Learning Machine)概述

2015-11-01 12:28 453 查看

摘要

当今研究领域的一项事实就是,前向神经网络(feed-forward neural networks)的训练速度比人们所期望的速度要慢很多。并且,在过去的几十年中,前向神经网络在应用领域存在着很大的瓶颈。导致这一现状的两个关键因素就是:

神经网络的训练,大多使用基于梯度的算法,而这种算法的训练速度有限;

使用这种训练算法,在迭代时,网络的所有参数都要进行更新调整。

而在2004年,由南洋理工学院黄广斌教授所提出的极限学习机器(Extreme Learning Machine,ELM)理论可以改善这种情况。最初的极限学习机是对单隐层前馈神经网络(single-hidden layer feed-forward neural networks,SLFNs)提出的一种新型的学习算法。它随机选取输入权重,并分析以决定网络的输出权重。在这个理论中,这种算法试图在学习速度上提供极限的性能。

如需转载本文,请注明出处:http://blog.csdn.net/ws_20100/article/details/49555959

极限学习机原理

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



对于一个单隐层神经网络(结构如上图所示),假设有NN个任意的样本(xj,tj)(\mathbf{x_j},\mathbf{t_j}),其中,xj=[xj1,xj2,...,xjn]T∈Rn , tj=[tj1,tj2,...,tjm]T∈Rm\mathbf{x_j} = [x_{j1},x_{j2},...,x_{jn}]^T \in R^n\ ,\ \mathbf{t_j} = [t_{j1},t_{j2},...,t_{jm}]^T \in R^m对于一个有LL个隐层节点的单隐层神经网络可以表示为∑i=1Lβig(wi⋅xj+bi)=oj, j=1,2,...,N\sum_{i=1}^{L} \mathbf{\beta_i} g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) = \mathbf{o_j},\ \ j=1,2,...,N其中,g(x)g(x)为激活函数,wi=[wi1,wi2,...,win]T\mathbf{w_i} = [w_{i1},w_{i2},...,w_{in}]^T是第ii个隐层单元的输入权重,bib_i是第ii个隐层单元的偏置,βi=[βi1,βi2,...,βim]T\mathbf{\beta_i} = [\beta_{i1},\beta_{i2},...,\beta_{im}]^T是第ii个隐层单元的输出权重。wi⋅xj\mathbf{w_i} \cdot \mathbf{x_j}表示wi\mathbf{w_i}和xj\mathbf{x_j}的内积。

1.学习目标

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

∑j=1N||oj−tj||=0\sum_{j=1}^{N} ||\mathbf{o_j} - \mathbf{t_j}|| = 0即存在wi\mathbf{w_i}、xj\mathbf{x_j}和bib_i使得:

∑i=1Lβig(wi⋅xj+bi)=tj, j=1,2,...,N\sum_{i=1}^{L} \mathbf{\beta_i} g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) = \mathbf{t_j},\ \ j=1,2,...,N可以矩阵表示:

H⋅β=T\mathbf{H} \cdot \mathbf{\beta} = \mathbf{T}其中,H\mathbf{H}是隐层节点的输出,β\mathbf{\beta}为输出权重,T\mathbf{T}为期望输出。

H(w1,...,wL,b1,...,bL,x1,...,xN)=⎡⎣⎢⎢g(w1⋅x1+b1)⋮g(w1⋅xN+b1)⋯⋯⋯g(wL⋅x1+bL)⋮g(wL⋅xN+bL)⎤⎦⎥⎥N×Lβ=⎡⎣⎢⎢β1T⋮βLT⎤⎦⎥⎥L×m T=⎡⎣⎢⎢t1T⋮tNT⎤⎦⎥⎥N×m\mathbf{H}(\mathbf{w_1},...,\mathbf{w_L},b_1,...,b_L,\mathbf{x_1},...,\mathbf{x_N})\\=
\begin{bmatrix}
g(\mathbf{w_1} \cdot \mathbf{x_1} + b_1) &
\cdots &
g(\mathbf{w_L} \cdot \mathbf{x_1} + b_L) \\
\vdots&\cdots&\vdots \\
g(\mathbf{w_1} \cdot \mathbf{x_N} + b_1) &
\cdots &
g(\mathbf{w_L} \cdot \mathbf{x_N} + b_L)
\end{bmatrix}_{N \times L} \\
\mathbf{\beta} =
\begin{bmatrix}
\mathbf{\beta_1}^T\\
\vdots\\
\mathbf{\beta_L}^T
\end{bmatrix}_{L \times m}
\ \mathbf{T} =
\begin{bmatrix}
\mathbf{t_1}^T\\
\vdots\\
\mathbf{t_N}^T
\end{bmatrix}_{N \times m}为了能够训练单隐层神经网络,我们希望得到wi^\hat{\mathbf{w_i}},bi^\hat{b_i}和βi^\hat{\mathbf{\beta_i}},使得

||H(wi^,bi^)⋅β^−T||=minw,b,β||H(wi,bi)⋅β−T|||| \mathbf{H}( \hat{\mathbf{w_i}},\hat{b_i} ) \cdot \hat{\mathbf{\beta}} - \mathbf{T} || = min_{\mathbf{w},b,\mathbf{\beta}} || \mathbf{H}( \mathbf{w_i},b_i ) \cdot \mathbf{\beta} - \mathbf{T} ||其中,i=1,2,...,Li=1,2,...,L,这等价于最小化损失函数

E=∑j=1N||∑i=1Lβi⋅g(wi⋅xj+bi)−tj||22E =
\sum_{j=1}^{N}||
\sum_{i=1}^{L}
\mathbf{\mathbf{\beta_i} \cdot g(\mathbf{w_i} \cdot \mathbf{x_j} + b_i) - \mathbf{t_j}}
||_2^2

2.学习方法

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重wi\mathbf{w_i}和隐层的偏置bib_i被随机确定,隐层的输出矩阵H\mathbf{H}就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统:H⋅β=T\mathbf{H} \cdot \mathbf{\beta} = \mathbf{T}。并且输出权重可以被确定β^=H†⋅T\hat{\mathbf{\beta}} = \mathbf{H}^{\dagger} \cdot \mathbf{T}其中,H†\mathbf{H}^{\dagger}是矩阵H\mathbf{H}的Moore−PenroseMoore-Penrose广义逆矩阵。且可证明求得的解β^\hat{\mathbf{\beta}}的范数是最小的并且唯一。

实现代码

代码下载:http://download.csdn.net/detail/ws_20100/9230271

输入的训练数据,格式为一个N×(1+n)N \times (1+n)矩阵,其中每行代表一个样本(共有NN行)。每行的第一个元素为该样本的“回归的期望值”或“分类的类别号”(对应于tjt_j),后面的n个元素为该样本的输入数据(对应于xj∈Rn\mathbf{x_j} \in R^n)。测试数据的格式也类似。

对于回归应用,一个例子为:

[TrainingTime, TestingTime, TrainingAccuracy, TestingAccuracy] = elm('sinc_train', 'sinc_test', 0, 20, 'sig')


对于分类应用,一个例子为:

elm('diabetes_train', 'diabetes_test', 1, 20, 'sig')


这两个训练和测试集在黄广斌教授的网站上都可以下载。

参考资料:

[1] G.-B. Huang, Q.-Y. Zhu, and C.-K. Siew, “Extreme learning machine: A new learning scheme of feedforward neural networks,” in Proc. Int. Joint Conf. Neural Networks, July 2004, vol. 2, pp. 985–990.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: