文章目录
- 简介
- Ref:
简介
极限学习机(Extreme Learning Machine) ELM,是由南洋理工大学黄广斌教授提出来的求解单隐层神经网络的算法。
ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SN4UjM2QGZ4Y2NwYTN5UGOxYzX0ATNyADMzEzLcFTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
对于上图所示的一个单隐含层神经网络,假设有
N
N
N 个任意样本(
x
1
,
2
⋯
N
x_1, x_2, \cdots, x_N
x1,x2,⋯,xN),
L
L
L 个隐藏层神经元,
M
M
M 个输出神经元。其中样本的维度可以为任意,即
i
=
[
i
n
]
T
∈
R
n
x_i = [x_{i1}, x_{i2}, \cdots, x_{in}]^{\text{T}} \in \R^{n}
xi=[xi1,xi2,⋯,xin]T∈Rn,期望输出假设为
y
^
j
m
m
\hat{y}_i = [\hat{y}_{j1}, \hat{y}_{j2}, \cdots, \hat{y}_{jm}]^{\text{T}} \in \R^{m}
y^i=[y^j1,y^j2,⋯,y^jm]T∈Rm,网络的实际输出为
y
{y}_i = [{y}_{j1}, {y}_{j2}, \cdots, {y}_{jm}]^{\text{T}} \in \R^{m}
yi=[yj1,yj2,⋯,yjm]T∈Rm。
对于上述含有
L 个隐含节点的单隐含层神经网络可以表示为
∑
k
=
L
β
k
⋅
G
(
W
X
+
b
)
=
\sum_{k=1}^{L} \beta_k \cdot G(W_i \cdot X_i + b_k) = y_j
k=1∑Lβk⋅G(Wi⋅Xi+bk)=yj
这里,
β
k
\beta_k
βk 为输出权重,
G
(
⋅
)
G(\cdot)
G(⋅) 为隐含层的激活函数,
W
W_i
Wi 为输入权重,
X
X_i
Xi 为输入样本,
b
b_k
bk 为第
k
k
k 个神经元的偏置,
W_i \cdot X_i
Wi⋅Xi 表示
Wi 和
Xi 的内积,
j
y_j
yj 表示第
j
j
j 个样本的输出。
当隐藏层节点足够多时,ELM 可以逼近任何连续函数,为使得 ELM 具有更好的泛化能力,通常隐藏层神经元
L 个数应该大于输入神经元
N,单隐含层神经网络的学习目标是使得输出的误差最小,即
min
j
N
∥
y
^
−
\min (\sum_{j=1}^N \|\hat{y}_j - y_j\|)
min(j=1∑N∥y^j−yj∥)
即存在
\beta_k, W_i
βk,Wi 和
bk 使得
\sum_{k=1}^{L} \beta_k \cdot G(W_i \cdot X_i + b_k) = \hat{y}_j
k=1∑Lβk⋅G(Wi⋅Xi+bk)=y^j
改写成矩阵的形式为:
H
Y
H \beta = Y
Hβ=Y
这里
H
H
H 为隐含层神经元的输出,
β
\beta
β 为输出权重,
T
T
T 为期望输出。
[
G
(
w
x
+
b
)
⋯
L
⋮
⋱
N
]
N
×
L
H= \left[\begin{matrix} G(w_1 x_1 + b_1) & G(w_2 x_1 + b_2) & \cdots & G(w_L x_1 + b_L) \\ G(w_1 x_2 + b_1) & G(w_2 x_2 + b_2) & \cdots & G(w_L x_2 + b_L) \\ \vdots & \vdots & \ddots & \vdots \\ G(w_1 x_N + b_1) & G(w_2 x_N + b_2) & \cdots & G(w_L x_N + b_L) \\ \end{matrix}\right]_{N \times L}
H=⎣⎢⎢⎢⎡G(w1x1+b1)G(w1x2+b1)⋮G(w1xN+b1)G(w2x1+b2)G(w2x2+b2)⋮G(w2xN+b2)⋯⋯⋱⋯G(wLx1+bL)G(wLx2+bL)⋮G(wLxN+bL)⎦⎥⎥⎥⎤N×L
β
T
L
M
,
y
M
\beta = \left[\begin{matrix} \beta_1^\text{T} \\ \beta_2^\text{T} \\ \vdots \\ \beta_L^\text{T} \\ \end{matrix}\right]_{L \times M},~~~~ Y = \left[\begin{matrix} y_1^\text{T} \\ y_2^\text{T} \\ \vdots \\ y_M^\text{T} \\ \end{matrix}\right]_{N \times M}
β=⎣⎢⎢⎢⎡β1Tβ2T⋮βLT⎦⎥⎥⎥⎤L×M, Y=⎣⎢⎢⎢⎡y1Ty2T⋮yMT⎦⎥⎥⎥⎤N×M
为了能训练单隐含层神经网络,希望得到
\hat{W}_i, \hat{b}_i
W^i,b^i 和
\hat{\beta}_i
β^i,使得
W
b
β
min
,
\|H(\hat{W}_i, \hat{b}_i) \hat{\beta}_i - Y\| = \min_{W,b,\beta} \|H(W_i, b_i)\beta_i - Y\|
∥H(W^i,b^i)β^i−Y∥=W,b,βmin∥H(Wi,bi)βi−Y∥
这等价于最小化损失函数
E
E = (\sum_{j=1}^N \|\hat{y}_j - y_j\|)
E=(j=1∑N∥y^j−yj∥)
在 ELM 神经网络中,一旦输入权重
Wi 和隐含层偏置
b_i
bi 被随机确定,则隐含层的输出矩阵
H 就被唯一确定,训练过程则可以转化为求解一个线性系统
Y
H\beta = Y
Hβ=Y,因此输出权重
β 的最小二乘解则可以通过下式求得: