Neural Network Toolbox使用笔记1:数据拟合
http://blog.csdn.net/ljp1919/article/details/42556261
Neural Network Toolbox为各种复杂的非线性系统的建模提供多种函数和应用程序。该工具箱提供各种监督学习模型:前向反馈,径向基核函数和动态网络等模型。同时也提供自组织图和竞争层结构(competitive layers)的非监督学习模型。该工具箱具有设计、训练、可视化与仿真神经网络的功能。基于该工具箱可以进行数据拟合、模式识别、分类和时间序列预测及其动态系统的建模和控制。
可以利用Parallel Computing Toolbox调用多核处理器,GPUs和计算集群对大数据集在进行训练和处理阶段进行加速。
该工具箱包含在所安装文件Toolbox下面的nnet中。可以输入 在命令行模式下输入:
help nnet
可以看到所涉及的主题。
nnstart 神经网络启动GUI的命令
nctool 神经网络分类工具
nftool神经网络的拟合工具
nntraintool 神经网络的训练工具
第一:特点
1、监督网络包括:正反馈、径向基、LVQ、时延、非线性自回归(NARX)以及层递归的神经网络
2、非监督网络包括:自组织图与竞争层结构;
3、通过预处理和后处理提高网络训练与评估网络性能;
4、模块化网络用以管理和可视化任何大小的网络;
5、用于构建和评估神经网络的Simulink模块
第二:数据拟合、分类和模式识别
1、数据拟合
应用举例:房价均值估计
问题描述:通过创建神经网络以估计社区房价的均值,该社区采用以下13个属性进行描述
1)每城市的人均犯罪率
2)住宅用地的比例大于25000平方
3)每个城市的非零售商业用地比例
4)1表示Charles river的边界,0则表示其他的
5)氮氧化合物浓度(1000万分之1)
6)平均每个寓所的房间数量
7)业主单位是1940年以前的比例
8)距离波士顿就业中心的加权距离
9)径向高速公路的可访问性指数
10)每10,000美元全部价值财产税税率
11)城市中小学老师的比例
12)1000(Bk - 0.63)^2
13)地位较低的人口百分比
上述输入是与目标输出相关联的。
数据准备
输入矩阵X和目标输出矩阵T
X中每一列都是由上述13个特征属性所表征的数字所组成。该已知的13个数值表示当前已知的房价均值。T矩阵的每一列都会有一个元素,用以表示1000年后的房价均值
(the median house price in 1000's of dollars)
数据导入:
[x,t]=house_dataset;
可以看到X和T都是506列,表示的是506个社区的属性,即所谓的输入。这些输入与房价均值相关联,即目标。X有13行,即表示13个属性;目标矩阵T只有1行。
用神经网络进行数据拟合
神经网络是用随机权值进行初始化的,所以每次运行的结果会有稍微的不一样。可以通过设置随机化种子以避免这种随机性。但是我们在应用过程中是不需要setdemorandstream(491218382)的。
一般越是复杂的问题,所需要设置的神经元数量越多,神经元层数也越多。在此,我们在隐含层设置的是10个神经元。
net = fitnet(10);
view(net)
从下图可以看出,神经网络的输入和输出都是0,这是因为此时的神经网络尚未进行配置,以对输入数据和输出数据进行匹配。需要对其进行训练!
接下来需要做得就是训练:
数据集一共分成三种:训练数据集、验证数据集和测试数据集。用训练数据集对神经网络进行训练,用以拟合模型,即用这部分数据来建立模型。 验证数据集,刚才说training建了一个模型,但是模型的效果仅体现了训练数据,但不一定适合同类的其他数据,所以需要在建模前会将数据分成两部分,一部分为训练数据,一部分为验证数据(两部分数据的比例大致为7:3,这取决于所采用的验证方法);另外,有时候也可能训练多个模型,但不知哪个模型性能更佳,这时可以将验证数据输入不同模型进行比较。所以,训练过程是需要不断进行的,直到验证数据集的性能不再有所提升。 test是测试数据,它跟前两者的最大区别在于:training和validation数据均是同一时期的数据,如都是5-7月数据,但既然是测试,就需要用跨期的数据来验证模型的稳定性,此时,可采用8月单月数据或9月单月数据对建好的模型进行测试,看性能有没有下降或偏移。
采用NN Training Tool可以展现被训练的神经网络和用以训练的算法。此外,该工具也展示了训练的过程中的训练时态和训练终止的准则(该准则用绿色进行标注)。在该UI底部的可以绘制。在算法名称和绘制按钮的旁边都有其对应的链接,以补充对该算法或者绘制图像的说明。
可以点击"Performance" 按钮或者用语句plotperform(tr)来查看神经网络在训练过程性能的提升。该性能的测量是基于最小均方误差,以对数log为底进行显示。在训练过程中可以发现该曲线是迅速下降的。且需要注意,多次运行所需要的迭代次数是不一样的。图中绿色圈圈所指示的是验证数据集性能最好的地方。
测试神经网络
通过测量测试数据的最小均方误差,可以感知经过训练的神经网络对应真实数据所表现出来的性能。
testX = x(:,tr.testInd);
testT = t(:,tr.testInd);
testY = net(testX);
perf = mse(net,testT,testY)
此外,也可以通过绘制回归线来测量神经网络对应数据的拟合程度。下面基于所有样本绘制回归线:
y = net(x);
plotregression(t,y)
若神经网络已经训练好,可以对数据进行拟合,则在回归图上面线性输出的目标拟合曲线Fit应该横贯左下角和右上角。若是没有达到,则需要继续进行训练,或者采用更多神经元的神经网络进行训练。
第三种测量神经网络对于数据的拟合程度方法是误差分布图。误差分布图可以展示误差情况,一般多数误差是靠近0的,只有少数远离0。
参考文档
http://cn.mathworks.com/products/neural-network/
Neural Network Toolbox使用笔记1:数据拟合的更多相关文章
- 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第二周:(Basics of Neural Network programming)-课程笔记
第二周:神经网络的编程基础 (Basics of Neural Network programming) 2.1.二分类(Binary Classification) 二分类问题的目标就是习得一个分类 ...
- convolutional neural network 课程笔记
一.CNN基础 (1)CNN在CV方面的应用 image classification(图像识别).object detection(目标检测).neural style transfer(风格迁移) ...
- RNN(recurrent neural network)学习笔记
参考:https://www.jianshu.com/p/9dc9f41f0b29 以及<白话深度学习与TensorFlow> 与前馈神经网络.卷积神经网络等不同之处在于,RNN具有一定 ...
- 用matlab训练数字分类的深度神经网络Training a Deep Neural Network for Digit Classification
This example shows how to use Neural Network Toolbox™ to train a deep neural network to classify ima ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
- 论文笔记系列-Neural Network Search :A Survey
论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...
- 深度学习课程笔记(十五)Recurrent Neural Network
深度学习课程笔记(十五)Recurrent Neural Network 2018-08-07 18:55:12 This video tutorial can be found from: Yout ...
- A NEW HYPERSPECTRAL BAND SELECTION APPROACH BASED ON CONVOLUTIONAL NEURAL NETWORK文章笔记
A NEW HYPERSPECTRAL BAND SELECTION APPROACH BASED ON CONVOLUTIONAL NEURAL NETWORK 文章地址:https://ieeex ...
- 论文笔记:蒸馏网络(Distilling the Knowledge in Neural Network)
Distilling the Knowledge in Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean preprint arXiv: ...
随机推荐
- 在 Debian 上安装 SQL Server vNext CTP1
微软在开源 .NET Framework 之后,相继推出了跨平台的编辑器 Visual Studio Code,跨平台的 SQL Server 数据库 SQL Server vNext,Visual ...
- android Fragments介绍
Fragments是Android3.0引入的概念,译为片段.碎片,为了解决不同屏幕分辩率的动态和灵活UI设计. Fragment表现Activity中UI的一个行为或者一部分.可以将多个fragme ...
- 【代码笔记】iOS-柱状图
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...
- activemq和jms是种什么关系
JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程. 而activemq则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者. jm ...
- Dojo: Quick Start
1.Dojo学习地址 2.Dojo快速开始 2.1.Dojo引入 2.2.指定Dojo模块的位置 2.3.模块加载require 3.查找Dom节点 3.1.根据id查找dom节点 3.2.根据c ...
- 在Ubuntu上搭建Hadoop群集
前面我搭建的Hadoop都是单机伪分布式的,并不能真正感受到Hadoop的最大特点,分布式存储和分布式计算.所以我打算在虚拟机中同时开启3台机器,实现分布式的Hadoop群集. 1.准备3台Ubunt ...
- .NET中集合已修改;可能无法执行枚举操作 的解决办法
foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等).要避免这个问题,就应该使用for循环. https://msdn.microsoft.com/zh-cn/library/tt ...
- (哈夫曼树)HuffmanTree的java实现
参考自:http://blog.csdn.net/jdhanhua/article/details/6621026 哈夫曼树 哈夫曼树(霍夫曼树)又称为最优树. 1.路径和路径长度在一棵树中,从一个结 ...
- UI内侧错题
此题考察的是JQuery UI下的menu插件的使用,ui-menu表示菜单的外层容器,如果菜单包含图标,该元素会另外带一个 ui-menu-icons class.故A B选项错误.ui-menu- ...
- HBase Zookeeper 安装学习
https://my.oschina.net/hanzhankang/blog/129335 http://blog.itpub.net/27099995/viewspace-1394831/ htt ...