极限学习机( ELM) 具 有训练速度快、泛化性能好的优点。极限学习机的结构是一种典型的单隐层前馈 神经网络( SLFN) 。极限学习机的结构见图
RELM 算法 :若 N N N 个训练样本, x = { x 1 , x 2 , ⋯ , x N } T \boldsymbol{x}=\left\{x_1, x_2, \cdots, x_N\right\}^{\mathrm{T}} x={x1,x2,⋯,xN}T作为输入, T = { t 1 , t 2 , ⋯ , t N } T \boldsymbol{T}=\left\{t_1, t_2, \cdots, t_N\right\}^T T={t1,t2,⋯,tN}T 作为输出,设定隐含层节点为 L L L ,激活函数为 g ( ω , b , x ) g(\omega, b, x) g(ω,b,x) ,随机选取输入层权 值 ω = { ω 1 , ω 2 , ⋯ , ω L } T \boldsymbol{\omega}=\left\{\omega_1, \omega_2, \cdots, \omega_L\right\}^{\mathrm{T}} ω={ω1,ω2,⋯,ωL}T 与隐含层偏置 b = { b 1 , b 2 , ⋯ , b L } T \boldsymbol{b}=\left\{b_1, b_2, \cdots, b_L\right\}^{\mathrm{T}} b={b1,b2,⋯,bL}T 。极限学习机的训练目标是令:
T = H β (1) T=H \beta \tag{1} T=Hβ(1)
式中:
H = ( g ( ω 1 , b 1 , x 1 ) g ( ω 2 , b 2 , x 1 ) ⋯ g ( ω L , b L , x 1 ) g ( ω 1 , b 1 , x 2 ) g ( ω 2 , b 2 , x 2 ) ⋯ g ( ω L , b L , x 2 ) ⋮ ⋮ ⋮ ⋮ g ( ω 1 , b 1 , x N ) g ( ω 2 , b 2 , x N ) ⋯ g ( ω L , b L , x N ) ) N × L (2) \boldsymbol{H}=\left(\begin{array}{cccc} g\left(\omega_1, b_1, x_1\right) & g\left(\omega_2, b_2, x_1\right) & \cdots & g\left(\omega_L, b_L, x_1\right) \\ g\left(\omega_1, b_1, x_2\right) & g\left(\omega_2, b_2, x_2\right) & \cdots & g\left(\omega_L, b_L, x_2\right) \\ \vdots & \vdots & \vdots & \vdots \\ g\left(\omega_1, b_1, x_N\right) & g\left(\omega_2, b_2, x_N\right) & \cdots & g\left(\omega_L, b_L, x_N\right) \end{array}\right)_{N \times L}\tag{2} H= g(ω1,b1,x1)g(ω1,b1,x2)⋮g(ω1,b1,xN)g(ω2,b2,x1)g(ω2,b2,x2)⋮g(ω2,b2,xN)⋯⋯⋮⋯g(ωL,bL,x1)g(ωL,bL,x2)⋮g(ωL,bL,xN) N×L(2)
β = ( β 1 , β 2 , ⋯ , β L ) T \boldsymbol{\beta}=\left(\beta_1, \beta_2, \cdots, \beta_L\right)^{\mathrm{T}} β=(β1,β2,⋯,βL)T 为输出层权值。对于式(1),由最小二乘法和奇异值分解求得:
β = ( H T H ) − 1 H T T (3) \boldsymbol{\beta}=\left(\boldsymbol{H}^{\mathrm{T}} \boldsymbol{H}\right)^{-1} \boldsymbol{H}^{\mathrm{T}} \boldsymbol{T} \tag{3} β=(HTH)−1HTT(3)
引入正则化系数可提高 ELM 的结构稳定性,得到 RELM:
β = ( H T H + C I ) − 1 H T T (4) \boldsymbol{\beta}=\left(\boldsymbol{H}^{\mathrm{T}} \boldsymbol{H}+\boldsymbol{C} \boldsymbol{I}\right)^{-1} \boldsymbol{H}^{\mathrm{T}} \boldsymbol{T} \tag{4} β=(HTH+CI)−1HTT(4)
式中: C \boldsymbol{C} C 为正则化系数; I \boldsymbol{I} I 为单位矩阵。
采用随机法产生训练集和测试集,其中训练集包含 1 900 个样 本,测试集包含 100 个样本。为了减少变量差异较大对模型性能的影响,在建立模型之前先对数据进行归一化。
沙猫群算法原理请参考:https://blog.csdn.net/u011835903/article/details/126624550
由前文可知,RELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用沙猫群算法对初始权值和阈值, 以及正则项进行优化。适应度函数设计为训练集的误差的MSE:
f i t n e s s = a r g m i n ( M S E p r i d e c t ) fitness = argmin(MSE_{pridect}) fitness=argmin(MSEpridect)
适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳初始权值和阈值。然后利用最佳初始权值阈值训练后的网络对测试数据集进行测试。