【ELM预测】基于极限学习机ELM实现数据预测matlab源码

article/2025/3/5 10:42:34

   一、极限学习机的概念

       极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法。

       ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。





二、极限学习机的原理

ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。

(选自黄广斌老师的PPT)

对于一个单隐层神经网络(见Figure 1),假设有个任意的样本,其中。对于一个有个隐层节点的单隐层神经网络可以表示为

其中,为激活函数,为输入权重,为输出权重,是第个隐层单元的偏置。表示的内积。

       单隐层神经网络学习的目标是使得输出的误差最小,可以表示为

即存在,使得

可以矩阵表示为

其中,是隐层节点的输出,为输出权重,为期望输出。

为了能够训练单隐层神经网络,我们希望得到,使得

其中,,这等价于最小化损失函数

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重和隐层的偏置被随机确定,隐层的输出矩阵就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统。并且输出权重可以被确定

其中,是矩阵的Moore-Penrose广义逆。且可证明求得的解的范数是最小的并且唯一。

 极限学习机的实现步骤
步骤一:获取数据。

步骤二:数据预处理,一般是采用极小极大归一化,消除数据量纲和数量级影响。

步骤三:训练ELM模型,求出隐含层和输出层的连接权值。

步骤四:对训练的模型,使用测试的输入数据进行预测。

步骤五:对预测的值,和实际的值,进行误差分析和作图。
 

三、粒子群算法

粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是搜寻目前距离玉米地最近的鸟群的周围区域。

在PSO中,每个优化问题的解都是搜索空间中的一只鸟,称之为"粒子",而问题的最优解就对应于鸟群中寻找的"玉米地"。所有的粒子都具有一个位置向量(粒子在解空间的位置)和速度向量(决定下次飞行的方向和速度),并可以根据目标函数来计算当前的所在位置的适应值(fitness value),可以将其理解为距离"玉米地"的距离。在每次的迭代中,种群中的例子除了根据自身的经验(历史位置)进行学习以外,还可以根据种群中最优粒子的"经验"来学习,从而确定下一次迭代时需要如何调整和改变飞行的方向和速度。就这样逐步迭代,最终整个种群的例子就会逐步趋于最优解。

上面的解释可能还比较抽象,下面通过一个简单的例子来进行说明

在一个湖中有两个人他们之间可以通信,并且可以探测到自己所在位置的最低点。初始位置如上图所示,由于右边比较深,因此左边的人会往右边移动一下小船。

现在左边比较深,因此右边的人会往左边移动一下小船

一直重复该过程,最后两个小船会相遇

得到一个局部的最优解

将每个个体表示为粒子。每个个体在某一时刻的位置表示为,x(t),方向表示为v(t)

p(t)为在t时刻x个体的自己的最优解,g(t)为在t时刻所有个体的最优解,v(t)为个体在t时刻的方向,x(t)为个体在t时刻的位置

下一个位置为上图所示由x,p,g共同决定了

种群中的粒子通过不断地向自身和种群的历史信息进行学习,从而可以找到问题的最优解。

但是,在后续的研究中表表明,上述原始的公式中存在一个问题:公式中V的更新太具有随机性,从而使整个PSO算法的全局优化能力很强,但是局部搜索能力较差。而实际上,我们需要在算法迭代初期PSO有着较强的全局优化能力,而在算法的后期,整个种群应该具有更强的局部搜索能力。所以根据上述的弊端,shi和Eberhart通过引入惯性权重修改了公式,从而提出了PSO的惯性权重模型:

每一个向量的分量表示如下

其中w称为是PSO的惯性权重,它的取值介于【0,1】区间,一般应用中均采用自适应的取值方法,即一开始令w=0.9,使得PSO全局优化能力较强,随着迭代的深入,参数w进行递减,从而使的PSO具有较强的局部优化能力,当迭代结束时,w=0.1。参数c1和c2称为学习因子,一般设置为1,4961;而r1和r2为介于[0,1]之间的随机概率值。

整个粒子群优化算法的算法框架如下:

