BP神经网络Matlab实例

### BP神经网络Matlab实例详解 #### 一、BP神经网络简介 BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络可以解决非线性可分问题,并且具有很强的学习和泛化能力。 #### 二、Matlab实现BP神经网络的关键步骤 根据提供的代码片段,我们可以将其分为以下几个关键部分进行详细解析: 1. **数据准备**: - 定义输入数据`P`和期望输出`T`。 - `P`为4个样本的输入数据,每个样本包含4个特征。 - `T`为对应的期望输出值,每个样本对应一个输出值。 2. **构建神经网络结构**: - 使用`newff`函数创建一个BP神经网络模型。 - 参数解释: - `PR`:输入数据范围,通过`minmax(P)`计算得出。 - `[3,1]`:表示网络的第一隐藏层有3个神经元,输出层有1个神经元。 - `{'tansig','purelin'}`:分别代表隐藏层和输出层的激活函数,其中`tansig`是非线性的双曲正切函数,而`purelin`是线性函数。 - `'traingdm'`:训练算法,采用的是带有动量项的梯度下降法。 3. **训练网络**: - 使用`train`函数对网络进行训练。 - `net.trainParam.show=50;`:每50次迭代显示一次训练进度。 - `net.trainParam.lr=0.05;`:设置学习率为0.05。 - `net.trainParam.mc=0.9;`:设置动量因子为0.9。 - `net.trainParam.epochs=1000;`:最大迭代次数为1000次。 - `net.trainParam.goal=1e-3;`:目标均方误差为1e-3。 4. **网络预测**: - 使用`sim`函数对训练好的网络进行测试。 - 输出预测结果`A`,并计算预测结果与期望输出之间的误差`E`。 - 计算预测误差的均方误差`MSE`。 5. **结果可视化**: - 使用`figure; plot((1:4),T,'-*',(1:4),A,'-o')`绘制实际输出与预测输出的对比图。 #### 三、关键函数解析 1. **`newff`函数**: - 用于构建一个新的前馈神经网络。 - `PR`定义了输入向量的范围,即每个输入特征的最大值和最小值。 - `S1, S2, ..., SNl`定义了各层神经元的数量。 - `{TF1, TF2, ..., TFNl}`定义了各层的传递函数。 - `BTF`定义了训练函数,默认为`traingdx`,即带动量的梯度下降法。 - `BLF`定义了权重和偏置的学习函数,默认为`learngdm`。 - `PF`定义了性能函数,默认为`mse`,即均方误差。 2. **`train`函数**: - 用于训练神经网络。 - 输入参数包括网络对象`net`、输入数据`P`、期望输出`T`以及训练参数等。 3. **`sim`函数**: - 用于模拟网络输出。 - 输入参数包括网络对象`net`和输入数据`P`。 #### 四、代码执行流程 1. 首先定义输入数据`P`和期望输出`T`。 2. 创建BP神经网络模型`net`。 3. 设置训练参数。 4. 训练网络。 5. 测试网络并计算误差。 6. 可视化结果。 通过以上分析,我们可以清楚地了解到如何在Matlab中实现一个简单的BP神经网络,并通过具体的实例理解其工作原理及关键步骤。
























% 例1 采用动量梯度下降算法训练 BP 网络。
% 训练样本定义如下:
% 输入矢量为
% p =[-1 -2 3 1
% -1 1 5 -3]
% 目标矢量为 t = [-1 -1 1 1]
close all
clear
clc
% ---------------------------------------------------------------
% NEWFF――生成一个新的前向神经网络,函数格式:
% net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
% PR -- R x 2 matrix of min and max values for R input elements
% (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的边界值)
% Si -- 第i层的维数
% TFi -- 第i层的传递函数, default = 'tansig'
% BTF -- 反向传播网络的训练函数, default = 'traingdx'
% BLF -- 反向传播网络的权值/阈值学习函数, default = 'learngdm'
% PF -- 性能函数, default = 'mse'
% ---------------------------------------------------------------
% TRAIN――对 BP 神经网络进行训练,函数格式:
% train(NET,P,T,Pi,Ai,VV,TV),输入参数:
% net -- 所建立的网络
% P -- 网络的输入
% T -- 网络的目标值, default = zeros
% Pi -- 初始输入延迟, default = zeros

- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 电气工程自动化专业应聘笔测验考试.doc
- 金融云计算与大数据解决方案.pptx
- linux系统监管常用命令.doc
- 浅论综合布线系统.docx
- 计算机数据库的安全管理措施探讨.doc
- 计算机视觉:人体关键点比较
- 化工自动化及仪表(本).doc
- 大数据+物联网时代安全是首要威胁-记2014中国互联网安全大会.docx
- 互联网背景下中职学校思想政治理论课信息化教学方法的探索和体会.docx
- web同学录设计方案与实现.doc
- ATC单片机的多功能电子万历的设计方案.doc
- 校园网网络安全分析与解决方案.doc
- 公安机关计算机信息系统建设探讨.docx
- 电子科大16秋《VB程序设计》在线作业3.doc
- 探讨高职院校《计算机基础》课程教学改革.docx
- 微服务架构模式.pdf



- 1
- 2
前往页