基于麻雀搜索算法的极限学习机(ELM)回归预测

文章目录

  • 基于麻雀搜索算法的极限学习机(ELM)回归预测
    • 1.极限学习机原理概述
    • 2.ELM学习算法
    • 3.回归问题数据处理
    • 4.基于麻雀搜索算法优化的ELM
    • 5.测试结果
    • 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} w=⎣⎢⎢⎡​w11​w21​...wl1​​w12​w22​wl2​​.........​w1,n​w2n​wln​​⎦⎥⎥⎤​(1)
其中,wnw_nwn​表示输入层第iii个神经元与隐含层第jjj个神经元间的连接权值。

图1. ELM网络结构

设隐含层与输出层间的连接权值 , 为β\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} b=⎣⎢⎢⎡​b1​b2​...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} X=⎣⎢⎢⎡​x11​x21​...xn1​​x12​x22​xn2​​.........​x1Q​x2Q​xnQ​​⎦⎥⎥⎤​(4)

Y=[y11y12...y1Qy21y22...y2Q...ym1ym2...ymQ](5)Y =\left[\begin{matrix}y_{11}&y_{12}&...&y_{1Q}\\ y_{21}&y_{22}&...&y_{2Q}\\ ...\\ y_{m1}&y_{m2}&...&y_{mQ} \end{matrix}\right]\tag{5} Y=⎣⎢⎢⎡​y11​y21​...ym1​​y12​y22​ym2​​.........​y1Q​y2Q​ymQ​​⎦⎥⎥⎤​(5)

设隐含层神经元的激活函数为 g(x),则由图1 可得, 网络的输出 T 为:
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)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​βi1​g(wi​xj​+bi​)∑i=1t​βi2​g(wi​xj​+bi​)...∑i=1t​βim​g(wi​xj​+bi​)​⎦⎥⎥⎤​m∗1​,(j=1,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∗x1+b1)g(w2∗x1+b2)...g(wl∗x1+bl)g(w1∗x2+b1)g(w2∗x2+b2)...g(wl∗x2+bl)...g(w1∗xQ+b1)g(w2∗xQ+b2)...g(wl∗xQ+bl)]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​∗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.回归问题数据处理

采用随机法产生训练集和测试集,其中训练集包含 1 900 个样 本,测试集包含 100 个样本。为了减少变量差异较大对模型性能的影响,在建立模型之前先对数据进行归一化。

4.基于麻雀搜索算法优化的ELM

麻雀搜索算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/108830958。

由前文可知,ELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用麻雀搜索算法对初始权值和阈值进行优化。适应度函数设计为训练集的误差的MSE:
fitness=argmin(MSEpridect)fitness = argmin(MSE_{pridect}) fitness=argmin(MSEpridect​)

适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳初始权值和阈值。然后利用最佳初始权值阈值训练后的网络对测试数据集进行测试。

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 MSE误差:0.00024974
SSA-ELM MSE误差:1.6571e-11

从MSE看,SSA-ELM明显优于基础ELM

6.参考文献

书籍《MATLAB神经网络43个案例分析》

7.Matlab代码

基于麻雀搜索算法的极限学习机(ELM)回归预测
基于遗传算法的极限学习机(ELM)回归预测
基于引力搜索算法的极限学习机(ELM)回归预测
基于粒子群的极限学习机(ELM)回归预测
基于鲸鱼算法的极限学习机(ELM)回归预测
基于樽海鞘算法的极限学习机(ELM)回归预测

