蚁群算法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神经网络回归预测的流程图设计
3. ACO-BP回归预测模型的参数设置
3.1 数据说明
采用建筑物能源数据集,含有8个特征指标(影响因素),单输出预测指标。
3.2 数据格式
样本编号 | features1 | features2 | features3 | … | featuresn | target |
---|---|---|---|---|---|---|
1 | – | – | – | – | – | – |
2 | – | – | – | – | – | – |
… | – | – | – | – | – | – |
n | – | – | – | – | – | – |
3.3 优化变量的选取与适应度函数设计
优化BP神经网络的权值和阈值参数,将训练集与测试集整体的均方误差作为适应度函数。
式中,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 运行过程
智能优化算法是采用迭代搜索策略寻找全局最优解,对于大数据集样本而言,会消耗很多时间运行程序,而无法快速的得到期望的效果。所以在编写程序时设计了进度条,可点击取消(Cancel)按钮,随时终止循环并执行后续程序。
4.2 蚁群算法优化神经网络的进化曲线
4.3 优化结果与误差分析对比
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代码]] |