1.GOA算法

1.1简介

GOA是一种用于全局优化的新型元启发式算法提出的蝗虫优化算法(GOA)在数学上模拟并模拟了蝗虫群的行为,以解决优化问题。提出了一种称为蚱蜢优化算法(GOA)的优化算法,并将其应用于结构优化中具有挑战性的问题。该算法通过数学建模和模拟自然界中蝗虫群的行为来解决优化问题。

1.2算法数学模型

用于模拟蝗虫群集行为的数学模型如下

其中,Xi表示第i只蚱蜢的位置,Si表示社会相互作用,Gi表示第i只蚱蜢上的重力,Ai表示风平流。Si由如下方程求解:

式中,dij是第i个和第j个蚱蜢之间的距离。

定义s函数计算如下:

然而,这个数学模型不能直接用于解决优化问题,主要是因为蝗虫很快到达舒适区,而蝗虫群不会收敛到指定的点。为了解决优化问题,该方程的修改版本:

上式表明,蚱蜢的下一个位置是根据其当前位置、目标位置和所有其他蚱蜢的位置来确定的。请注意,该方程式的第一部分考虑了当前蝗虫相对于其他蝗虫的位置。事实上,我们已经考虑了所有蚱蜢的状态来定义目标周围搜索代理的位置。这与PSO不同,PSO是文献中最受欢迎的群体智能技术。在粒子群优化算法中,每个粒子有两个向量:位置向量和位置向量。然而,GOA中每个搜索代理只有一个位置向量。GOA根据搜索代理的当前位置、全球最佳位置和所有其他搜索代理的位置更新搜索代理的位置。这意味着在粒子群优化算法中,没有任何其他粒子有助于更新粒子的位置,而GOA要求所有搜索代理参与定义每个搜索代理的下一个位置。

2、DBN深度置信网络

DBN (deep belief network,深度置信网络),是使用RBM(Restricted Boltzmann Machines,受限波尔兹曼机 )构成的一种深度神经网络。

DBN 在训练模型的过程中主要分为两步:

第1步:按照顺序依次训练每一层RBM网络,确保特征向量映射到不同特征空间时,能保留尽可能多的特征信息;

第2步:在DBN最后一层设置BP网络,同时将最后一个RBM的输出特征向量作为BP网络的输入特征向量,有监督地训练实体关系分类器。接着反向传播网络将错误信息自顶向下传播至每一层 RBM,微调整个 DBN 网络。

在训练模型中,第1步称作预训练,第2步称作微调。有监督学习不一定是BP网络,可以根据需要换成任何分类器模型。

DBN算法本质

从其非监督学习的部分来讲,目的是尽可能地保留原始特征的特点,同时降低特征的维度;

从其有监督学习的部分来讲,目的在于使得分类错误率尽可能地小。

不论是监督学习还是非监督学习,DBN算法本质都是Feature Learning的过程,即如何得到更好的特征表达。

3.GOA优化DBN参数

本文使用GOA算法对DBN网络的学习率和两个隐含层节点数进行优化。

主要流程为:

1.首先通过matlab代码建立DBN网络

