蚁群算法优化BP神经网络回归预测的算法设计-附代码

蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现

文章目录

  • 蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现
  • 1. 蚁群算法简介
  • 2. 蚁群算法优化BP神经网络回归预测模型的设计步骤
  • 3. ACO-BP回归预测模型的参数设置
  • 4. 运行结果
  • 5. MATLAB代码与数据地址

1. 蚁群算法简介

蚁群算法(Ant Clony Optimization, ACO)是一种仿生智能优化算法,最早由意大利学者Dorigo、Maniezzo等于1991年提出,常用于求解旅行商TSP,路径规划等问题。蚁群算法的灵感来源于蚂蚁觅食的过程,蚂蚁在寻找食物源的路径上会留下信息素,而群体内的蚂蚁可以感知信息素,并沿着信息素浓度高的地方移动,形成正反馈机制。经过一段时间之后,蚂蚁就可以确定一条到达食物源的最优路径。

2. 蚁群算法优化BP神经网络回归预测模型的设计步骤

2.1 基本思路 用蚁群算法ACO优化BP神经网络的基本思路是:首先取出权值矩阵和阈值向量的元素,构成蚂蚁种群的路径坐标。因为蚂蚁到达食物源的路径越短,则路径上的信息素含量越高,所以将均方误差作为蚂蚁的适应度值。最终蚂蚁种群确定的最短路径作为最优的初始权值和阈值参数,再赋给BP神经网络,进行训练和测试,并与优化前的BP神经网络预测进行误差对比。

2.2 蚁群算法优化BP神经网络预测的步骤:

步骤一:读取数据,初始化BP神经网络的结构与ACO算法的参数。
步骤二:计算解空间的维度,初始化蚂蚁位置与最高信息素。
蚁群算法开始迭代(K=1,Start loop)。
步骤三:根据蚂蚁的位置,计算信息素含量。
步骤四:计算最高信息素,更新最优的个体位置。
步骤五:按概率转移和更新蚂蚁位置。
步骤六:执行步骤三——五的循环体,达到终止代数(K=max_iteration,End loop)。
步骤七:取出优化后的最佳蚂蚁位置坐标,赋给BP神经网络,得到最优的初始权值矩阵和阈值向量。
步骤八:优化后的BP神经网络进行训练与测试,比较优化前后的BP神经网络预测精度。

2.3 蚁群算法优化BP神经网络回归预测的流程图设计

蚁群算法优化BP神经网络回归预测的算法设计-附代码_第1张图片

3. ACO-BP回归预测模型的参数设置

3.1 数据说明
采用建筑物能源数据集,含有8个特征指标(影响因素),单输出预测指标。

3.2 数据格式

样本编号 features1 features2 features3 featuresn target
1
2
n

3.3 优化变量的选取与适应度函数设计
优化BP神经网络的权值和阈值参数,将训练集与测试集整体的均方误差作为适应度函数。

蚁群算法优化BP神经网络回归预测的算法设计-附代码_第2张图片
式中,TraingingSet,TestingSet,分别为训练集和测试集的样本。

3.4 算法的参数设置

a)BP神经网络的参数设置

net=newff(inputn,outputn,hiddennum_best,{'tansig','purelin'},'trainlm','learngdm');% 建立模型

%网络参数配置
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;                   % 学习速率
net.trainParam.goal=0.00001;                    % 训练目标最小误差
net.trainParam.show=25;                % 显示频率
net.trainParam.mc=0.01;                 % 动量因子
net.trainParam.min_grad=1e-6;       % 最小性能梯度
net.trainParam.max_fail=6;               % 最高失败次数

b) 蚁群算法算法的参数设置

%初始化ACO参数
popsize=10;   %初始种群规模
maxgen=50;   %最大进化代数
dim=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum;    %自变量个数
lb=repmat(-3,1,dim);    %自变量下限
ub=repmat(3,1,dim);   %自变量上限
rou=0.9;  %信息素挥发系数
p0=0.2;  %转移概率常数
Q=1;  %信息释放总量
p=zeros(1,popsize);   %转移概率
Positions=zeros(popsize,dim);   %蚂蚁种群
tau=zeros(popsize,1);     %信息素记录

3.5 使用蚁群算法优化后的BP神经网络进行预测,并与BP神经网络的预测结果进行误差分析和对比

4. 运行结果

4.1 运行过程
蚁群算法优化BP神经网络回归预测的算法设计-附代码_第3张图片
智能优化算法是采用迭代搜索策略寻找全局最优解,对于大数据集样本而言,会消耗很多时间运行程序,而无法快速的得到期望的效果。所以在编写程序时设计了进度条,可点击取消(Cancel)按钮,随时终止循环并执行后续程序。

4.2 蚁群算法优化神经网络的进化曲线

蚁群算法优化BP神经网络回归预测的算法设计-附代码_第4张图片

4.3 优化结果与误差分析对比

蚁群算法优化BP神经网络回归预测的算法设计-附代码_第5张图片
蚁群算法优化BP神经网络回归预测的算法设计-附代码_第6张图片

5. MATLAB代码与数据地址

改进的BP神经网络回归预测算法类别 代码地址
BP [BP神经网络回归预测MATLAB代码]
GA-BP [[GA优化BP回归预测MATLAB代码(含优化前的对比)]]
PSO-BP [[粒子群算法PSO优化BP神经网络回归预测MATLAB代码]]
ACO-BP [[蚁群算法ACO优化BP神经网络回归预测MATLAB代码]]
ASO-BP [[原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
SSA-BP [[麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
WOA-BP [[鲸鱼优化算法WOA优化BP神经网络回归预测MATLAB代码]]
ABC-BP [[人工蜂群算法ABC优化BP神经网络回归预测MATLAB代码]]
SOA-BP [[海鸥优化算法SOA优化BP神经网络回归预测MATLAB代码]]
CS-BP [[布谷鸟搜索算法CS优化BP神经网络回归预测MATLAB代码]]
Logistic-ASO-BP [[基于Logistic混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
Logistic-SSA-BP [[基于Logstic混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
Tent-ASO-BP [[基于Tent混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
Tent-SSA-BP [[基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
Sine-SSA-BP [[基于Sine混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
GA-ACO-BP [[混合遗传蚁群算法GA-ACO优化BP神经网络回归预测MATLAB代码]]

代码见博客主页

你可能感兴趣的:(预测模型及优化,算法,神经网络,回归)