matlab的BP神经网络讲义
一、RBF神经网络1985年,Powell提出了多变量插值的径向基函数RadicalBasisFu
ctio
,RBF方法,1988年,Moody和Darke
提出了一种神经网络结构,即RBF神经网络。RBF网络是一种三层前向网络,其基本思想是:(1)用RBF作为隐单元的“基”构成隐含层空间,将输入矢量直接即不需要通过权连接映射到隐空间(2)当RBF的中心点确定后,映射关系也就确定(3)隐含层空间到输出空间的映射是线性的。
ewrb函数功能建立一个径向基神经网络格式
et
ewrbP,T,GOAL,SPREAD,MN,DF说明P为输入向量,T为目标向量,GOAL为方误差,默认为0,SPREAD为径向基函数的分布密度,默认为1,MN为神经元的最大数目,DF为两次显示之间所添加的神经元神经元数目。例子:设PT是训练样本,XY是测试样本;
et
ewrbPTerr_goalspread建立网络qsim
etpeqTplotpq画训练误差曲线qsim
etXeqYplotXq画测试误差曲线二、BP神经网络训练前馈网络的第一步是建立网络对象。函数
ewff建立一个可训练的前馈网络。这需要4个输入参数。第一个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值。第二个参数是一个设定每层神经元个数的数组。第三个参数是包含每层用到的传递函数名称的细胞数组。最后一个参数是用到的训练函数的名称。举个例子,下面命令将创建一个二层网络。它的输入是两个元素的向量,第一层有三个神经元3,第二层有一个神经元1。第一层的传递函数是ta
sigmoid,输出层的传递函数是li
ear。输入向量的第一个元素的范围是1到212,输入向量的第二个元素的范围是0到505,训练函数是trai
gd。
et
ewff120531ta
sigpureli
trai
gd这个命令建立了网络对象并且初始化了网络权重和偏置,因此网络就可以进行训练了。我们可能要多次重新初始化权重或者进行自定义的初始化。下面就是初始化的详细步骤。在训练前馈网络之前,权重和偏置必须被初始化。初始化权重和偏置的工作用命令i
it来
f实现。这个函数接收网络对象并初始化权重和偏置后返回网络对象。下面就是网络如何初始化的:
eti
it
et我们可以通过设定网络参数
eti
itFc
和
etlayerii
itFc
这一技巧来初始化一个给定的网络。
eti
itFc
用来决定整个网络的初始化函数。前馈网络的缺省值为i
itlay,它允许每一层用单独的初始化函数。设定了
eti
itFc
,那么参数
etlayerii
itFc
也要设定用来决定每一层的初始化函数。对前馈网络来说,有两种不同的初始化方式经常被用到:i
itwbr