基于麻雀搜索算法的极限学习机(ELM)回归预测 -附代码相关推荐

  1. 基于樽海鞘算法的极限学习机(ELM)回归预测-附代码

    基于樽海鞘算法的极限学习机(ELM)回归预测 文章目录 基于樽海鞘算法的极限学习机(ELM)回归预测 1.极限学习机原理概述 2.ELM学习算法 3.回归问题数据处理 4.基于樽海鞘算法优化的ELM ...

  2. 【预测模型-ELM预测】基于麻雀算法优化极限学习机预测附matlab代码

    1 内容介绍 一种基于麻雀搜索算法优化极限学习机的风电功率预测方法,具体包括如下步骤:步骤1,确定影响风电功率的主导影响因子:步骤2,构建麻雀搜索算法优化核极限学习机预测模型,通过该模型对风电功率进行 ...

  3. 【预测模型-ELM预测】基于原子搜索算法优化极限学习机预测matlab代码

    ​1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于原子搜索算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点 ...

  4. 基于麻雀搜索算法优化的支持向量机回归预测-附代码

    基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现 文章目录 基于麻雀搜索算法优化的支持向量机预测及其MATLAB代码实现 1. 基于麻雀搜索算法优化的支持向量机预测简介 1.1 支持向量机 ...

  5. 组合预测模型 | PSO-ELM、ELM极限学习机数据回归预测对比(Matlab程序)

    组合预测模型 | PSO-ELM.ELM极限学习机数据回归预测对比(Matlab程序) 目录 组合预测模型 | PSO-ELM.ELM极限学习机数据回归预测对比(Matlab程序) 预测结果 基本介绍 ...

  6. 【预测模型-ELM预测】基于蝙蝠算法优化极限学习机预测matlab代码

    1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于蝙蝠算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多, ...

  7. 基于哈里斯鹰算法的极限学习机(ELM)分类算法-附代码

    基于哈里斯鹰算法的极限学习机(ELM)分类算法 文章目录 基于哈里斯鹰算法的极限学习机(ELM)分类算法 1.极限学习机原理概述 2.ELM学习算法 3.分类问题 4.基于哈里斯鹰算法优化的ELM 5 ...

  8. 基于粒子群算法的极限学习机(ELM)分类算法-附代码

    基于粒子群算法的极限学习机(ELM)分类算法 文章目录 基于粒子群算法的极限学习机(ELM)分类算法 1.极限学习机原理概述 2.ELM学习算法 3.分类问题 4.基于粒子群算法优化的ELM 5.测试 ...

  9. 基于麻雀搜索算法优化的lssvm回归预测

    基于麻雀搜索算法优化的lssvm回归预测 - 附代码 文章目录 基于麻雀搜索算法优化的lssvm回归预测 - 附代码 1.数据集 2.lssvm模型 3.基于麻雀算法优化的LSSVM 4.测试结果 5 ...

  10. 【预测模型-ELM预测】基于布谷鸟算法优化极限学习机预测matlab代码

    1 简介 针对变压器故障的特征,结合变压器油中气体分析法以及三比值法.提出了基于布谷鸟算法改进极限学习机的故障诊断方法.由于输入层与隐含层的权值和阈值是随机产生.传统的极限学习机可能会使隐含层节点过多 ...

最新文章

  1. java实时获取android网速_获取Android网速的另一种方法
  2. ORB特征原理(浅显易懂)
  3. java在线书城系统_二手书城系统 本设计为基于JAVA的网上书店系统 - 下载 - 搜珍网...
  4. oracle 不查加锁的记录,oracle 锁查询 select加锁方法
  5. Django与CSRF 、AJAX
  6. 下载国外网站资料需java_Java开发必知道的国外10大网站
  7. 会玩!今年天猫双11可以买房了 还是特价 网友:满300减40吗?
  8. python3语音控制电脑_python语音控制电脑_uusee全屏
  9. Oracle收购Talari,第一家SD-WAN公有云提供商出现
  10. python go rpc_Python RPC 之 gRPC
  11. safari only css hack,css hack同时针对Safari和Chrome进行攻击
  12. maven3实战之设置HTTP代理
  13. 让人耗尽脑汁的需求分析工作(转--Fireball)
  14. 基于SSM的电影购票系统
  15. c#如何调用php接口方法参数类型,c# – .NET:使用通用接口参数调用Assembly obj的GetInterface方法...
  16. Java试题库(含答案)
  17. 脱离极域电子教室软件控制策略(实测有效)
  18. 工程师职业发展的四个阶段
  19. html当当网上书店,完整版:当当网上书店
  20. python pip中的Fatal error in launcher错误及解决

热门文章

  1. sql怎么把小数变百分比_Excel怎么自动算出百分比?
  2. ajax实现评论区功能,Ajax实现评论中顶和踩功能的实例代码
  3. raft算法_MIT 6.824 分布式系统 | Lab 2A:Raft选举
  4. python开发是不是苦累_程序员又苦又累,程序员教师可能成为未来最理想职业!...
  5. mysql 事务_详解mysql如何做事务
  6. mysql 该字符串未被识别为有效的 datetime_打印报错,提示该字符串未被识别为有效的datetime...
  7. php mysql随机抽奖源码_PHP随机按百分比抽奖
  8. 山东科技大学计算机基础知识,山东科技大学_计算机操作系统试题
  9. linux zmq编译pgm,czmq交叉编译
  10. dedecms 会员发布的信息后台未审核,前台显示审核修改