1
模式识别与智能计算的MATLAB实现
1.5.2.2 3.2.2 BP人工神经网络MATLAB实现
3.2.2 BP人工神经网络MATLAB实现

1.结构设计

BP人工神经网络一般由三层组成,可以由下列语句生成:

alt

其中,P为样本数据组成的矩阵,由其中最小值和最大值组成;T为每层神经元的个数;S为隐含层神经元的个数;TF为神经元传递函数。

2.网络训练

人工神经网络的训练通过下列语句由训练样本集,即已知输入和输出的数据矩阵来完成:

alt

其中,net表示新的神经网络;tr表示训练记录;NET表示输入神经网络;X表示神经网络的输入;T表示神经网络的输出;Pi是初始输入延迟条件;Ai是初始层延迟时间。X、Pi和Ai的默认值为0。

网络权值和阈值的调整,在MATLAB中是由网络设计中的newff函数完成的,用该函数的最后一个参数表示。当它设置为traingd时代表用梯度下降法调整BP网络。其他参数如表3.2所列。

表3.2 BP神经网络调整参数含义

alt

与训练有关的参数设置如下:

·最大训练次数为net.trainparam.epochs,默认值为10;

·训练要求精度为net.trainparam.goal,默认值为0;

·学习速率为net.trainparam.lr,默认值为0.01;

·最大失败次数为net.trainparam.max_fail,默认值为5;

·最小梯度要求为net.trainparam.min_grad,默认值为1e-10;

·显示训练迭代过程为net.trainparam.show,默认值为25,NaN表示不显示;

·最大训练时间为net.trainparam.time,默认值为inf。

BP网络的优点是学习精度高,可用作一个通用的函数模拟器;从理论上讲,用BP网络可以逼近任何非线性函数,经过训练后的BP网络运行速度极快,可用于实时处理。但它也存在以下的问题:

·可能陷入局部极小;

·学习算法收敛较慢。