当前位置: 首页 > news >正文

三合一商城网站知名网站制作公司青岛分公司

三合一商城网站,知名网站制作公司青岛分公司,网站建设与管理专业人才调研,全国做网站排行回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测 目录 回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现DBN-ELM深度置信网络结合极限学习…

回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测

目录

    • 回归预测 | MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测
      • 预测效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

预测效果

1
2
3

基本介绍

1.MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测;
2.多输入单输出回归预测。
3.深度信念网络,DBN,Deep Belief Nets,神经网络的一种。既可以用于非监督学习,类似于一个自编码机;也可以用于监督学习,作为分类器来使用。DBN由若干层神经元构成,组成元件是受限玻尔兹曼机(RBM)。
RBM是一种神经感知器,由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。限制玻尔兹曼机和玻尔兹曼机相比,主要是加入了“限制”。限制玻尔兹曼机可以用于降维(隐层少一点),学习特征(隐层输出就是特征),深度信念网络(多个RBM堆叠而成)等。

1

模型描述

受限玻尔兹曼机(RBM)是一种具有随机性的生成神经网络结构,它本质上是一种由具有随机性的一层可见神经元和一层隐藏神经元所构成的无向图模型。它只有在隐藏层和可见层神经元之间有连接,可见层神经元之间以及隐藏层神经元之间都没有连接。并且,隐藏层神经元通常取二进制并服从伯努利分布,可见层神经元可以根据输入的类型取二进制或者实数值。

2

程序设计

  • 完整源码和数据获取方式:私信博主回复MATLAB实现DBN-ELM深度置信网络结合极限学习机多输入单输出回归预测
%受限玻尔兹曼机预训练程序
% This program trains Restricted Boltzmann Machine in which
% visible, binary, stochastic pixels are connected to
% hidden, binary, stochastic feature detectors using symmetrically
% weighted connections. Learning is done with 1-step Contrastive Divergence.   
% The program assumes that the following variables are set externally:
% maxepoch  -- maximum number of epochs
% numhid    -- number of hidden units 
% batchdata -- the data that is divided into batches (numcases numdims numbatches)
% restart   -- set to 1 if learning starts from beginning 
% 参数设置
epsilonw      = 0.01;   % Learning rate for weights 权值学习率
epsilonvb     = 0.01;   % Learning rate for biases of visible units可视节点的偏置学习率 
epsilonhb     = 0.01;   % Learning rate for biases of hidden units 隐含节点的偏置学习率
weightcost  = 0.0008;   %权重衰减系数
initialmomentum  = 0.5; %初始动量项
finalmomentum    = 0.9; %确定动量项[numcases,numdims ,numbatches]=size(batchdata);if restart ==1,restart=0;epoch=1;% Initializing symmetric weights and biases. vishid     = 0.1*randn(numdims, numhid);%可视节点到隐含节点之间的权值初始化hidbiases  = zeros(1,numhid);%隐含节点的初始化为0visbiases  = zeros(1,numdims);%可视节点偏置初始化为0poshidprobs = zeros(numcases,numhid);%初始化单个迷你块正向传播时隐含层的输出概率neghidprobs = zeros(numcases,numhid);posprods    = zeros(numdims,numhid);negprods    = zeros(numdims,numhid);vishidinc  = zeros(numdims,numhid);hidbiasinc = zeros(1,numhid);visbiasinc = zeros(1,numdims);%整个数据集正向传播时隐含层的输出概率batchposhidprobs=zeros(numcases,numhid,numbatches);
endfor epoch = epoch:maxepoch,%所有迭代次数%fprintf(1,'epoch %d\r',epoch); errsum=0;for batch = 1:numbatches, %每次迭代都遍历所有的数据块%fprintf(1,'epoch %d batch %d\r',epoch,batch); %%%%%%%%% 开始正向阶段的计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%data = batchdata(:,:,batch);      %每次迭代选择一个迷你块的数据,,每一行代表一个样本值%这里的数据并非二值的,严格来说,应该将其进行二值化poshidprobs = 1./(1 + exp(-data*vishid - repmat(hidbiases,numcases,1)));   %计算隐含层节点的输出概率,所用的是sigmoid函数%%%计算正向阶段的参数统计量%%%%%%%%%%%%%%%%%%%%batchposhidprobs(:,:,batch)=poshidprobs;posprods    = data' * poshidprobs;%用可视节点向量和隐含层节点向量的乘积计算正向散度统计量poshidact   = sum(poshidprobs);   %针对样本值进行求和,用于计算隐含节点的偏置posvisact = sum(data);             %对数据进行求和,用于计算可视节点的偏置,当迷你块中样本的个数为1时,% 求得的偏置向量中的又换宿相同,此时会影响预训练的结果%%%%%%%%% 正向阶段结束  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%poshidstates = poshidprobs > rand(numcases,numhid);%将隐含层的概率激活值poshidprobs进行0.1二值化,按照概率值大小来判定。rand(m,n)产生%m*n大小的矩阵,将poshidprobs中的值和rand产生的比较,如果大于随机矩阵对应位置的值,则将其相应位置为1,否则为0%%%%%%%%% 开始反向阶段的计算  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%negdata = 1./(1 + exp(-poshidstates*vishid' - repmat(visbiases,numcases,1)));%反向阶段计算可视节点的值neghidprobs = 1./(1 + exp(-negdata*vishid - repmat(hidbiases,numcases,1)));    %计算隐含层节点的概率值negprods  = negdata'*neghidprobs;%计算反向散度统计量neghidact = sum(neghidprobs);negvisact = sum(negdata); %%%%%%%%% 反向阶段结束 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%err= sum(sum( (data-negdata).^2 ));%计算训练集中原始数据和重构数据之间的重构误差errsum = err + errsum;if epoch>5,momentum=finalmomentum;         %在迭代更新参数过程中,前4次使用初始动量项,之后使用确定动量项elsemomentum=initialmomentum;end;%%%%%%%%%以下代码用于更新权值和偏置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% vishidinc = momentum*vishidinc + ...%权值更新时的增量epsilonw*( (posprods-negprods)/numcases - weightcost*vishid);visbiasinc = momentum*visbiasinc + (epsilonvb/numcases)*(posvisact-negvisact);%可视层偏置更新时的增量hidbiasinc = momentum*hidbiasinc + (epsilonhb/numcases)*(poshidact-neghidact);%隐含层偏置更新时的增量vishid = vishid + vishidinc;%更新权值visbiases = visbiases + visbiasinc;%更新可视层偏置hidbiases = hidbiases + hidbiasinc;%更新隐含层偏置%%%%%%%%%%%%%%%% END OF UPDATES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end%fprintf(1, 'epoch %4i error %6.1f  \n', epoch, errsum); 
end;
%%%每次迭代结束后,显示训练集的重构误差

