数学建模学习(44):BP神经网络经典应用,详细讲解配matlab代码

简介: 数学建模学习(44):BP神经网络经典应用,详细讲解配matlab代码

文章目录

题目

要求设计一个BP网络,逼近函数g(x)=1+sin(kpi/2x),实现对该非线性函数的逼近。其中,分别令k=2,3,6进行仿真,通过调用参数得出信号的频率与隐含层借点之间,隐含层节点与函数逼近能力之间的关系。

解析

假设频率参数k=2,绘制逼近的非线性函数的目标函数。

matlab代码如下:

clear all
clc
k=2;
p=[-1:0.5:8];
g=1+sin(k*pi/2*p);
plot(p,g,'-');
title('要逼近的非线性函数');
xlabel('时间');
ylabel('非线性函数');

运行后得到目标函数图形:

1.png

用newff函数奖励BP网络结构。隐含层神经元数目n可以改变,暂定n=5,输出层有一个神经元。选择隐含层和输出层神经元传递函数分别为tansing函数和purelin函数,网络训练的算法采用Levenberg-Marquardt算法trainlm。

n=5;
net=newff(minmax(p),[n,1],{'tansig','purelin'},'trainlm');
%对于初始网络,可以应用sim()函数观察网络输出
y1=sim(net,p);
figure;
plot(p,g,'-',p,y1,':')
title('为训练网络的输出结果')
xlabel('时间')
ylabel('仿真输出--原函数--')

运行上述代码可以得到网络输出曲线与原函数的比较图:

1.png

因为使用newff函数奖励函数网络时,权值和阙值的初始化是随机的,所以网络输出结构很差,根本达不到毕竟函数的目的,每次运行的结果有时也不同。


应用train()函数对网络进行训练前,需要预先设置网络训练参数。将训练时间设置为200,训练精度设置为0.2,其余参数使用默认值。训练神经网络的matlab代码如下:

net.trainParam.epochs=200;%网络训练时间设置为200
net.trainParam.goal=0.2;%网络训练精度为0.2
net=train(net,p,g);%开始训练网络

运行后得到的误差变化过程如下:

1.png

对于训练好的网络进行仿真:

y2=sim(net,p);
figure;
plot(p,g,'-',p,y1,':',p,y2,'--')
title('训练后网络的输出结果');
xlabel('时间');
ylabel('仿真输出');

绘制网络输出曲线,并与原始非线性函数曲线以及未训练网络的输出结果曲线相比较,如图:

1.png

从图可以看出,相对于没有训练的曲线,经过训练之后的曲线和原始的目标曲线更接近。这说明经过训练后,BP网络对非线性函数的逼近效果更好。

改变非线性函数的频率和BP函数银行层神经元的数目,对于函数逼近的效果要更差一些;隐含层神经元的数目对于网络逼近效果页有一定影响,一般来说,隐含层神经元数目多,则BP网络逼近非线性函数的能力越强。

(暂时写到这,晚上继续编辑本文,做更多的分析)


相关文章
|
11天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
11天前
|
安全 网络协议 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
|
11天前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
11天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
29天前
|
机器学习/深度学习 算法 5G
基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
本文介绍了基于Matlab 2022a的几种信道估计算法仿真,包括LS、OMP、NOMP、CoSaMP及改进的BP神经网络CoSaMP算法。各算法针对毫米波MIMO信道进行了性能评估,通过对比不同信噪比下的均方误差(MSE),展示了各自的优势与局限性。其中,BP神经网络改进的CoSaMP算法在低信噪比条件下表现尤为突出,能够有效提高信道估计精度。
35 2
|
11天前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
|
11天前
|
安全 大数据 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(3-2):渗透测试行业术语扫盲)作者——LJS
|
11天前
|
SQL 安全 网络协议
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(1-2):渗透测试行业术语扫盲)作者——LJS
|
11天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
下一篇
无影云桌面