step1种群初始化,可以进行随机初始化或者根据被优化的问题设计特定的初始化方法,然后计算个体的适应值,从而选择出个体的局部最优位置向量和种群的全局最优位置向量。

step2 迭代设置:设置迭代次数,并令当前迭代次数为1

step3 速度更新:更新每个个体的速度向量

step4 位置更新:更新每个个体的位置向量

step5 局部位置和全局位置向量更新:更新每个个体的局部最优解和种群的全局最优解

step6 终止条件判断:判断迭代次数时都达到最大迭代次数,如果满足,输出全局最优解,否则继续进行迭代,跳转至step 3。

  对于粒子群优化算法的运用,主要是对速度和位置向量迭代算子的设计。迭代算子是否有效将决定整个PSO算法性能的优劣,所以如何设计PSO的迭代算子是PSO算法应用的研究重点和难点。

三、部分代码

clc;clear;close all;
%% 初始化种群
N = 500;                         % 初始种群个数
d = 24;                          % 空间维数
ger = 300;                      % 最大迭代次数   % 设置位置参数限制(矩阵的形式可以多维)
vlimit = [-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;-0.5, 0.5;];               % 设置速度限制
c_1 = 0.8;                        % 惯性权重
c_2 = 0.5;                       % 自我学习因子
c_3 = 0.5;                       % 群体学习因子 for i = 1:dx(:,i) = limit(i, 1) + (limit(i, 2) - limit(i, 1)) * rand(N, 1);%初始种群的位置
end    
v = 0.5*rand(N, d);                  % 初始种群的速度
xm = x;                          % 每个个体的历史最佳位置
ym = zeros(1, d);                % 种群的历史最佳位置
fxm = 100000*ones(N, 1);               % 每个个体的历史最佳适应度
fym = 10000;                      % 种群历史最佳适应度
%% 粒子群工作
iter = 1;
times = 1; 
record = zeros(ger, 1);          % 记录器
while iter <= gerfor i=1:Nfx(i) = calfit(x(i,:)) ; % 个体当前适应度 endfor i = 1:N      if fxm(i) > fx(i)fxm(i) = fx(i);     % 更新个体历史最佳适应度xm(i,:) = x(i,:);   % 更新个体历史最佳位置end end
if fym > min(fxm)[fym, nmax] = min(fxm);   % 更新群体历史最佳适应度ym = xm(nmax, :);      % 更新群体历史最佳位置endv = v * c_1 + c_2 * rand *(xm - x) + c_3 * rand *(repmat(ym, N, 1) - x);% 速度更新% 边界速度处理for i=1:d for j=1:Nif  v(j,i)>vlimit(i,2)v(j,i)=vlimit(i,2);endif  v(j,i) < vlimit(i,1)v(j,i)=vlimit(i,1);endendend       x = x + v;% 位置更新% 边界位置处理for i=1:d for j=1:Nif  x(j,i)>limit(i,2)x(j,i)=limit(i,2);endif  x(j,i) < limit(i,1)x(j,i)=limit(i,1);endendendrecord(iter) = fym;%最大值记录iter = iter+1;times=times+1;
end
disp(['最小值:',num2str(fym)]);
disp(['变量取值:',num2str(ym)]);
figure
plot(record)
xlabel('迭代次数');
ylabel('适应度值')

 

 

 

 

 


http://chatgpt.dhexx.cn/article/6Rd1FxyH.shtml

相关文章

【ELM数据预测】粒子群算法优化ELM数据预测(含前后对比)【含Matlab源码 449期】

⛄一、粒子群算法优化极限学习机ELM简介 PSO-ELM优化算法预测模型 ELM模型在训练之前可以随机产生ω和b, 只需要确定隐含层神经元个数及隐含层神经元激活函数, 即可实现ELM预测模型的构建。在ELM模型的构建中, 只需确定初始ω和b, 而无需复杂的参数设置, 具有学习速度快、泛化…

免费不限速不限存储的网盘推荐

