基于黏菌算法的极限学习机(ELM)回归预测-附代码

news2024/11/18 7:30:07

基于黏菌算法的极限学习机(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]mQ,tj=[t1j,...,tmj]T= i=1tβi1g(wixj+bi)i=1tβi2g(wixj+bi)...i=1tβimg(wixj+bi) m1,(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(w1x1+b1)g(w1x2+b1)...g(w1xQ+b1)g(w2x1+b2)g(w2x2+b2)g(w2xQ+b2).........g(wlx1+bl)g(wlx2+bl)g(wlxQ+bl) Ql

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/113710762

由前文可知,ELM的初始权值和阈值都是随机产生。每次产生的初始权值和阈值具有满目性。本文利用黏菌算法对初始权值和阈值进行优化。适应度函数设计为训练集的误差的MSE:
f i t n e s s = a r g m i n ( M S E p r i d e c t ) 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)];%上边界

将经过黏菌优化后的ELM与基础ELM进行对比。

预测结果如下图

在这里插入图片描述

基础ELM MSE误差:0.0020092
SMA-ELM MSE误差:3.6457e-11

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

6.参考文献

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

7.Matlab代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/485606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国民技术N32G430开发笔记(15)- IAP升级 树莓派串口发送数据

IAP升级 树莓派串口发送数据 1、树莓派接入usb转串口模块后,会生成/dev/ttyUSB0节点,因为树莓派内核已经编译usb_serial以及各模块的驱动。 我们直接对ttyUSB0节点编程即可。 2、协议同上一节 cmd data_lenght data0 … datax checksum 1、获取版本…

AutoDL-GPU租用平台使用(LLM 备用)

网址:AutoDL-品质GPU租用平台-租GPU就上AutoDL 1 打开网址 查看下显卡型号及价格:A100 ( 80 G 显存) 6.68/小时 、4090(24G 显存)2.68/小时 2 创建实例 1.注册登录后进入控制台(页面右上角)&#xff0…

08 KVM虚拟机配置-总体介绍

文章目录 08 KVM虚拟机配置-总体介绍8.1 概述8.2 基本格式8.3 配置流程 08 KVM虚拟机配置-总体介绍 8.1 概述 Libvirt工具采用XML格式的文件描述一个虚拟机特征,包括虚拟机名称、CPU、内存、磁盘、网卡、鼠标、键盘等信息。用户可以通过修改配置文件,对…

【应急响应】日志自动提取分析项目ELKLogkitLogonTracerAnolog等

日志自动提取-七牛Logkit&观星应急工具 1、七牛Logkit:(Windows&Linux&Mac等) https://github.com/qiniu/logkit/ 支持的数据源(各类日志,各个系统,各个应用等) File: 读取文件中的日志数据,包…

第二章 主机规划与磁盘分区

要安装好一部Linux主机并不是那么简单的事情,你必须要针对distributions的特性、服务器软件的能力、未来的升级需求、硬件扩充性需求等等来考虑,还得要知道磁盘分区、文件系统、Linux操作较频繁的目录等等,都得要有一定程度的了解才行。 2.1…

训练CV模型常用的Tips Tricks

训练CV模型常用的Tips & Tricks主要从以下9个方面进行介绍: 图像增强更好的模型学习率和scheduler优化器正则化手段标签平滑知识蒸馏伪标签错误分析 1. 图像增强 以下列出了许多增强方式,有的甚至没见过,但是也不是每一种增强方式都是…

极化码的入门与探索

文章目录 极化码的基础先验知识二进制输入离散无记忆信道模型(Binary-input Discreten Memoryless Channel, B-DMC)二进制离散输入信道的ML判决和错误率B-DMC相关参数的定义和理解 两信道极化N信道极化的解释信道极化分解的蝶形结构补充:生成矩阵的结构 极化码的基础…

Python算法设计 - 快速排序

