基于粒子群算法的极限学习机(ELM)分类算法-附代码
基于粒子群算法的极限学习机(ELM)分类算法
文章目录
- 基于粒子群算法的极限学习机(ELM)分类算法
- 1.极限学习机原理概述
- 2.ELM学习算法
- 3.分类问题
- 4.基于粒子群算法优化的ELM
- 5.测试结果
- 6.参考文献
- 7.Matlab代码
摘要:本文利用粒子群算法对极限学习机进行优化,并用于分类问题
1.极限学习机原理概述
典型的单隐含层前馈神经网络结构如图1 所示,由输入层、隐含层和输出层组成,输 入层与隐含层、隐含层与输出层神经元间全连接。其中,输入层有 n 个神经元,对应 n 个输入变量, 隐含层有 l个神经元;输出层有 m 个神经元 ,对应 m 个输出变量 。 为不失一般性,设输 入层与隐含层间的连接权值 w 为:
w = [ w 11 w 12 . . . w 1 , n w 21 w 22 . . . w 2 n . . . w l 1 w l 2 . . . w l n ] (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} w= w11w21...wl1w12w22wl2.........w1,nw2nwln (1)
其中, w n w_n wn表示输入层第 i i i个神经元与隐含层第 j j j个神经元间的连接权值。
设隐含层与输出层间的连接权值 , 为 β \beta β:
β = [ β 11 β 12 . . . β 1 m β 21 β 22 . . . β 2 m . . . β l 1 β l 2 . . . β l m ] (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)
其中,自 β j k \beta_{jk} βjk表示隐含层第 j 个神经元与输出层第 k个神经元间的连接权值。
设隐含层神经元的阈值值 b 为:
b = [ b 1 b 2 . . . b l ] (3) b =\left[\begin{matrix}b_1\\ b_2\\ ...\\ b_l \end{matrix}\right]\tag{3} b= b1b2...bl (3)
设具有 Q 个样本的训练集输入矩阵 X 和输出矩阵 Y 分别为
X = [ x 11 x 12 . . . x 1 Q x 21 x 22 . . . x 2 Q . . . x n 1 x n 2 . . . x n Q ] (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} X= x11x21...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 = [ t 1 , . . , t Q ] m ∗ Q , t j = [ t 1 j , . . . , t m j ] T = [ ∑ i = 1 t β i 1 g ( w i x j + b i ) ∑ i = 1 t β i 2 g ( w i x j + b i ) . . . ∑ i = 1 t β i m g ( w i x j + b i ) ] m ∗ 1 , ( j = 1 , 2 , . . . , Q ) (6) T = [t_1,..,t_Q]_{m*Q},t_j = [t_{1j},...,t_{mj}]^T =\left[\begin{matrix}\sum_{i=1}^t\beta_{i1}g(w_ix_j + b_i)\\ \sum_{i=1}^t\beta_{i2}g(w_ix_j + b_i)\\ ...\\ \sum_{i=1}^t\beta_{im}g(w_ix_j + b_i) \end{matrix}\right]_{m*1},(j=1,2,...,Q)\tag{6} T=[t1,..,tQ]m∗Q,tj=[t1j,...,tmj]T= ∑i=1tβi1g(wixj+bi)∑i=1tβi2g(wixj+bi)...∑i=1tβimg(wixj+bi) m∗1,(j=1,2,...,Q)(6)
式(6)可表示为:
H β = T ’ (7) H\beta = T’ \tag{7} Hβ=T’(7)
其中, T’为矩阵 T 的转置; H 称为神经网络的隐含层输出矩阵 , 具体形式如下 :
H ( w 1 , . . . , w i , b 1 , . . . , b l , x 1 , . . . , x Q ) = [ 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 ) ] Q ∗ l H(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∗x1+b1)g(w1∗x2+b1)...g(w1∗xQ+b1)g(w2∗x1+b2)g(w2∗x2+b2)g(w2∗xQ+b2).........g(wl∗x1+bl)g(wl∗x2+bl)g(wl∗xQ+bl) Q∗l
2.ELM学习算法
由前文分析可知,ELM在训练之前可以随机产生 w 和 b , 只需确定隐含层神经元个数及隐含层和神经元的激活函数(无限可微) , 即可计算出 β \beta β 。具体地, ELM 的学习算法主要有以下几个步骤:
(1)确定隐含层神经元个数,随机设定输入层与隐含层间的连接权值 w 和隐含层神经元的偏置 b ;
(2) 选择一个无限可微的函数作为隐含层神经元的激活函数,进而计算隐含层输出矩 阵 H ;
(3)计算输出层权值: β = H + T ′ \beta = H^+T' β=H+T′
值得一提的是,相关研究结果表明,在 ELM 中不仅许多非线性激活函数都可以使用(如 S 型函数、正弦函数和复合函数等),还可以使用不可微函数,甚至可以使用不连续的函数作为激 活函数。
3.分类问题
本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。
4.基于粒子群算法优化的ELM
粒子群算法的具体原理参考网络博客
由前文可知,ELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用粒子群算法对初始权值和阈值进行优化。适应度函数设计为训练集的错误率与测试集的错误率的和,以期望使训练得到的网络在测试集和训练集上均有较好的结果:
f i t n e s s = a r g m i n ( T r a i n E r r o r R a t e + T e s t E r r o r R a t e ) 。 fitness = argmin(TrainErrorRate + TestErrorRate)。 fitness=argmin(TrainErrorRate+TestErrorRate)。
5.测试结果
粒子群算法相关参数如下:
%训练数据相关尺寸
R = size(Pn_train,1);
S = size(Tn_train,1);
N = 20;%隐含层个数
%% 定义粒子群优化参数
pop=20; %种群数量
Max_iteration=50; % 设定最大迭代次数
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 = 92.8%(464/500)
测试集正确率Accuracy = 95.6522%(66/69)
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:316 恶性:184
测试集病例总数:69 良性:41 恶性:28
良性乳腺肿瘤确诊:40 误诊:1 确诊率p1=97.561%
恶性乳腺肿瘤确诊:26 误诊:2 确诊率p2=92.8571%
传统ELM结果展示:----------------
训练集正确率Accuracy = 86%(430/500)
测试集正确率Accuracy = 78.2609%(54/69)
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:316 恶性:184
测试集病例总数:69 良性:41 恶性:28
良性乳腺肿瘤确诊:39 误诊:2 确诊率p1=95.122%
恶性乳腺肿瘤确诊:15 误诊:13 确诊率p2=53.5714%
从上述数据可以看出,粒子群-ELM训练得到的网络,无论是在测试集和训练集上的正确率均高于基础ELM训练得到的网络。粒子群-ELM具有较好的性能。
6.参考文献
书籍《MATLAB神经网络43个案例分析》
7.Matlab代码
基于粒子群算法的极限学习机(ELM)分类算法-附代码相关推荐
- 基于哈里斯鹰算法的极限学习机(ELM)分类算法-附代码
基于哈里斯鹰算法的极限学习机(ELM)分类算法 文章目录 基于哈里斯鹰算法的极限学习机(ELM)分类算法 1.极限学习机原理概述 2.ELM学习算法 3.分类问题 4.基于哈里斯鹰算法优化的ELM 5 ...
- 基于粒子群优化的BP神经网络(分类应用) - 附代码
基于粒子群优化的BP神经网络(分类应用) - 附代码 文章目录 基于粒子群优化的BP神经网络(分类应用) - 附代码 1.鸢尾花iris数据介绍 2.数据集整理 3.粒子群优化BP神经网络 3.1 B ...
- 基于樽海鞘算法的极限学习机(ELM)回归预测-附代码
基于樽海鞘算法的极限学习机(ELM)回归预测 文章目录 基于樽海鞘算法的极限学习机(ELM)回归预测 1.极限学习机原理概述 2.ELM学习算法 3.回归问题数据处理 4.基于樽海鞘算法优化的ELM ...
- 【ELM预测】基于粒子群算法改进极限学习机ELM实现数据预测matlab源码
一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...
- 【ELM预测】基于鲸鱼算法优化极限学习机实现数据回归预测附matlab代码
1 简介 为判断中国是否能够实现2030年碳排放强度下降60%-65%的承诺,以及碳排放总量是否能够在2030年达到峰值,论文构建了一个基于鲸鱼优化算法改进的极限学习机模型,对2019-2040年的碳 ...
- 【ELM】动态自适应可变加权极限学习机ELM预测(Matlab代码实现)
- 【ELM预测】基于粒子群算法PSO优化极限学习机预测含Matlab源码
1 模型 为了提高空气质量预测精度,提出一种基于粒子群算法优化极限学习机的空气质量预测模型.运用粒子群算法优化极限学习机的初始权值和偏置,在保证预测误差最小的情况下实现空气质量最优预测.选择平均绝对百 ...
- 【回归预测-ELM预测】基于粒子群算法PSO优化极限学习机预测附matlab代码
1 内容介绍 风电功率预测为电网规划提供重要的依据,研究风电功率预测方法对确保电网在安全稳定运行下接纳更多的风电具有重要的意义.针对极限学习机(ELM)回归模型预测结果受输入参数影响的问题,现将粒子群 ...
- 【预测模型-ELM预测】基于蚁群算法优化极限学习机预测matlab代码
1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于蚁群算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多, ...
最新文章
- LeetCode 92. Reverse Linked List II--Python 解法--反转部分链表--笔试算法题
- C#多线程---Task实现异步
- linux 无敌kill -KILL processID
- 昆仑通态9针通讯口定义_MCGS昆仑通态触摸屏常见问题(4)
- 记与公司内网微博的谈话
- 当计算机从硬盘读取数据后 将数据,当计算机从硬盘读取数据后,将数据暂时储存在于()...
- java 常量 内存分配_Java内存分配之堆、栈和常量池
- php7 参数类型限定,PHP 7.4 新功能一览之参数和返回类型改进
- 八分音符(频率)卷积算子 Octave Convolution
- 虚拟机打不开,提示“此主机不支持虚拟化实际模式”的解决方法。
- linux mask 特殊权限位,Linux 特殊权限
- 物联网卡是做什么用的
- ArcMap影像地理配准过程配准工具条为灰色
- MapReduce任务的推测执行
- html div图片定位,css将div定位到图片上的固定位置
- 【java学习】集合框架
- WPS文档消除格式并消除大片空白格
- 思科新版ccnp中教你如何EIGRP协议DUAL弥散更新算法简述
- android 闹钟运行原理,简单 闹钟 实现 原理
- [算法课]算法考试复习范围全解
热门文章
- QLexpress源码解析
- 【2023细胞生物学III】2023细胞生物学III复习资料更新
- 判断一个数值是否为正数、负数、零、整数。
- 算法之DFS算法框架
- java运算符 与()、非(~)、或(|)、异或(^)
- pwnable.kr之Toddler‘s Bottle前八题知识点记录
- 并不能来一发50AC
- 性能监视器PerfMon v2.0 是一个流氓的汉化版
- AI图像照片动漫发型3D活化修复处理流量主小程序开发
- mysql 建表 myisam_数据库建表TYPE=MyISAM 与ENGINE=MyISAM 的区别