一、鸟群算法优化BP神经网络简介

1 BP 神经网络
BP神经网络是一种按误差逆向传播算法训练的多层前馈网络, 主要由输入层、中间层和输出层组成, 拓扑结构如图1所示. BP 神经网络是通过不断对样本进行训练, 并调整网络的权值与阈值, 使输出值与期望值间的误差最小. BP 神经网络算法主要包括两部分: 信号正向传播与误差反向传播. 其算法示意图如图2所示.

图 1 三层前馈神经网络

图 2 BP 神经网络学习算法示意图
BP 神经网络算法学习过程: 正向传播时, 样本信号通过输入层、隐含层和输出层被逐层处理, 网络的权值不变, 且同层的神经元只作用于后一层的神经元.当输出值达不到预期值时, 则进行误差反向传播. 误差反向传播时, 误差信号通过从输出层向隐含层、输入层逐层传播. 通过误差不断调整网络的权值与阈值, 使均方误差最小, 从而使得输出值更接近期望值.

2 鸟群算法 (BSA)
鸟类主要是通过觅食行为、警戒行为和飞行行为 3 种行为共享信息, 而获取生存优势. 鸟群算法的灵感起于鸟群, 它是基于信息共享机制及搜索策略而发展起来的一种新型全局优化算法. xti(i = 1,2,··· ,N) 设鸟 N 群规模为, 搜索空间的维数为 D, 第 i 只鸟在觅食空间中第 t 时刻的位置可表示为 .针对极小值优化问题, 最小适应度值所对应的鸟个体所处的空间位置即为待优化问题的最优解. BSA 算法的数学模型如下[15]. P (P ∈ (0 , 1))如果一个在 (0,1) 范围内均匀分布的随机数小于
, 那么鸟将进行觅食行为; 否则, 鸟将进行保持警戒行为.觅食行为的数学描述为:

警戒行为的数学式描述为:

飞行行为中生产者和索取者的行为数学描述分别为:

上述公式符号说明如表 3 所示.
BSA 算法与 PSO 算法均是模仿鸟群在自然界中的行为提出的, 其中 PSO 算法只是单纯的模仿了鸟群的觅食行为, 而 BSA 算法模仿了觅食行为、警戒行为和飞行行为 3 种行为. BSA 算法是一种先天的集成算法, PSO 算法则是在适当简化下的 BSA 算法的特殊情况, 其觅食公式与 PSO 算法公式的相似, 所以 BSA 算法具有 PSO 算法的优势, 即收敛速度快、全局搜索能力强、鲁棒性能好等优点. BSA 算法又模仿了鸟类的警觉行为和生产者的行为, 所以又具有自己的特征. 因 BSA 算法具有 4 种搜索策略, 使其能灵活调整不同搜索策略并更易于扩展, 可看出它具有良好的多样性和稳定性. 相对 PSO 算法易陷入局部最优解与易早熟收敛的劣势, BSA 算法则更加稳定且可避免早熟收敛. 总之, BSA 算法的性能优于 PSO 算法, 具有更高的精度、效率、稳定性、收敛性和鲁棒性能.

3 BSA 算法优化 BP 神经网络
BSA 算法优化 BP 神经网络的基本思想是: 利 用 BSA 算法的全局搜索能力, 优化 BP 神经网络初始的权值和阈值, 也就是决策变量, 其中每一组决策变量均包含在鸟群个体所处的空间位置中. 然后, 通过适应度函数来衡量个体所处空间位置的优劣度, 并利用鸟群觅食过程中的觅食行为、警戒行为和飞行行为等策略不断更新个体空间位置, 直至获取最佳的个体空间位置, 即获得待优化问题的最佳决策变量.
表 3 公式符号说明
BSA-BP 算法预测 PMV 指标主要包括以下几个部分: 确定训练样本数据、设计 BP 神经网络结构、利用 BSA 算法优化 BP 神经网络初始的权值和阈值、训练优化后的网络. 具体实现步骤如下:
步骤 1. 确定训练样本数据. 确定所需输入变量的取值范围; 然后, 根据 PMV 指标的数学模型, 利用
MATLAB 软件编辑 PMV 指标的计算程序, 获取相当数量的样本数据; 最后, 经过预处理, 作为 BP 神经网络的训练样本和测试样本数据.
步骤 2. 设计 BP 神经网络结构. 依据标准 BP 神经网络模型以及 PMV 指标的数学模型, 确定 BP 神经网络的层数、每层的神经元数, 以及其他参数.
步骤 3. 确定 BSA 算法中各参数. 包括初始化种群规模 N、搜索空间维数 D、最大迭代次数 T、飞行间隔 FQ、觅食概率 P、常量 C、S、a1、a2、FL 以及随机初始化鸟群个体空间位置 xti.
步骤 4. 计算 BSA 算法的适应度函数值, 将样本的均方误差作为适应度函数, 找到最小的适应度值, 并保留当前最好个体空间位置. 判断算法终止条件是否满足, 若满足则转至步骤 6, 否则执行步骤 5.
步骤 5. BSA 算法优化 BP 神经网络初始的权值和阈值. 依据 BSA 算法的步骤, 不断迭代进行寻优, 直到迭代停止, 输出全局最优值, 也就是最优网络初始的权
值和阈值, 并将其赋给 BP 神经网络.
步骤 6. 训练 BSA 算法优化后的 BP 神经网络. 网络经训练结束后, 将得到最佳的 PMV 指标预测模型.
上面所述的实现步骤可见图 3