目录 一、快速排序二、Python算法实现 一、快速排序 快速排序的概念相信大家都能理解,下面这个算法是基于同样想法的另一种算法,其中利用到了分区。如果实施正确,这是一种非常有效的算法,在预期的O(n.log n) 时间内运行&#xff…

性能测试场景分析并设计?超细案例讲解,看这篇就够了

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试场景&…

1.1 基于B/S 结构的 Web 应用

文章目录 1.1 基于B/S 结构的 Web 应用1.2 JDK安装与配置1.3 服务器Tomcat下载与安装1.4 Eclipse安装与使用1.4.1 Eclipse 下载及创建Dynamic Web Project1.4.2 Eclipse 中的编码问题1.4.3 将Tomcat和Eclipse相关联1.4.4 Eclipse 自动部署项目到 Tomcat 的 webapps 目录 1.5 My…

ChatGLM-6B模型微调实战(以 ADGEN (广告生成) 数据集为例)

1 介绍 对于 ChatGLM-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,差不多需要 7GB或则8GB 显存即可运行。 2 环境 2.1 python 环境 conda create -n py310_cha…

go 打包文件夹成zip文件

go 打包文件夹成zip文件 代码有些乱,找不到合适的例子,和优雅的代码 当前代码打包文件是在 需要打包的目录下,测试的时候注意文件翻倍容量 writer, err : zzip.CreateHeader(header) //这里创建文件时注意不要用完整路径 zip中会生产完整路径…

【51单片机】蜂鸣器

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 🍔效果 (注意听声音哦) 按…

Blob File

文章目录 学习链接Blob创建演示 分片演示 Fileinput手动拖拽fetch 从后端获取流前端代码后端代码 window.showOpenFilePicker Filereader示例1示例2 ArrayBuffer创建bufferTypedArray读写bufferDataView读写buffer与Blob对比 Blob Url & DataUrl示例1示例2 学习链接 Blog …

WIFI密码hacking学习

1 wifite sudo -i 切换到root终端,执行wifite CtrlC 停止WIFI列表扫描 这里选择爆破目标1,他会先监听客户端和wifi的连接的数据包,然后用wordlist-probable.txt里面的字典进行爆破 区别 WPS 是 no 的和yes no会自动化爆破 这种模式默认下…

软件测试行业前景怎么样

软件测试工程师工作好找,但是企业有时却很难招聘到合适的软件测试工程师,这是因为现在企业需要的是自动化测试人才和测试开发人才!前些年的手动测试员早已不能满足企业现在的发展需求。 随着人工智能时代的到来,IT行业受到了越来…

从‘孔乙己长衫’现象看社会不公

孔乙已是鲁迅笔下人物,穷困流倒还穿着象征读书人的长衫,迁腐、麻木。最近,大家自我调佩是“当代孔乙己”,学历成为思想负担,找工作时高不成低不就。 认识孔乙己 孔乙己是清朝末年的小贩,生活在贫苦的阶层…

ubuntu22.04安装与配置

目录 一、环境及下载 iso下载 VM配置 二、虚拟机与环境配置 虚拟机开始后的配置 一些工具配置 参考: VMware Workstation Pro 文档 一、环境及下载 iso下载 Download Ubuntu Desktop | Download | Ubuntu 新出了23但是偶数年份稳定支持,所以我…

openai接口调用-如何接入openai获取 api key

openai api key获取 获取 OpenAI API Key 非常简单,您只需要按照以下步骤进行操作: 创建 OpenAI 账户。如果您还没有 OpenAI 账户,请访问 OpenAI 官网(http://openai.com/signup)并创建一个帐户。登录您的 OpenAI 账户。使用您的…

docker安装ES、kibana和IK分词器

拉取镜像 docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2创建存储数据的目录 mkdir -p /home/lab1018/docker_volume/elasticsearch/config mkdir -p /home/lab1018/docker_volume/elasticsearch/data mkdir -p /home/lab1018/docker_volume/elasticsearch/plugi…