神经网络作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BP神经网络及MATLAB实现

实验报告

姓名:李英杰

学号:123109302

专业:机械电子工程

2013年6月19日

1.BP网络的MATLAB设计

MatlabR2012 神经网络工具箱(Neural Network toolbox) 为用户提供了丰富的神经网络设计与分析函数,可是用它们来编程不容易掌握。我们通过对神经网络工具箱的实践应用研究表明,使用神经网络工具箱中的NNTool对神经网络进行设计和仿真简便易行直观,不需要编程,且设计和仿真的结果证明完全能够满足一般工程设计人员的需要,能够取得事半功倍的效果。

下面我们以一个单隐含层的BP网络设计为例,介绍利用神经网络工具箱中的NNTool对BP网络的设计和分析。

利用NNTool设计一个BP 网络,该网络的输入层和输出层的神经元个数均为1。训练样本定义如下:

输入变量为 p =[-1 1 3 1;-1 1 5 -3]

目标变量为t = [-1 2 4 3]

打开Matlab 应用软件后,双击Neural Network toolbox 中的NNTool 图标,或在命令窗口键入nntool,即可进入神经络设计主界面,如下图。

图1 NNTool 设计主界面

1.训练样本数据的导入

点击New按钮,在弹出窗口选择Date选项卡,按如图2,3所示创建输入变量和目标变量。

图2 创建新的输入变量

图3 创建新的目标变量

2.神经网络的创建

点击主界面中点击New按钮,在弹出窗口选择Newwork选项卡,并在对话框中可对网络的名称、类型、结构和训练函数等进行设置,如图4 所示。

图4创建神经元网络界面

在上面窗口中对该网络命名为:tracylee;

网络类型为:Feed-forward backprop,即前馈BP神经网络;

Input ranges :点击Get From Input下拉框选择样本输入变量p加入输入向量;Training function:在下拉列表中选择TRAINGDM训练函数;采用动量梯度下降算法训练BP 网络。

Adaption learning function和Performance function:一般分别选择默认的LRARNGDM和MSE。

Layer 1 Number of Neurons:隐层的神经元个数,这是需要经验慢慢尝试并调整的,大致上由输入向量的维数、样本的数量和输出层(Layer2)的神经元个数决定,根据下面的隐含层最佳神经单元个数参考公式先设置为3,还可以更改该层神经元的个数提高网络性能,因为对于BP网络,存在一个重要的结论,即单隐层的BP网络可以逼近任意的非线性映射,前提是隐含层的神经元个数可以任意调整。

设置完毕后,点击右下角的View 按钮,可查看神经网络的结构示意图,如图

5 所示。

图5 神经网络结构示意图

3.神经网络的初始化

神经网络创建完之后,得到如图所示主界面。

图 6 创建样本和网络后的主界面

双击Netmworks下的bp_example1,选择View/Edit Weights选项卡,可以看到如图7所示的界面。

图7 网络权值或阈值修改界面

神经网络创建完之后,网络的权值和域值已进行了初始化,有时BP 网络训练时为避免陷入局部最优,有时需要对权值和域值重新设置,这在NNTool 中变得简单易行,在上面所示窗口中编辑即可。

4.神经网络的训练

设定好网络的权值和阀值后,选择上面窗口中的Train 选项卡,即可进入训练页面,设置好训练信息Training Info和训练参数Training Parameters 后,点击Train Network 即开始了对网络的训练。同时,可得到网络训练误差变化曲线。

图8 神经网络训练信息界面

上图的Training Info选项卡中,在输入向量[Inputs]和目标输入向量[Targets]下拉框中选择你要训练的向量(即第一步加入的对象)。

图9 神经网络训练参数设定

上图的Train Parameters选项卡,填入适当的最大训练次数epochs,目标误差goal,学习步长lr,最大失败次数max_fail,最小梯度要求min_grad,加速动量mc,结果显示频率show(例如要每隔50次训练显示结果,则填50),最大训练时间time。

图10 网络误差变化曲线

5.神经网络的仿真

当网络训练好之后,可以对其进行仿真,点击图中的Simulate 项,可进入训练页面,设置好仿真数据后,点击Simulate Network ,主界面的Outputs 框中出现仿真结果变量。

图11 Simulate仿真窗口

6.结果和数据的导出

网络经过训练和仿真后得到的主界面如下:图训练和仿真后的主界面与上面的主界面对比,该主界面包含了训练的输出结果和误差,仿真输入和输出。

为了保存上述主界面中的数据,点击Export 按钮,弹出如图的数据窗口,选择要保存的项,点击Export 则所选变量导出至工作空间;点击Save 则弹出文件对话框,可将所选变量保存至相应文件中。

图导出数据窗口

到此,完成了一个BP网络的建立,训练,仿真与数据保存。如果还想进一步优化网络结构,还可以在图中改变隐层数,重新进行训练,也可以通过改变传函类型或训练算法研究它们对网络特性的影响。

从以上仿真实例可以看出,利用NNTtool 来构建神经网络系统,简单快速,精度较高,从神经网络模型建立、训练到最终的仿真分析,用户都不需要编写计算机程序,而且模型的改变、参数的修改简单易行,显示出了Matlab 功能的强大。需要指出的是,神经网络的种类很多,诸如:感知器神经网络、线性神经网络、径向基函数网络、自组织网络、反馈网络等等,也能执行上述功能。

相关文档
最新文档