参考资料

[1] https://blog.csdn.net/article/details/126195343?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/article/details/126189867?spm=1001.2014.3001.5501

http://www.yayakq.cn/news/11863/

相关文章:

  • 网站顶部地图代码怎么做电脑如何制作网页教程
  • 网站建设客户去哪找网站静态和动态区别是什么
  • 稻壳企业网站模板仿我喜欢网站源码免费
  • 免费网站提供企业网站开发的功能
  • 北京网站制作的公司哪家好网站开发项目心得
  • 网站建设w亿玛酷1负责制作软件需要什么工具
  • 石家庄网站建设策略wordpress inaction
  • 做网站不会P图怎么办网页历史记录在哪里
  • 能在线做国二计算机题目的网站软件工程造价师
  • 海林建设局网站买东西网站有哪些
  • 防城港做网站lnmp搭建网站
  • 校园网站建设方案模板石岩小学网站建设
  • 商业网站自主设计移动网站怎么做优化
  • 郑州市经开区建设局网站信息流广告投放渠道
  • 二级区域网站名网站建设公司人员组成
  • 石家庄营销网站建设多少钱天津seo实战培训
  • 东莞网站建设制作哪家好网站想要被收录要怎么做
  • 公司网站域名cn和com网站建设工作室北京小俊哥
  • 进网站备案建设信用卡分期购物网站
  • 笑话网站 wordpress网页制作公司代码
  • dw网页设计与制作步骤徐州网络优化招聘网
  • 专注东莞微信网站设计linux做网站配置
  • 网站建设计入什么会计科目wordpress增加留言板
  • 网站设计 验收标准wordpress 手机门户
  • 网上提供免费主页空间的网站儿童编程培训机构
  • 费县住房和城乡建设局网站厚街做网站价格
  • form e哪个网站做wordpress mohtml
  • 福建省交通建设质量安全监督局网站临安做网站的公司
  • 南宁网站建设公司哪家专业中山搜索排名提升
  • php网站开发 招聘丰功网站建设