train_x=mapminmax(train_x')';
test_x=mapminmax(test_x')';
train_x = double(train_x);
test_x  = double(test_x);
train_y = double(train_y);
test_y  = double(test_y);rand('state',0)
%train dbn
dbn.sizes = [30];
opts.numepochs =   100;
opts.batchsize = 12;
opts.momentum  =   0.01;
opts.alpha     =   0.1;
dbn = dbnsetup(dbn, train_x, opts);
dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nn  将DBN展开到NN
nn = dbnunfoldtonn(dbn, 27);
nn.activation_function = 'sigm'; % 可能换一下。
nn.output='sigm';
%
%train nn
opts.numepochs =  1;
opts.batchsize = 12;
nn = nntrain(nn, train_x, train_y, opts);

2. 将DBN网络的学习率和隐含层节点作为GOA算法的优化变量

3.自定义目标函数,将DBN网络的误差作为算法的评价函数

4.迭代训练得到最优的DBN网络参数。

代码整理架构:

GOA算法的代码清单:

完整代码包获取链接:

蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】相关推荐

  1. 单目标应用:瞪羚优化算法GOA求解旅行商问题TSP(提供Matlab代码)

    一.瞪羚优化算法 瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效. 瞪 ...

  2. 【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[DBN分类]基于matlab深度置信网络DBN变压器故障诊断[含Matlab源码 2284期] 获取代码方式2: 付费专栏Matlab智 ...

  3. 深度学习基础--不同网络种类--深度置信网络(DBN)

    深度置信网络(DBN)   RBM的作用就是用来生成似然分布的互补先验分布,使得其后验分布具有因子形式.   因此,DBN算法解决了Wake-Sleep算法表示分布难以匹配生成分布的难题,通过RBM使 ...

  4. 【风电功率预测】基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测【含Matlab源码 1314期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [风电功率预测]基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测[含Matlab源码 1314期] ⛄二.帝国殖民竞争算法简 ...

  5. 【总结】关于玻尔兹曼机(BM)、受限玻尔兹曼机(RBM)、深度玻尔兹曼机(DBM)、深度置信网络(DBN)理论总结和代码实践

    近期学习总结 前言 玻尔兹曼机(BM) 波尔兹曼分布推导过程 吉布斯采样 受限玻尔兹曼机(RBM) 能量函数 CD学习算法 代码实现受限玻尔兹曼机 深度玻尔兹曼机(DBM) 代码实现深度玻尔兹曼机 深 ...

  6. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  7. matlab dbns实现,深度置信网DBNs的源码

    深度置信网DBNs的源码 matlab 2021-2-14 下载地址 https://www.codedown123.com/63403.html 一个 深度置信网DBNs的源码,这是一个用于深度置信 ...

  8. 【APF三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab人工势场算法无人机三维 ...

  9. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  10. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

最新文章

  1. python制作二级菜单_python实现二级登陆菜单及安装过程
  2. PHP后期静态绑定概念和用法
  3. Logstash完成ELK集群
  4. 深入浅出之函数的参数传递方式
  5. 康托展开与逆展开(原理+模板)
  6. 好代码是管出来的——Git的分支工作流与Pull Request
  7. 菜鸟裹裹电脑版_【绵阳最新转让】3500低价出售家用制氧机!东芝i5笔记本电脑、索尼微单相机、联想笔记本电脑、奶茶店、服装店转让......
  8. java kcp,重新认识KCP - osc_rreaoxa0的个人空间 - OSCHINA - 中文开源技术交流社区
  9. l和l_L&T的完整形式是什么?
  10. 再拔头筹,FusionInsight为华为云大数据打造硬实力
  11. 虚拟机环境下ansible方式部署tidb3.0时系统检测不通过
  12. ipython 更好的交互环境
  13. MySQL只有80端口开放_Centos 开放80端口
  14. 向一个文件中写入字符,可以规定每行字数
  15. 从客户端登陆服务器的配置文件,从客户端登陆服务器的配置
  16. 医学图像之DICOM格式解析
  17. python购物车代码_(Python基础)简单购物车代码
  18. 安利一个npm包:mddir,可以生成项目的工程结构
  19. 表情分析计算机,利用深度学习和计算机视觉进行面部表情分析
  20. cannot find package “github.com/PuerkitoBio/goquery“ in any of

热门文章

  1. 专利与论文-6:《专利权利要求书》的撰写与注意事项
  2. 使用libpng读写PNG图片
  3. 精品H5小游戏源码-免费下载
  4. Java自学第15天 面向对象(全)
  5. Windows环境下用nmake编译libevent
  6. goeasy java_Java GoEasy 实现服务端推送和Web端推送
  7. 如何将3DMAX参数重置为默认值?
  8. jspstudy oracle,tomcat出错,大神们来看看呐
  9. 如何将APP安装包发布到360手机助手上
  10. docker视频教程 百度云网盘