辽宁住房建设部网站,上海专业微信网站建设,ps怎么做网站分隔线,深圳网络推广工资基于鲸鱼算法的极限学习机(ELM)分类算法 文章目录基于鲸鱼算法的极限学习机(ELM)分类算法1.极限学习机原理概述2.ELM学习算法3.分类问题4.基于鲸鱼算法优化的ELM5.测试结果6.参考文献7.Matlab代码摘要#xff1a;本文利用鲸鱼算法对极限学习机进行优化#xff0c;并用于分类问…基于鲸鱼算法的极限学习机(ELM)分类算法 文章目录基于鲸鱼算法的极限学习机(ELM)分类算法1.极限学习机原理概述2.ELM学习算法3.分类问题4.基于鲸鱼算法优化的ELM5.测试结果6.参考文献7.Matlab代码摘要本文利用鲸鱼算法对极限学习机进行优化并用于分类问题1.极限学习机原理概述
典型的单隐含层前馈神经网络结构如图1 所示由输入层、隐含层和输出层组成输 入层与隐含层、隐含层与输出层神经元间全连接。其中输入层有 n 个神经元对应 n 个输入变量 隐含层有 l个神经元输出层有 m 个神经元 对应 m 个输出变量 。 为不失一般性设输 入层与隐含层间的连接权值 w 为: w[w11w12...w1,nw21w22...w2n...wl1wl2...wln](1)w \left[\begin{matrix}w_{11}w_{12}...w_{1,n}\\ w_{21}w_{22}...w_{2n}\\ ...\\ w_{l1}w_{l2}...w_{ln} \end{matrix}\right]\tag{1} ww11w21...wl1w12w22wl2.........w1,nw2nwln(1) 其中wnw_nwn表示输入层第iii个神经元与隐含层第jjj个神经元间的连接权值。 设隐含层与输出层间的连接权值 为β\betaβ: β[β11β12...β1mβ21β22...β2m...βl1βl2...βlm](2)\beta \left[\begin{matrix} \beta_{11}\beta_{12}...\beta_{1m}\\ \beta_{21}\beta_{22}...\beta_{2m}\\ ...\\ \beta_{l1}\beta_{l2}...\beta_{lm} \end{matrix}\right] \tag{2} ββ11β21...βl1β12β22βl2.........β1mβ2mβlm(2) 其中自βjk\beta_{jk}βjk表示隐含层第 j 个神经元与输出层第 k个神经元间的连接权值。
设隐含层神经元的阈值值 b 为 b[b1b2...bl](3)b \left[\begin{matrix}b_1\\ b_2\\ ...\\ b_l \end{matrix}\right]\tag{3} bb1b2...bl(3) 设具有 Q 个样本的训练集输入矩阵 X 和输出矩阵 Y 分别为 X[x11x12...x1Qx21x22...x2Q...xn1xn2...xnQ](4)X \left[\begin{matrix}x_{11}x_{12}...x_{1Q}\\ x_{21}x_{22}...x_{2Q}\\ ...\\ x_{n1}x_{n2}...x_{nQ} \end{matrix}\right]\tag{4} Xx11x21...xn1x12x22xn2.........x1Qx2QxnQ(4)
KaTeX parse error: Undefined control sequence: \matrix at position 11: Y \left[\̲m̲a̲t̲r̲i̲x̲{y_{11},y_{12},…
设隐含层神经元的激活函数为 g(x)则由图1 可得 网络的输出 T 为: T[t1,..,tQ]m∗Q,tj[t1j,...,tmj]T[∑i1tβi1g(wixjbi)∑i1tβi2g(wixjbi)...∑i1tβimg(wixjbi)]m∗1,(j1,2,...,Q)(6)T [t_1,..,t_Q]_{m*Q},t_j [t_{1j},...,t_{mj}]^T \left[\begin{matrix}\sum_{i1}^t\beta_{i1}g(w_ix_j b_i)\\ \sum_{i1}^t\beta_{i2}g(w_ix_j b_i)\\ ...\\ \sum_{i1}^t\beta_{im}g(w_ix_j b_i) \end{matrix}\right]_{m*1},(j1,2,...,Q)\tag{6} T[t1,..,tQ]m∗Q,tj[t1j,...,tmj]T∑i1tβi1g(wixjbi)∑i1tβi2g(wixjbi)...∑i1tβimg(wixjbi)m∗1,(j1,2,...,Q)(6) 式(6)可表示为 HβT’(7)H\beta T’ \tag{7} HβT’(7) 其中 T’为矩阵 T 的转置 H 称为神经网络的隐含层输出矩阵 具体形式如下 H(w1,...,wi,b1,...,bl,x1,...,xQ)[g(w1∗x1b1)g(w2∗x1b2)...g(wl∗x1bl)g(w1∗x2b1)g(w2∗x2b2)...g(wl∗x2bl)...g(w1∗xQb1)g(w2∗xQb2)...g(wl∗xQbl)]Q∗lH(w_1,...,w_i,b_1,...,b_l,x_1,...,x_Q) \left[\begin{matrix} g(w_1*x_1 b_1)g(w_2*x_1 b_2)...g(w_l*x_1 b_l)\\ g(w_1*x_2 b_1)g(w_2*x_2 b_2)...g(w_l*x_2 b_l)\\ ...\\ g(w_1*x_Q b_1)g(w_2*x_Q b_2)...g(w_l*x_Q b_l) \end{matrix}\right]_{Q*l} H(w1,...,wi,b1,...,bl,x1,...,xQ)g(w1∗x1b1)g(w1∗x2b1)...g(w1∗xQb1)g(w2∗x1b2)g(w2∗x2b2)g(w2∗xQb2).........g(wl∗x1bl)g(wl∗x2bl)g(wl∗xQbl)Q∗l
2.ELM学习算法
由前文分析可知ELM在训练之前可以随机产生 w 和 b 只需确定隐含层神经元个数及隐含层和神经元的激活函数无限可微 即可计算出β\betaβ 。具体地 ELM 的学习算法主要有以下几个步骤
1确定隐含层神经元个数随机设定输入层与隐含层间的连接权值 w 和隐含层神经元的偏置 b ;
2 选择一个无限可微的函数作为隐含层神经元的激活函数进而计算隐含层输出矩 阵 H ;
3计算输出层权值βHT′\beta H^TβHT′
值得一提的是相关研究结果表明在 ELM 中不仅许多非线性激活函数都可以使用如 S 型函数、正弦函数和复合函数等)还可以使用不可微函数甚至可以使用不连续的函数作为激 活函数。
3.分类问题
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集其中训练集包含 500 个样本测试集包含 69 个样本 。
4.基于鲸鱼算法优化的ELM
鲸鱼算法的具体原理参考博客https://blog.csdn.net/u011835903/article/details/107559167
由前文可知ELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用鲸鱼算法对初始权值和阈值进行优化。适应度函数设计为训练集的错误率与测试集的错误率的和以期望使训练得到的网络在测试集和训练集上均有较好的结果: fitnessargmin(TrainErrorRateTestErrorRate)。fitness argmin(TrainErrorRate TestErrorRate)。 fitnessargmin(TrainErrorRateTestErrorRate)。
5.测试结果
鲸鱼算法相关参数如下
%训练数据相关尺寸
R size(Pn_train,1);
S size(Tn_train,1);
N 20;%隐含层个数
%% 定义鲸鱼优化参数
pop20; %种群数量
Max_iteration50; % 设定最大迭代次数
dim N*R N*S;%维度即权值与阈值的个数
lb [-1.*ones(1,N*R),zeros(1,N*S)];%下边界
ub [ones(1,N*R),ones(1,N*S)];%上边界将经过鲸鱼优化后的SSA-ELM与基础ELM进行对比。
预测结果如下图
鲸鱼收敛曲线如下 数据结果如下
鲸鱼优化ELM结果展示---------------- 训练集正确率Accuracy 93.6%(468/500) 测试集正确率Accuracy 98.5507%(68/69) 病例总数569 良性357 恶性212 训练集病例总数500 良性313 恶性187 测试集病例总数69 良性44 恶性25 良性乳腺肿瘤确诊44 误诊0 确诊率p1100% 恶性乳腺肿瘤确诊24 误诊1 确诊率p296% 传统ELM结果展示---------------- 训练集正确率Accuracy 90.2%(451/500) 测试集正确率Accuracy 94.2029%(65/69) 病例总数569 良性357 恶性212 训练集病例总数500 良性313 恶性187 测试集病例总数69 良性44 恶性25 良性乳腺肿瘤确诊43 误诊1 确诊率p197.7273% 恶性乳腺肿瘤确诊22 误诊3 确诊率p288%
从上述数据可以看出鲸鱼-ELM训练得到的网络无论是在测试集和训练集上的正确率均高于基础ELM训练得到的网络。鲸鱼-ELM具有较好的性能。
6.参考文献
书籍《MATLAB神经网络43个案例分析》
7.Matlab代码