MATLAB 2016b–神经网络工具箱中图形用户界面的使用

在干活的过程中整理下来的,希望对大家有帮助。
人工神经网络工具箱是MATLAB环境下开发出来的众多工具箱之一,它以人工神经网络理论为基础,应用MATLAB语言构造典型神经网络的算法、函数和应用程序,并针对特定的网络结构进行网络建立、训练、可视化和仿真。
MATLAB中的神经网络工具箱可以利用MATLAB编程语言构造出许多经典神经网络的激励函数,如S型、线性、竞争层、饱和线性等激励函数,使设计者对所选定网络输出的计算,转变为对激励函数的调用。另外可以根据各种典型的修正网络权值的规则,再加上网络的训练过程,利用MATLAB编写出各种网络设计和训练的子程序。网络的设计者可以根据自己的需要调用工具箱中关于神经网络设计与训练的程序,使自己从烦琐的编程中解脱出来,提高效率和质量。
MATLAB中提供了两种神经网络工具箱的使用方式,用户可随意选择。一种是用户利用神经网络工具箱函数直接在Editor/Debugger窗口中编写.m脚本文件并执行;另一种是使用GUI进行神经网络的设计与应用。
GUI是神经网络工具箱提供的人机交互界面,由窗口、光标、按键、菜单、文字说明等构成。用户可以通过一定的方法(如鼠标或键盘)选择、激励这些图形对象,实现某种特定的功能,如计算、绘图等,能够在很大程度上提高工作效率。GUI的设计是为了使用户可以更方便地使用MATLAB的神经网络工具箱,它是一个独立的窗口,即Network/Data Manager窗口,且相对于MATLAB命令窗口是独立的,但可以将GUI得到的结果数据导出到命令窗口,也可以将命令窗口中的数据导入到GUI窗口中。
我用的是MATLAB 2016b,下面的介绍也是以2016b为例的。另外,2016b版神经网络工具箱的GUI不但可以通过选择神经网络模型来创建神经网络,还可以通过选择需要实现的功能来创建神经网络(在小标题6里介绍了),这一改进使得工具箱更适合对神经网络模型特点不了解的初学者。
如果要使用图形用户界面,只需在MATLAB 2016b中命令行输入“nntool”,就会出现神经网络工具箱的主界面,主界面由6个部分组成:系统的输入数据、系统的期望输出、网络的计算输出、网络的误差、已经建立的神经网络实例以及数据的导入和网络模型的建立。
下面我通过一个实例演示全过程,介绍GUI各部分的功能以及用GUI进行神经网络设计和分析的基本步骤和方法。为了逼近一个正弦函数,现通过GUI设计一个前向BP网络。该BP网络的隐含层神经元数目为10个,输入层神经元的传递函数为S型正切函数,隐含层神经元的传递函数为纯线性函数,网络训练函数设定为trainlm,待近似的原始正弦信号为f(x)=sin(πx) 。
由于新版工具箱GUI窗口相较以前的版本有所不同,这里对GUI主窗口的各个区域及按钮的作用、输入输出等向量的设置、数据的导入导出等GUI数据处理及网络的建立、训练、仿真都做了较为详尽的介绍。

1.打开GUI编辑窗口

在MATLAB命令行窗口中输入nntool后按回车键,即打开GUI编辑窗口图1所示。由图可见该窗口可以分为八个部分,上面的显示区域及底部各类按钮。

图1 Network/Data Manager窗口
其各区域和按钮的含义如下:
Input Data区域:显示指定的输入数据
Output Data区域:显示网络对应的输出数据
Target Data 区域:显示期望输出数据
Error Data 区域:显示误差
Input Delay States区域:显示设置的输入延迟参数
Layer Delay States区域:显示层的延迟状态
Networks区域:显示设置网络的类型
Help按钮:Network/Data Manager窗口有关区域和按钮的详细介绍
Close按钮:关闭Network/Data Manager窗口
Import按钮:将MATLAB工作空间或者文件中的数据和网络导入GUI工作空间
New按钮:创建新网络或者生成新的数据
Open按钮:打开选定的数据或网络,以便查看和编辑
Export按钮:将GUI工作空间的数据和网络导出到MATLAB工作空间或文件中
Delete按钮:删除所选择的数据或者网络

2.导入数据

