一、 项目设计的目的:

通过构建BP网络和离散Hopfield网络模式识别实例,输出稳定结果。

二、相关原理知识介绍

BP学习算法是通过反向学习过程使误差最小,其算法过程从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点,而且含有一层或多层隐(层)节点。输入信号先向前传递到隐节点,经过作用后,再把隐节点的输出信息传递到输出节点,最后给出输出结果。
离散Hopfield神经网络的联想记忆过程分为学习和联想两个阶段。在给定样本的条件下,按照Hebb学习规则调整连接权值,使得存储的样本成为网络的稳定状态,这就是学习阶段。联想是指在连接权值不变的情况下,输入部分不全或者受了干扰的信息,最终网络输出某个稳定状态。

五、项目实验内容:
一)大作业题目内容
1.针对教材例8.1,设计一个三层的BP网络结构模型,并以教材图8.5 为训练样本数据,图8.6为测试数据。

(1)给出训练成功后的连接权值和阈值,以及测试结果。
(2)通过BP网络各项参数的不同设置,观察BP算法的学习效果,并比较BP网络各项参数变化对于训练结果的影响。
2. 已知字符点阵为 模式,两组训练数据为

设计一个能够存储这两个字符的离散Hopfield神经网络,要求:
(1)给出相应的离散Hopfield神经网络结构图;
(2)计算连接权值及阈值(阈值可设为 0);
(3)输入下列测试数据

给出网络最终输出的稳定状态。
二)实验过程

  1. BP神经网络
    1)根据题目设计训练样本数据和测试数据,并分别保存为.mat文件;
    2)在命令行窗口键入nntool,打开从MATLAB神经网络工具箱;

3)点击“Import”按钮,分别导入输入数据与目标输出数据;

4)建立一个神经网络模型对数据集进行学习,选择训练函数为TRAINGD,设置参数如图所示:

5)选中刚才建立的神经网络模型,然后点击“Open”按钮:

6)设置训练参数,参数如图所示:

7)设置完所有信息后点击“TrainNetwork”按钮,进行网络训练并给出误差变化曲线图

8)选择不同的训练函数——TRAINGDM和TRAINLM,输入训练样本数据,设置训练参数和相同的初始连接权,观察不同BP训练算法的学习效果,并给出各训练算法下的误差变化曲线图,参数如图所示:
TRAINGDM:

TRAINLM:

9)训练好三种不同函数的BP神经网络,选择训练误差最小的一个网络,
10)输入测试数据,并进行仿真,把训练和测试的结果都导出到工作空间,
保存后如图:

2.离散Hopfield神经网络
(1)给出相应的离散Hopfield神经网络结构图;

(2)计算连接权值及阈值(阈值可设为 0);

(3)输入测试数据,给出网络最终输出的稳定状态。

a=[1 1 ;
 -1 1];
 b=[-1 -1;
 1 1]’;
 Ai=[a;b]’;
 [Y,Pf,Af]=sim(net,4,[],Ai);
 Y
 Y =1    -1    -1    -1
 1     1     1     1

六、 运行结果及获得如此结果的说明(如果你有扩展也可在这部分做对比)
1.BP神经网络

TRAINGD、TRAINGDM、TRAINLM三种训练函数网络相比较,TRAINGD的误差最小,选择TRAINGD,并调整其他参数,找到最合适的设置,R越接近于1,结果越准确

加入测试数据进行仿真,仿真结果数据如下:

与目标数据相比较基本吻合。测试结果表明:除了8以外,所有被测的数字都能够被正确地识别。对于数字8,第8个结点的输出值为0.49,而第6个结点的输出值为1,表明第8个测试数据是模糊的,可能是数字6,也可能是数字8,但也不完全确信是6或8两者之一。实际上,人识别这个数字时也会发生这种错误。

  1. 离散Hopfield神经网络

结果和正常点阵是一致的,说明网络从受到污染的点阵中识别出了L和l,此网络是有效的。