极限学习机( 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 为单位矩阵。
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
探路者算法原理请参考:https://blog.csdn.net/u011835903/article/details/112292996
由前文可知,RELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用探路者算法对初始权值和阈值, 以及正则项进行优化。适应度函数设计为训练集的误差的MSE:
f i t n e s s = 2 − A c c u r a c y ( t r a i n ) − A c c u r a c y ( t e s t ) fitness=2-Accuracy(train)-Accuracy(test) fitness=2−Accuracy(train)−Accuracy(test)
适应度函数为,训练集和测试集(验证集)的分类错误率,分类错误率越低,代表分类正确率越高。
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
%% 导入数据
load data.mat
% 产生训练集/测试集
a = 1:569;
Train = data(a(1:500),:);
Test = data(a(501:end),:);
% 训练数据
P_train = Train(:,3:end);
T_train = Train(:,2);
% 测试数据
P_test = Test(:,3:end);
T_test = Test(:,2);