初探BP神经网络工具箱
BP神经网络(Back Propagation)是一种按误差逆传播算法的多层前馈网络,目前在实际应用中8成到9成的神经网络模型采用的是BP网络(或者它的变种)。中间层可以为单隐层或者多隐层。由最后一个隐层传递到输出层。向输出层向外界输出信息处理结果。当实际输出与期望值不相符时,我们就进入误差的反向传播(Back Propagation)阶段。误差通过输出层向隐层和输入层反向传回去,按梯度下降的方式修改各层的权值。不断周而复始这个循环(这也是神经网络学习训练的过程),直到输出层与期望输出的误差减少到目标范围内(比如0.01),或者循环次数达到了预设值(比如500),则参数学习过程停止。这也就是BP神经网络的大致工作原理了。
众所周知,matlab是一款很优秀的处理神经网络的数学软件,它里面自带的一些库和包可以帮助我们很方便的创建神经网络。在Matlab神经网络工具箱中提供了大量的与BP神经网络相关的函数。本文我就介绍一下BP神经网络相关的一些函数的操作和使用。
一. 创建函数
创建函数有2种方式,一种是newcf, 另一种是newff。我们先来看看newcf。
1)newcf
newcf是用来创建级联前向BP网络函数的,何谓级联呢?在这个例子里的解释很简单,简单地说,就是input连接着第一个隐层又同时连接着第二个隐藏,这就是级联。我这么说可能有点抽象,待会我会截张图大家就能看个明白。
net = newcf ( inputRange, [lay1, lay2,...,layN], {layTran1, layTran2,...,layTranN}, BPTrain, BPLearn, util)
以上便是newcf调用的格式,
第一个参数inputRange是个矩阵,代表没组输入的最大值和最小值
第二个参数是代表每个隐层的长度,一个N个隐层
第三个参数代表各层的传递函数,默认是tansig
第四个参数代