蝗虫优化算法(GOA)优化深度置信网络DBN【matlab源码】
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源码】相关推荐
- 单目标应用:瞪羚优化算法GOA求解旅行商问题TSP(提供Matlab代码)
一.瞪羚优化算法 瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效. 瞪 ...
- 【DBN分类】基于matlab深度置信网络DBN变压器故障诊断【含Matlab源码 2284期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[DBN分类]基于matlab深度置信网络DBN变压器故障诊断[含Matlab源码 2284期] 获取代码方式2: 付费专栏Matlab智 ...
- 深度学习基础--不同网络种类--深度置信网络(DBN)
深度置信网络(DBN) RBM的作用就是用来生成似然分布的互补先验分布,使得其后验分布具有因子形式. 因此,DBN算法解决了Wake-Sleep算法表示分布难以匹配生成分布的难题,通过RBM使 ...
- 【风电功率预测】基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测【含Matlab源码 1314期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [风电功率预测]基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测[含Matlab源码 1314期] ⛄二.帝国殖民竞争算法简 ...
- 【总结】关于玻尔兹曼机(BM)、受限玻尔兹曼机(RBM)、深度玻尔兹曼机(DBM)、深度置信网络(DBN)理论总结和代码实践
近期学习总结 前言 玻尔兹曼机(BM) 波尔兹曼分布推导过程 吉布斯采样 受限玻尔兹曼机(RBM) 能量函数 CD学习算法 代码实现受限玻尔兹曼机 深度玻尔兹曼机(DBM) 代码实现深度玻尔兹曼机 深 ...
- 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...
- matlab dbns实现,深度置信网DBNs的源码
深度置信网DBNs的源码 matlab 2021-2-14 下载地址 https://www.codedown123.com/63403.html 一个 深度置信网DBNs的源码,这是一个用于深度置信 ...
- 【APF三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】
一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab人工势场算法无人机三维 ...
- 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】
一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...
- 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】
一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...
最新文章
- python制作二级菜单_python实现二级登陆菜单及安装过程
- PHP后期静态绑定概念和用法
- Logstash完成ELK集群
- 深入浅出之函数的参数传递方式
- 康托展开与逆展开(原理+模板)
- 好代码是管出来的——Git的分支工作流与Pull Request
- 菜鸟裹裹电脑版_【绵阳最新转让】3500低价出售家用制氧机!东芝i5笔记本电脑、索尼微单相机、联想笔记本电脑、奶茶店、服装店转让......
- java kcp,重新认识KCP - osc_rreaoxa0的个人空间 - OSCHINA - 中文开源技术交流社区
- l和l_L&T的完整形式是什么?
- 再拔头筹,FusionInsight为华为云大数据打造硬实力
- 虚拟机环境下ansible方式部署tidb3.0时系统检测不通过
- ipython 更好的交互环境
- MySQL只有80端口开放_Centos 开放80端口
- 向一个文件中写入字符,可以规定每行字数
- 从客户端登陆服务器的配置文件,从客户端登陆服务器的配置
- 医学图像之DICOM格式解析
- python购物车代码_(Python基础)简单购物车代码
- 安利一个npm包:mddir,可以生成项目的工程结构
- 表情分析计算机,利用深度学习和计算机视觉进行面部表情分析
- cannot find package “github.com/PuerkitoBio/goquery“ in any of