新版神经网络工具箱需要首先导入输入数据与目标输出数据,在主界面Neural Network/Data Manager窗口中单击“Import”按钮,弹出一个Import to Network/Data Manager 窗口,如图2所示。
图2 Import to Network/Data Manager窗口
可以在左侧Source单选框中选择从MATLAB工作空间导入数据或者加载文件中的数据,这里选择从工作空间导入。首先在MATLAB工作空间中输入如下语句来产生输入向量P和目标输出向量T:

P=[-1:0.05:1];
K=[-1:0.05:1];
T=sin(pi*K);

此时Import to Network/Data Manager 窗口中的Select a Variable列表框就显示出了当前工作空间中的所有变量,从中选择输入向量P,并在Import As列表框中选中Input Data,单击“Import”按钮,再选择目标输出向量T,并在Import As列表框中选中Target Data,单击“Import”按钮,就完成了输入输出数据的导入。点击“Clos按钮返回Neural Network/Data Manager主窗口,可以看到主窗口的输入输出区域已经发生了变化,如图3所示。在主窗口中双击变量P,就可以查看变量的内容,同理变量T也一样能查看到,分别如图4和图5所示。

图 3 导入数据后的nntool主界面

图4 网络输入向量P

图5 网络的期望输出T

3.创建BP网络

在Neural Network/Data Manager主窗口,点击“New”按钮,在弹出的Creat Network or Data窗口中选择Network选项,开始创建网络。根据要求在窗口中修改相应的参数:在Name 文本框中输入所创建的网络名称,将该网络命名为Tnet。在Network Type的下拉框中选择需要创建的网络类型,为Feed-forward backprop。在Input Date和Target Date的下拉框中选择相应的导入数据。Training function下拉框用于设置该网络训练函数的类型,这里选择TRAINLM。在Adaption learning function下拉框中设置网络的学习函数LEARNGDM,网络的性能函数Performance function取默认值MSE,网络的层数Number of layers输入2,表明所设计的网络有一层是隐含层。最后设置网络各层的传递函数和神经元的数目。在Properties for下拉框中选择Layer1,表示接下来设置隐含层的传递函数和神经元的数目。在Number of neurons 文本框中输入10,表示隐含层由10个神经元组成。在Transfer Function下拉框选择传递函数类型为TANSIG,如图6(a)所示。然后在Properties for下拉框中选择Layer2,表示接下来设置输出层属性,输出层的Number of neurons 文本框中不能输入数字,网络自动默认为1,在Transfer Function下拉框选择传递函数类型为PURELIN,如图6(b)所示。单击“View”按钮可以看到所建立BP神经网络的结构,如图7所示。单击右下角的“Create”按钮,就完成了神经网络的设置。点击“Close”按钮返回Neural Network/Data Manager主窗口,可以看到主窗口的神经网络区域已经发生了变化,如图8所示。

图6(a)网络创建窗口-传递函数类型TANSIG

图6(b)网络创建窗口-传递函数类型PURELIN

图7 Tnet的网络的结构

图8 创建网络后的nntool主界面

4.训练网络

在Neural Network/Data Manager窗口中选中生成的BP神经网络Tnet,则“Open”、“Delete”按钮被激活。单击“Open”按钮,将弹出一个新的窗口如图9所示。该窗口用于设置网络自适应、仿真、训练和重新初始化的参数,并执行相应的过程。

图9 Network:Tnet窗口
点击Train选项卡后做相应的设置即可进行神经网络的训练:在Training Info选项下,选择输入Inputs为P,期望输出Targets为T,如图10所示。在Training Parameters选项下,设置训练步数epochs为50,目标误差goal为0.01,其它参数采用默认值,如图11所示。

图10 设置训练数据

图11设置训练参数
参数修改完毕后,单击Network:Tnet窗口右下角的Train Network按钮,就开始了网络训练,训练完成后会有一个结果信息界面,如图12所示。

图12 网络训练结果信息
点击Performance,Training State以及Regression分别出现下面的界面,图13显示网络训练误差随训练次数的变化情况,图14显示训练数据的梯度、均方误差以及验证集检验失败的次数随训练次数的变化情况,图15分别显示了训练集、验证集、测试集和全集的回归系数,回归系数越接近1表示模型训练的性能越好。

图13 网路训练性能

图14 网络训练状态

图15 网络训练的回归分析

5.网络仿真

