基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解

基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解

文章目录

  • 基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解
    • 1.RELM原理
    • 2.分类问题求解
    • 3.基于探路者算法优化的RELM
    • 4.实验结果
    • 5.Matlab代码

1.RELM原理

极限学习机( 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 为单位矩阵。

2.分类问题求解

本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。

3.基于探路者算法优化的RELM

探路者算法原理请参考: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=2Accuracy(train)Accuracy(test)

适应度函数为,训练集和测试集(验证集)的分类错误率,分类错误率越低,代表分类正确率越高。

4.实验结果

本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 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);

基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解_第1张图片
基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解_第2张图片

5.Matlab代码

你可能感兴趣的:(基于探路者算法优化的正则化极限学习机(RELM)的分类问题求解)