网盘这种东西倒闭的太多了&#xff0c;这年头存点东西真不容易&#xff0c;以前也陆陆续续用过很多网盘&#xff0c;但一直没统计&#xff0c;最近终于发现了一款好用的免费网盘推荐给大家。 替代对象&#xff1a;某度网盘 空间&#xff1a;超级会员免任务扩容至5T空间&…

“白嫖”时代进入最后倒计时,网盘行业到底是怎么由盛及衰的?

继金山网盘、UC网盘、新浪网盘、360网盘等等关停之后&#xff0c;网易网盘也要和大家说再见了。这是目前市场上最后一家完全免费的网盘&#xff0c;网易网盘的淡出也意味着网盘的免费时代终于还是画上了句号。 近日&#xff0c;网易宣布由于产品调整&#xff0c;网易网盘将于20…

在线付费听音乐平台网站源码

介绍&#xff1a; 越来越多音乐需要付费 今天免费给大家一款在线音乐源码 所有音乐免费听 付费音乐也可以 网盘下载地址&#xff1a; http://kekewl.org/PaFDdLJmVpB 图片&#xff1a;

「保护数据 人人有责」搭建免费可用的私有云 Next Cloud

前言 对于咱们个人来讲&#xff0c;早年都是白嫖各大厂商的公有云&#xff0c;各大厂商疯狂送空间&#xff0c;送起来像慈善家一样&#xff0c;一个T一个T的&#xff0c;但是随着时间的推移&#xff0c;以360网盘为代表的一批网盘倒下去了&#xff0c;上传的数据也只能再下载回…

微擎后端/知识付费阅读店铺小程序 V5.1.0 全套源码

简介&#xff1a; 更新动态&#xff1a; 版本号&#xff1a;5.1.0 – 普通版 [优化]优化后台基本设置操作体验 [优化]优化会员折扣功能的折后金额计算方式 [优化]优化视频文章预加载方式 [优化]优化全局图片懒加载流程 知识店铺内容付费阅读小程序&#xff0c;帮您轻松实现内容…

2023 诚通网盘在线解析无广告高速下载网站源码

对于用户来说&#xff0c;上传下载应该是网盘最大的痛点。而上传资源网盘肯定不会做限制&#xff0c;因为上传的资源越多&#xff0c;网盘占的市场份额会越大&#xff0c;所以只能从下载方面入手。 1.所以现在除了阿里外&#xff0c;其他的网盘不付费那就是给你几十K的速度&am…

又一知名云盘翻车:“免费不限量”变收费,用户被骗 5 年!

微信搜索逆锋起笔关注后回复编程pdf领取编程大佬们所推荐的 23 种编程资料&#xff01; 来源&#xff1a;扩展迷Extfans 互联网公司的套路有多深&#xff1f;坦白说&#xff0c;它们本质上没有任何区别。 最常见的操作大概就是&#xff1a;前期以各种免费福利圈养用户&#xff…

网盘的成本有多高?一个网盘成本是多少?

众所周知&#xff0c;中国的互联网产品都是建立在免费基础上的&#xff0c;当然这不是对企业&#xff0c;而是面向个人用户。 网盘作为现今存文件分享内容的一款新时代的云上U盘&#xff0c;几乎每个年轻人都有&#xff0c;目前比较有名的就是百度网盘&#xff0c;其他的几乎可…

百度网盘海外版免费不限速:真就是老用户与狗不得享受优惠?

去年9月30号&#xff0c;百度网盘宣布&#xff1a;以前享受2T免费空间的用户&#xff0c;有一部分将调整为100G。 当然了&#xff0c;付费用户肯定是不受影响的。 而免费的用户&#xff0c;除了空间被砍之外&#xff0c;那下载速度也…怎么说呢&#xff0c;硬是让我回忆起当年拨…

专业网盘设计分析

预计未来相当一段时间的主要精力会集中在优化一个行业专业网盘&#xff0c;其中主要的挑战是 大数据&#xff0c;某个行业第一公司一次迁移12TB 的业务资料&#xff0c;一个是并发&#xff0c;虽然是TB 业务&#xff0c;但是网盘的数据权限是企业主账户&#xff0c;一个主账户下…