通过网络仿真,可以验证训练后的神经网络对信号的逼近效果。在Network:Tnet窗口中,单击Simulate,在Inputs下拉菜单中选择输入量P,同时将网络仿真输出Outputs变为Tnet-OutSim,以区别于训练时的输出Tnet-outputs。单击“Simulate Network”按钮,回到Neural Network/Data Manager窗口,就会看到在Outputs区域有一个新的变量:Tnet-OutSim,如图16。双击变量名Tnet-OutSim,同样会弹出一个新的窗口,显示出对应输入向量P的网络输出值,在图17的主界面上点击“Export”按钮,就能在Output Data中选择想要查看、保存的数据,将其导出到MATLAB的工作空间,如图18所示。

图16网络仿真后的nntool主界面

图17 导出数据

图18(a) BP网络期望输出与实际输出结果对比–网络实际输出

图18(b) BP网络期望输出与实际输出结果对比–网路期望输出
由图18可知,BP网络的实际输出值与网络的期望数据相比是比较接近的,由此可见,所建立的BP神经网络基本完成了非线性函数逼近的功能。

6.另一种创建网络的方式

新版的神经网络工具箱还增加了另外一种创建BP网络的方式,使用者不必深入了解每种神经网络模型的特点及适用的问题,仅需根据所要解决的问题选择不同的应用程序即可,这里同样以逼近正弦函数为例,简单说明一下其基本操作步骤。
在MATLB工具条APP选项卡下选择,如图19所示。弹出如图20所示的nftool应用程序界面。

图19 在MATLAB中打开nftool应用程序

图20 nftool应用界面
在图20左侧文本框对Neural Fittng app进行了简单介绍,包括适合解决的问题、工具箱给出的例子以及该app的流程及输出结果。图右侧的文本框对该app使用的神经网络进行了介绍,它对神经网络的层数、每层的激励函数、网络训练函数都做了规定,设计人员不需要熟练掌握工具箱中的各种函数,也能方便的建立和训练网络。点击“Next”按钮,进入到输入数据和期望输出数据的导入界面,同样选择从MATLAB工作空间中导入数据,如图21所示。

图21导入数据界面
点击“Next”按钮,弹出如图22所示的界面,该界面用以设置训练数据、验证数据和测试数据占全部数据样本的比例,默认是随机选取70%的样本作为训练数据、15%的样本作为验证数据、15%的样本作为测试数据,也可以根据实际情况进行调整,这里选取默认值。设置完成后,点击“Next”,进入隐含层神经元的设定界面,如图23所示。

图22设置验证数据及测试集样本

图23 隐含层设置界面
在图23中,上边的Hidden Layer文本框用来设置隐含层神经元的个数,默认值是10,可以根据实际情况进行调整,这里采用默认值。根据设置的参数,图23下方的文本框给出了神经网络的具体结构,检查无误后点击“Next”按钮弹出Trian Network窗口,进入训练阶段。点击新窗口Train Network文本框的下拉选项卡可以选择网络训练函数,如图24所示,这里选择默认算法Leveberg-Marquardt。

图24网络训练界面
选择完成后点击“Train”按钮,开始对网络进行训练,训练结果如图25右侧所示,分别给出了训练数据、验证数据、测试数据的MSE值和R值,并对这两个性能指标进行了说明,其中MSE值越小表示实际输出与目标输出直接的均方差越小,R值越接近1表示网络模型拟合的越好。如果所得到的模型不能满足预期的需求,则需重复上述的步骤直至能够得到预期的精确度,如果所得到的模型满足需求,点击“Next”进入Save Result界面,将最终的得到的各种数据以及其拟合值保存到MATLAB工作空间,如图26。

图25 网络训练后界面

图26 保存数据
GUI是神经网络工具箱提供的人机交互界面,它引导工程人员一步步地建立和训练网络,避免了代码的编写过程。对于初学者,建议不要开始就使用GUI来解决实际问题,因为GUI中的一些功能只能在熟练掌握了工具箱中的大部分函数后才可以正确使用。因此,最好的方式是首先利用编写代码的方式来学习神经网络工具箱,掌握了各种函数的意义及使用注意事项后,就可以利用GUI方便快捷地来解决实际问题了。

