BP神经网络的Matlab语法介绍.docx

上传人:牧羊曲112 文档编号:3153556 上传时间:2023-03-11 格式:DOCX 页数:5 大小:38.84KB
返回 下载 相关 举报
BP神经网络的Matlab语法介绍.docx_第1页
第1页 / 共5页
BP神经网络的Matlab语法介绍.docx_第2页
第2页 / 共5页
BP神经网络的Matlab语法介绍.docx_第3页
第3页 / 共5页
BP神经网络的Matlab语法介绍.docx_第4页
第4页 / 共5页
BP神经网络的Matlab语法介绍.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《BP神经网络的Matlab语法介绍.docx》由会员分享,可在线阅读,更多相关《BP神经网络的Matlab语法介绍.docx(5页珍藏版)》请在三一办公上搜索。

1、BP神经网络的Matlab语法介绍1. 数据预处理 在训练神经网络前一般需要对数据进行预处理,一种重要的预处理手段是归一化处理。下面简要介绍归一化处理的原理与方法。 (1) 什么是归一化? 数据归一化,就是将数据映射到0,1或-1,1区间或更小的区间,比如(0.1,0.9) 。 (2) 为什么要归一化处理? 输入数据的单位不一样,有些数据的范围可能特别大,导致的结果是神经网络收敛慢、训练时间长。 数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用就可能会偏小。 由于神经网络输出层的激活函数的值域是有限制的,因此需要将网络训练的目标数据映射到激活函数的值域。例如神经网络的输出层

2、若采用S形激活函数,由于S形函数的值域限制在(0,1),也就是说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到0,1区间。 S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X)在参数a=1时,f(100)与f(5)只相差0.0067。 (3) 归一化算法 一种简单而快速的归一化算法是线性转换算法。线性转换算法常见有两种形式: y = ( x - min )/( max - min ) 其中min为x的最小值,max为x的最大值,输入向量为x,归一化后的输出向量为y 。上式将数据归一化到 0 , 1 区间,当激活函数采用S形函数时时这条式子适用。 y

3、= 2 * ( x - min ) / ( max - min ) - 1 这条公式将数据归一化到 -1 , 1 区间。当激活函数采用双极S形函数时这条式子适用。 (4) Matlab数据归一化处理函数 Matlab中归一化处理数据可以采用premnmx , postmnmx , tramnmx 这3个函数。 premnmx 语法:pn,minp,maxp,tn,mint,maxt = premnmx(p,t) 参数: pn: p矩阵按行归一化后的矩阵 minp,maxp:p矩阵每一行的最小值,最大值 tn:t矩阵按行归一化后的矩阵 mint,maxt:t矩阵每一行的最小值,最大值 作用:将矩

4、阵p,t归一化到-1,1 ,主要用于归一化处理训练数据集。 tramnmx 语法:pn = tramnmx(p,minp,maxp) 参数: minp,maxp:premnmx函数计算的矩阵的最小,最大值 pn:归一化后的矩阵 作用:主要用于归一化处理待分类的输入数据。 postmnmx 语法: p,t = postmnmx(pn,minp,maxp,tn,mint,maxt) 参数: minp,maxp:premnmx函数计算的p矩阵每行的最小值,最大值 mint,maxt:premnmx函数计算的t矩阵每行的最小值,最大值 作用:将矩阵pn,tn映射回归一化处理前的范围。postmnmx函

5、数主要用于将神经网络的输出结果映射回归一化前的数据范围。 2. 使用Matlab实现神经网络 使用Matlab建立前馈神经网络主要会使用到下面3个函数: newff :前馈网络创建函数 train:训练一个神经网络 sim :使用网络进行仿真 下面简要介绍这3个函数的用法。 (1) newff函数 newff函数语法 newff函数参数列表有很多的可选参数,具体可以参考Matlab的帮助文档,这里介绍newff函数的一种简单的形式。 语法:net = newff ( A, B, C ,trainFun) 参数: A:一个n2的矩阵,第i行元素为输入信号xi的最小值和最大值; B:一个k维行向量

6、,其元素为网络中各层节点数; C:一个k维字符串行向量,每一分量为对应层神经元的激活函数; trainFun :为学习规则采用的训练算法。 表3.1 BP网络的常用函数表 函数类型 前向网络创建函数 函数名称 newcf Newff logsig 函数用途 创建级联前向网络 创建前向BP网络 S型的对数函数 传递函数 学习函数 性能函数 显示函数 tansig purelin learngd learngdm mse msereg plotperf plotes plotep errsurf S型的正切函数 纯线性函数 基于梯度下降法的学习函数 梯度下降动量学习函数 均方误差函数 均方误差规范

7、化函数 绘制网络的性能 绘制一个单独神经元的误差曲面 绘制权值和阈值在误差曲面上的位置 计算单个神经元的误差曲面 3.1.1 BP网络创建函数 1) newff 该函数用于创建一个BP网络。调用格式为: net=newff net=newff(PR,S1 S2.SN1,TF1 TF2.TFN1,BTF,BLF,PF) 其中, net=newff;用于在对话框中创建一个BP网络。 net为创建的新BP神经网络; PR为网络输入向量取值范围的矩阵; S1 S2SNl表示网络隐含层和输出层神经元的个数; TFl TF2TFN1表示网络隐含层和输出层的传输函数,默认为tansig; BTF表示网络的训

8、练函数,默认为trainlm; BLF表示网络的权值学习函数,默认为learngdm; PF表示性能数,默认为mse。 常用的激活函数 常用的激活函数有: a) 线性函数 (Linear transfer function) f(x) = x 该函数的字符串为purelin。 b) 对数S形转移函数( Logarithmic sigmoid transfer function ) 该函数的字符串为logsig。 c) 双曲正切S形函数 (Hyperbolic tangent sigmoid transfer function ) 也就是上面所提到的双极S形函数。 该函数的字符串为 tansig

9、。 Matlab的安装目录下的toolboxnnetnnetnntransfer子目录中有所有激活函数的定义说明。 常见的训练函数 常见的训练函数有: traingd :梯度下降BP训练函数(Gradient descent backpropagation) traingdx :梯度下降自适应学习率训练函数 网络配置参数 一些重要的网络配置参数如下: net.trainparam.goal :神经网络训练的目标误差 net.trainparam.show : 显示中间结果的周期 net.trainparam.epochs :最大迭代次数 net.trainParam.lr : 学习率 (2) train函数 网络训练学习函数。 语法: net, tr, Y1, E = train( net, X, Y ) 参数: X:网络实际输入 Y:网络应有输出 tr:训练跟踪信息 Y1:网络实际输出 E:误差矩阵 (3) sim函数 语法:Y=sim(net,X) 参数: net:网络 X:输入给网络的N矩阵,其中K为网络输入个数,N为数据样本数 Y:输出矩阵QN,其中Q为网络输出个数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号