二、部分源代码

%% 初始化
clear
close all
clc
warning off

三、运行结果



四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]郭彤颖,陈露.基于鸟群算法优化BP神经网络的热舒适度预测[J].计算机系统应用. 2018,27(04)

【BP数据预测】基于matlab鸟群算法优化BP神经网络数据预测【含Matlab源码 1772期】相关推荐

  1. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  2. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  3. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  4. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  5. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  6. 【FNN回归预测】基于matlab蝙蝠算法优化前馈神经网络数据回归预测【含Matlab源码 2070期】

    一.粒子群优化前馈神经网络简介 1 前馈神经网络FNN 前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练.FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性 ...

  7. 【预测模型-BP分类】基于人工蜂群算法优化BP神经网络实现数据分类附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  8. 【BP分类】基于哈里斯鹰算法优化BP神经网络实现数据分类含Matlab源码

    ​1 简介 2 部分代码 function [fbst, xbst, performance] = hho( objective, d, lmt, n, T, S)%Harris hawks opti ...

  9. 【SVM分类】基于matlab鸽群算法优化支持向量机SVM分类【含Matlab源码 2242期】

    ⛄一.鸽群算法简介 基于鸽群在归巢过程中的特殊导航行为,Duan等提出了一种仿生群体智能优化算法---鸽群优化算法.在这个算法中,通过模仿鸽子在寻找目标的不同阶段使用不同导航工具这一机制,提出了2种不 ...

最新文章

  1. mysql模糊查询 汉字为何不起作用_mysql中文模糊查询遇到的有关问题,各位救急...
  2. python条形图间距-python matplotlib做对比条形图
  3. 【mysql学习】疑问点记录
  4. insert select带来的问题
  5. 解决Nginx与mysql勾结的错误
  6. java 网络编程 方式_JAVA网络编程
  7. java作业 计算平均分和总成绩
  8. 10 SystemVerilog语言编写SPI发送
  9. python set函数原理,Python之set详解
  10. 企业如何选择最佳的SSL
  11. matlab数理统计工具箱,Matlab数理统计工具箱应用简介
  12. python输出一棵树_如何用Python画一棵树
  13. linux chm 阅读器,linux下最好的chm阅读器KchmViewer,安装使用/与oklular,xCHM,gnochm简单比较...
  14. Python—Pytest+Allure定制报告
  15. 利用计算机网络技术全面规划供应链中的,供应链是围绕核心企业,通过对商流、信息流、物流、资金流的控制,从采购原材料开始,制成中间产品以 - 试题答案网问答...
  16. 英文单词搜索之词霸搜索
  17. 网页聊天室的开发笔记
  18. 十 三 弟 你 快 回 来 吧, 皇 帝 四 哥 叫 你 一 起 学 习 大 数 据 呢
  19. 面试十大潜规则,出来混你中过几个?
  20. 医疗门诊ERP系统源码

热门文章

  1. IOS(IPHONE)手机简单快捷导入联系方式
  2. 游戏开发基础知识之垂直同步V-Sync
  3. Fabric框架的学习-4-链码与背书策略
  4. 英菲尼迪tlme是什么意思_[FACE TIME]第9期:英菲尼迪戴雷造梦者-搜狐汽车
  5. ubuntu16.04网络监控工具iptraf
  6. Windows屏幕分辨率、缩放影响下,获取鼠标像素位置
  7. mysql时间戳转换成日期_mysql查询时间戳和日期的转换
  8. XP系统目录服务器恢复模式,WinXP高级启动选项功能介绍
  9. 如何认真的毁掉一个项目?
  10. 从苏宁电器到卡巴斯基第31篇:难忘的三年硕士时光 IX