MATLAB 2016b--神经网络工具箱中图形用户界面的使用相关推荐

  1. Matlab神经网络工具箱中net.trainParam设置不成功问题

    Matlab神经网络工具箱中net.trainParam设置不成功问题 本人找寻很久发现即使设置了net.trainParam中的各参数值,但是在nntraintool显示后一直都没有改变,找遍全网都 ...

  2. 多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...

    MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发 ...

  3. 使用MATLAB Coder将工具箱中的系统对象转换为C代码

    使用MATLAB Coder将工具箱中的系统对象转换为C代码 现在你一个脚本文件,这个文件是个完整的程序,有输入也有输出,运行这个脚本文件会得到你想要的结果.在这个文件里你使用了某个工具箱中的系统对象 ...

  4. matlab中som结果,matlab神经网络工具箱中的som怎么使用

    使用newsom函数创建网络: net=newsom(PR,[D1,D2,^],TFCN,DFCN,OLR,OSTEPS,TLR,TND) PR:R个输入元素的最大值和最小值的设定值,R*2维矩阵 D ...

  5. MATLAB神经网络工具箱中感知器权值和阈值的学习函数learnp

    我先把代码贴过来!慢慢研究! function [out1,out2] = learnp(varargin) %LEARNP Perceptron weight/bias learning funct ...

  6. matlab求解lmi,Matlab的LMI工具箱中最优化问题

    用LMI方法求倒立摆H无穷状态反馈控制器程序 但运行出现没有合适的gama值 显示"could not establish feasibility nor infeasibility&quo ...

  7. matlab feedforward,Matlab BP神经网络工具箱之feedforwardnet使用小结

    function C_net_BP01 u_hebing=textread('u_hebing.txt'); f_hebing=textread('f_hebing.txt'); %数据验证===== ...

  8. matlab 求obb,实验六MATLAB神经网络工具箱DOC

    实验六MATLAB神经网络工具箱DOC 实验七MATLAB神经网络工具箱一.实验目的1.掌握 Matlab 对感知器网络的构建与训练方法.2.掌握 Matlab 对线性神经网络的构建与训练方法.3.掌 ...

  9. matlab神经网络预测数据,matlab神经网络工具箱

    什么是matlab神经网络 Matlab语言是MathWorks公司推出的一套高性能计算机编程语言,集数学计算.图形显示.语言设计于一体,其强大的扩展功能为用户提供了广阔的应用空问. 它附带有30多个 ...

  10. MATLAB神经网络工具箱输入输出预处理相关参数设置

    目录 问题由来 预处理相关属性 预处理函数 预处理参数 修改默认映射变换 通过exampleInput和exampleOutput进行设置 通过configure函数进行设置 结语 问题由来 毕业论文 ...

最新文章

  1. Android Logcat的使用
  2. 51nod 1092 回文字符串
  3. 开始学习python的感受
  4. laravel + Vue 前后端分离 之 项目配置 - 开发环境
  5. 在您的Maven-Fu包中增加了一些东西
  6. CF 526F Max Mex(倍增求LCA+线段树路径合并)
  7. [原创]K8_C段旁注工具6.0 新增SMB漏洞扫描
  8. Linux 用户空间和内核空间
  9. 小白初涉,先试试水。涉及Python,C语言基础,机器学习等
  10. CentOS4.4下安装jdk1.5
  11. echarts鼠标放上去不显示值
  12. JZ1-二维数组中的查找
  13. 微信小程序学习总结(一)——程序文件内容
  14. 阿里云ECS服务器的搭建过程小记
  15. micropython入门 stm32_STM32F4系列使用MicroPython开发
  16. 写好商业计划书,融资就成功了一半!
  17. 永恒之蓝ms17_010漏洞利用攻击
  18. 万字带你入门Go语言(建议收藏)
  19. 安葬于西敏寺的英国国教主教的墓志铭:
  20. 融云根据关键字获取搜索聊天记录

热门文章

  1. IntelRealsense升级摄像头的固件版本方法
  2. 洛谷P5713 【深基3.例5】洛谷团队系统经典解法
  3. esp32 物联网应用 01
  4. 回复git@vger.kernel.org的注意事项
  5. OceanBase数据库实践入门——手动搭建OceanBase集群
  6. 浪潮服务器如何安装win7系统,WIN7旗舰版操作系统中浪潮ERP-GS5.2安装说明.doc
  7. Android 获取照相机图片或本地图片
  8. 计算机双硬盘如何设置,电脑固态硬盘+机械硬盘双盘齐下的安装方法-双硬盘设置...
  9. Go Anywhere Chair
  10. 用php实现基本功能,php实现文件管理与基础功能操作的方法