MAT之GA:GA优化BP神经网络的初始权值、阈值,从而增强BP神经网络的鲁棒性

本文涉及的产品
全球加速 GA,每月750个小时 15CU
简介: MAT之GA:GA优化BP神经网络的初始权值、阈值,从而增强BP神经网络的鲁棒性

输出结果

image.png

image.png




实现代码


global p    

global t    

global R  

global S1

global S2  

global S  

S1 = 10;

p = [0.01 0.01 0.00 0.90 0.05 0.00;

    0.00 0.00 0.00 0.40 0.50 0.00;

    0.80 0.00 0.10 0.00 0.00 0.00;

    0.00 0.20 0.10 0.00 0.00 0.10]';

t = [1.00 0.00 0.00 0.00;

    0.00 1.00 0.00 0.00;

    0.00 0.00 1.00 0.00;

    0.00 0.00 0.00 1.00]';

P_test = [0.05 0    0.9  0.12 0.02 0.02;

         0    0    0.9  0.05 0.05 0.05;

         0.01 0.02 0.45 0.22 0.04 0.06;

         0    0    0.4  0.5  0.1  0;

         0    0.1  0    0    0    0]';

net = newff(minmax(p),[S1,4],{'tansig','purelin'},'trainlm');

net.trainParam.show = 10;

net.trainParam.epochs = 2000;

net.trainParam.goal = 1.0e-3;

net.trainParam.lr = 0.1;

[net,tr] = train(net,p,t);

s_bp = sim(net,P_test)  

R = size(p,1);

S2 = size(t,1);

S = R*S1 + S1*S2 + S1 + S2;

aa = ones(S,1)*[-1,1];

popu = 50;  

initPpp = initializega(popu,aa,'gabpEval',[],[1e-6 1]);  

gen = 100;  

[x,endPop,bPop,trace] = ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,...

                          'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);

figure(1)

plot(trace(:,1),1./trace(:,3),'r-');

title( 'GA优化BP神经网络,绘制均方误差变化曲线—Jason niu')

hold on

plot(trace(:,1),1./trace(:,2),'b-');

xlabel('Generation');

ylabel('Sum-Squared Error');

figure(2)

plot(trace(:,1),trace(:,3),'r-');

title( 'GA优化BP神经网络,绘制适应度函数变化曲线—Jason niu')

hold on

plot(trace(:,1),trace(:,2),'b-');

xlabel('Generation');

ylabel('Fittness');

[W1,B1,W2,B2,val] = gadecod(x);

net.IW{1,1} = W1;

net.LW{2,1} = W2;

net.b{1} = B1;

net.b{2} = B2;

net = train(net,p,t);

s_ga = sim(net,P_test)  

相关文章
|
25天前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
42 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
1月前
|
机器学习/深度学习 编解码 自动驾驶
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
73 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
26天前
|
机器学习/深度学习 存储 大数据
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
45 11
RT-DETR改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
|
3月前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
226 80
|
1月前
|
机器学习/深度学习 存储 大数据
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
46 0
YOLOv11改进策略【Backbone/主干网络】| ICLR-2023 替换骨干网络为:RevCol 一种新型神经网络设计范式
|
3月前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
115 9
|
7月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
94 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码

热门文章

最新文章