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: ...
随机推荐
- When I see you again(加密原理介绍,代码实现DES、AES、RSA、Base64、MD5)
关于网络安全的数据加密部分,本来打算总结一篇博客搞定,没想到东西太多,这已是第三篇了,而且这篇写了多次,熬了多次夜,真是again and again.起个名字:数据加密三部曲,前两部链接如下: 整体 ...
- oracle索引监控
目的:监控oracle索引的有效性,看索引有没有被使用.然后根据监控结果删除或者调整索引. 步骤: 1.监控指定索引 命令: alter index 索引名 monitoring usage; 如 ...
- iOS系列 基础篇 09 开关、滑块和分段控件
iOS系列 基础篇 09 开关.滑块和分段控件 目录: 案例说明 开关控件Switch 滑块控件Slider 分段控件Segmented Control 1. 案例说明 开关控件(Switch).滑块 ...
- HTTP Session、Cookie机制详解
一.什么是http session,有什么用 HTTP协议本身是无状态的,本身并不能支持服务端保存客户端的状态信息,于是,Web Server中引入了session的概念,用来保存客户端的状态信息. ...
- linux 安装mysql数据库——yum安装法
mysql数据库有多种安装方式,本文只介绍在Linux服务器上最实用.最快捷的mysql server安装方法.一.Linux服务器yum安装(CentOS6.3 64位) 所有在服务器上执行的命令, ...
- [转]ASP.NET Core 中的那些认证中间件及一些重要知识点
本文转自:http://www.qingruanit.net/c_all/article_6645.html 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系 ...
- plain framework 商业版 开发总结2 项目管理器
任何事情都有三个阶段,分析.制作.质检的过程.在程序中就分为设计.编码.调试(测试)三个阶段,其中设计最为重要,设计的不好会导致编码和调试重复,甚至最后又回到了设计的过程.为了不会重复返工,所以设计的 ...
- 破解 Windows 下Markdown 编辑器 MarkdownPad 2
MarkdownPad 是 Windows 平台下一款优秀的 Markdown 编辑器,本文简单介绍 Markdown 以及使用一种方法破解 MarkdownPad 使其升级到专业版.该方法仅限于教育 ...
- openstack学习(一)kvm-libvirt
准备工作: 操作系统:ubuntu 16.04 安装KVM Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的 ...
- [No00008D]腾讯通RTX联系方式批量获取
公司用的RTX让我一直很不爽,QQ比RTX好多少为啥不让用,微信都有企业版了为啥还用腾讯通?终于今天发现唯一的好处是可以从服务器上拉公司妹子们的联系方式!!当然,我要这些联系方式,只是为了联tiao系 ...