新版知识付费系统付费阅读小程序源码知识付费平台

介绍&#xff1a; 2021知识付费系统付费阅读小程序源码知识付费平台源码。 知识付费的小程序源码的作用我就不多说了&#xff0c;现在都是知识付费的年代&#xff0c;也是付费学习的时代。 知识付费阅读小程序&#xff0c;带有代理&#xff0c;分销&#xff0c;课程资源更新等…

五大主流云盘横评对比,百度、腾讯、115、iCloud、OneDrive哪家更值得付费?

五大主流云盘横评对比&#xff0c;百度、腾讯、115、iCloud、OneDrive哪家更值得付费&#xff1f; 前言各大云盘免费服务对比各大云盘付费服务对比照片视频备份文件历史版本各家云盘会员购买建议百度网盘腾讯微云115网盘iCloudOneDrive 云盘安全吗&#xff1f;结尾 前言 互联网…

百度网盘无需开会员也能享受高速下载通道

实现背景 网盘属于特殊产物&#xff0c;对于大多数人而言&#xff0c;这只是一个偶尔需要用到的产品&#xff0c;所以付费意愿相对视频会员这些产品会相对没更低&#xff0c;再加上一些你懂的原因&#xff0c;让网盘的运营变得很困难&#xff0c;最终导致了目前国内的网盘现状…

【独立版】智创云享知识付费小程序V2_2.3.13知识付费小程序,含前端和资源库

应用介绍 【独立版】智创云享知识付费小程序V2_2.3.13知识付费小程序&#xff0c;含前端和资源库&#xff01; 智创云享知识付费系统是一款基于ThinkPHP6框架开发的虚拟资源知识付费小程序&#xff0c;为广大创业者、自媒体及培训机构提供知识付费、内容付费、资源变现等领域…

百度云盘停止服务器,又一家网盘关闭!不要再问为什么百度网盘要收费了

网盘一直是不少小伙伴采用的资料存储工具&#xff0c;看电影、刷剧、分享文件都非常的便捷&#xff0c;日渐变为广大用户工作、生活中必备的工具。然而&#xff0c;近年来国内的网盘运营商越来越少&#xff0c;继360云盘、金山网盘、迅雷快盘等产品之后&#xff0c;网易网盘也在…

【完美运营】创云享知识付费系统V2

创云享知识付费系统,定位于为广大创业者、自媒体及培训机构提供知识付费、内容付费、资源变现等领域的行业解决方案;全场景内容付费应用,多渠道营销推广方式、多种资源类型:付费文章、网盘资源、视频资源、音频课程、视频课程、卡密资源,轻松实现资源内容全方位运营变现。…

PHP云盘网盘系统源码+快速对接多家云存储+VIP付费下载功能

源码介绍&#xff1a; 快速对接多家云存储&#xff0c;支持腾讯云COS、阿里云OSS、自建远程服务器&#xff0c;当然&#xff0c;还有本地存储。 带3种主题和2种下载界面主题。 图片、音频、视频、文本。 移动端全站响应式布局。 文件、目录分享系统&#xff0c;可创建提取码分享…

docker实践第二版pdf 网盘_和付费网盘说再见,跟着本文自己起个网盘(Java 开源项目)

本文适合有 Java 基础知识的人群&#xff0c;跟着本文可学习和运行 Java 网盘项目。 本文作者&#xff1a;HelloGitHub-秦人 HelloGitHub 推出的《讲解开源项目》系列。 今天给大家带来一款开源 Java 版网盘项目—— kiftd-source&#xff0c;本文将用 3 分钟带大家搭建一个个人…

python 在线网盘源码_和付费网盘说再见,跟着本文自己起个网盘(Java 开源项目)...

本文适合有 Java 基础知识的人群&#xff0c;跟着本文可学习和运行 Java 网盘项目。 本文作者&#xff1a;HelloGitHub-秦人 HelloGitHub 推出的《讲解开源项目》[1]系列。 今天给大家带来一款开源 Java 版网盘项目—— kiftd-source[2]&#xff0c;本文将用 3 分钟带大家搭建一…