7基于神经网络的模式识别实验要求 下载本文

实验七 基于神经网络的模式识别实验

一、实验目的

理解BP神经网络和离散Hopfield神经网络的结构和原理,掌握反向传播学习算法对神经元的训练过程,了解反向传播公式。通过构建BP网络和离散Hopfield网络模式识别实例,熟悉前馈网络和反馈网络的原理及结构。 二、实验原理

BP学习算法是通过反向学习过程使误差最小,其算法过程从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点,而且含有一层或多层隐(层)节点。输入信号先向前传递到隐节点,经过作用后,再把隐节点的输出信息传递到输出节点,最后给出输出结果。

离散Hopfield神经网络的联想记忆过程分为学习和联想两个阶段。在给定样本的条件下,按照Hebb学习规则调整连接权值,使得存储的样本成为网络的稳定状态,这就是学习阶段。联想是指在连接权值不变的情况下,输入部分不全或者受了干扰的信息,最终网络输出某个稳定状态。

三、实验条件

Matlab 7.X 的神经网络工具箱:在Matlab 7.X 的命令窗口输入nntool,然后在键盘上输入Enter键,即可打开神经网络工具箱。 四、实验内容

1.针对教材P243例8.1,设计一个BP网络结构模型(63-6-9),并以教材图8.5 为训练样本数据,图8.6为测试数据。

(1)运行train_data.m和test_data.m文件,然后从Matlab工作空间导入(Import)训练样本数据(inputdata10,outputdata10)和测试数据(testinputdata,testoutputdata),其次新建一个神经网络(New Network),选择参数如下表1,给出BP神经网络结构图。

表1 BP网络结构模型的各项参数设置 nn10_1 Network Name(神经网络名称) Network Type(神经网络类型) Feed-forward backprop(前馈反向传播) Input ranges(输入信息范围) 来自训练样本的输入数据(inputdata10) Training function(训练函数) TRAINGD(梯度下降BP算法) Performance function(性能函数) Number of layers(神经网络层数) Layer1(第1层)的Number of neurons (神经元个数) Layer1(第1层)的Transfer Function (传递函数) Layer2(第2层)的Number of neurons (神经元个数) Layer2(第2层)的Transfer Function (传递函数) MSE(均方误差) 2 6 LOGSIG(S型函数) 9 LOGSIG(S型函数) (2)输入训练样本数据(inputdata10,outputdata10),随机初始化连接权(Initialize Weights),然后进行训练(Train),训练参数设置如表2所示,并观察训练目标值变化曲线图,最后把BP神经网络训练成功后(即误差不再变化后)的误差值填入表3。

表2 BP网络训练参数

训练次数(epochs) 训练时间(time) 训练目标(goal) 学习率(lr) 最大确认失败次数(max_fail) 最小性能梯度(min_grad) 两次显示之间的训练步数(show) 表3 BP网络各训练算法的训练目标值

Training function (训练函数) TRAINGD(梯度下降BP算法) TRAINGDM(梯度下降动量BP算法) TRAINLMM(Levenberg-Marquardt BP训练函数) TRAINRP(弹性BP算法) TRAINSCG(变梯度算法) Network Name (神经网络名称) nn10_1 nn10_2 nn10_3 nn10_4 nn10_5 训练次数(epochs) Performance (训练目标值) 10000 Inf 0 0.3 5 1e-050 25 (3)选择不同的训练函数,例如TRAINGDM(梯度下降动量BP算法)、TRAINLMM(Levenberg-Marquardt BP训练函数)、TRAINRP(弹性BP算法)、TRAINSCG(变梯度算法),然后输入训练样本数据(inputdata10,outputdata10),训练参数设置如表2所示,设置相同的初始连接权(Revert Weights),观察不同BP训练算法的学习效果,把各训练算法的训练目标值填入上表3。

(4)选择训练目标值最小的一种训练算法,选择Weights选项给出其训练后的连接权值和偏置,然后输入测试数据(testinputdata,testoutputdata)进行仿真(Simulate),并把训练和测试的结果都导出(Export)到工作空间,给出训练后的输出结果和输出误差,以及测试后的输出结果和输出误差。

(5)对步骤(4)所选择的训练算法,再增加30组样本,然后新建一个神经网络(New Network)的结构为63-16-4,设置Network Name(神经网络名称)为nn40,并重新按照步骤(2)进行训练(Train),即输入训练样本数据(inputdata40,outputdata8421_40),训练参数设置如表2所示,随机初始化连接权(Initialize Weights)。其次输入测试数据(testinputdata,testoutputdata8421)进行仿真(Simulate),并把训练和测试的结果都导出到工作空间,给出训练后的输出结果和输出误差,以及测试后的输出结果和输出误差。

(6)针对Training function(训练函数)为TRAINGD的BP网络(nn10_1),然后设置不同的学习率(lr),例如0.01、0.1、0.5、1,按照步骤(2)进行训练,观察TRAINGD训练算法的学习效果,把各学习率下的训练目标值值填入表4。

表4 BP网络各训练算法的训练目标值

TRAINGD训练算法的学习率 0.01 0.1 0.5 1 Performance (训练目标值)

2?2模式,两组训练数据为 2. 已知字符点阵为

T a(1)??1011?(大写字母L)a(2)??0101?(小写字母l)

T

图1 训练数据

大写字母L 小写字母l

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

(3)输入下列测试数据

t(1)??1101?TTt(2)??0011? 图2 测试数据

给出网络最终输出的稳定状态。 五、实验报告要求:

1. 按照实验内容,给出相应结果。

2.分析比较采用梯度下降训练算法的BP网络学习率的变化对于训练结果的影响。 3. 分析比较BP网络和离散Hopfield网络在模式识别方面的异同点。

下面是实验报告的基本内容和书写格式。(10165956@qq.com)

实验名称

班级: 学号: 姓名:

一、实验目的 二、实验原理 三、实验结果

按照实验内容,给出相应结果。 四、实验总结

1. 完成实验报告要求2。 2. 总结实验心得体会

——————————————————————————————————