Matlab神经网络工具箱学习之一
1、神经网络设计的流程
2、神经网络设计四个层次
3、神经网络模型
4、神经网络结构
5、创建神经网络对象
6、配置神经网络的输入输出
7、理解神经网络工具箱的数据结构
8、神经网络训练
1、神经网络设计的流程
神经网络设计可以分为七个步骤:
a. 采集数据
b. 创建网络
c. 配置网络参数
d. 初始化权重和偏置
e. 训练神经网络
f. 验证网络
g. 使用网络
2、神经网络设计四个层次
这里的层次主要只Matlab的神经网络工具箱和相关命令
a. 第一层是“Getting Started with Neural Network Toolbox”里面提到的GUI,可以方便、快速的解决拟合、模式识 别、聚类、时序分析等问题。
b. 第二层是使用命令行输入。
c. 第三层是工具箱的个性化配置,根据需求选择参数。
d. 第四层是自己修改.M文件,以适应需要解决的问题。
3、神经网络模型
基本神经元
神经网络的最基本结构是神经元。下图是单个神经元的图示。一个神经元包含了输入p,此输入的权重w,外加偏置b,这 三项元素组成了转移方程f的输入,经过f的计算,得到输出a。网络的权重方程通常是取w和p的乘积,有时也使用|w-p|(参 见help nnweight)。网络的输入方程n一般是各项wp的累加和,有时也用乘积(参见help nnnetinput)。
神经网络的训练目的就是迭代计算,每次调整w和b的值,使得网络的输出结果和目标结果的误差最小。
转移方程
常用的转移方程有两种,线性转移方程和Log-sigmoid转移方程。前一种多用于网络最后一层(输出层),而后者多用 于网络的中间层(参见help nntransfer)。
神经元的向量输入
通常每个节点的输入p会是一个多维(N维)的向量,所以每个节点的权重也是N维的向量w,偏置b还是一个常数。转移 方程的输入就可以写为n = w*p + b,n仍旧是一个标量。
4、神经网络结构
神经网络按照结构可以分为单层网络和多层网络,每一层网络又可以包含多个节点(神经元),最后构成一个完整的模型。
一层网络
下图是一层网络的模型图,输入有R个元素,每个元素Pr是一个向量。中间层有S个节点(神经元),Wsr表示第S个节 点对第r个输入的权重。bs表示第s个节点的偏置。权重W就变成了一个SxR的矩阵。P是RxN的矩阵,b是一个S维的向量。
多层网络
多层网络类似于是多级运算放大电路,把多个一层网络串联。每一层都有一个权重矩阵W和偏置向量b。上一层的输出作为下一层的输入。
5、创建神经网络对象
创建一个简单的网络模型可以用feedforwardnet( )函数
net = feedforwardnet
这时会显示很多的模型参数。dimensions表示整个网络的结构。connections保存网络各节点之间的连接状态,0表示没有连接,1表示有连接。layerConnect矩阵是各个网络层之间的连接,行表示目标层,列表示源层。
关键的几个参数是inputs, layers, outputs, biases, inputWeights and layerWeights.
6、配置神经网络的输入输出
网络的输入输出配置可以用configure()函数。
net1 = configure(net, input, target_output);
%% an example of BP network
load data input output
% shuffle index
k = rand(1,2000);
[m,n] = sort(k);
% prepare for training data 1900 out of 2000
input_train=input(n(1:1900),:)';
output_train=output(n(1:1900));
% prepare for test data 100 out of 2000
input_test=input(n(1901:2000),:)';
output_test=output(n(1901:2000));
% normalize training and test data to [-1, 1]
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
% initial NN model and set parameters
net=newff(inputn,outputn,5);
net.trainParam.epochs=100; % iteration times
net.trainParam.lr=0.1; % learning rate
net.trainParam.goal=0.00004;
net=train(net,inputn,outputn);
% normalize test data
inputn_test=mapminmax('apply',input_test,inputps);
% predict output
an=sim(net,inputn_test);
% de-normalize test data
BPoutput=mapminmax('reverse',an,outputps);
% plot predict output
figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*');
legend('test output','expected output')
title('BP neural network test output','fontsize',12)
ylabel('output','fontsize',12)
xlabel('sample','fontsize',12)
% plot errors
error=BPoutput-output_test;
figure(2)
plot(error,'-*')
title('BP neural network error','fontsize',12)
ylabel('error','fontsize',12)
xlabel('samole','fontsize',12)
Matlab神经网络工具箱学习之一的更多相关文章
- Matlab神经网络工具箱学习之二
螃蟹的分类 这个例子的目的是根据螃蟹的品种.背壳的长宽等等属性来判断螃蟹的性别,雄性还是雌性. 训练数据一共有六个属性: species, frontallip, rearwidth, length, ...
- 12.Matlab神经网络工具箱
概述: 1 人工神经网络介绍 2 人工神经元 3 MATLAB神经网络工具箱 4 感知器神经网络 5 感知器神经网络 5.1 设计实例分析 clear all; close all; P=[ ; ]; ...
- MATLAB地图工具箱学习总结(四)自定义投影
MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...
- MATLAB地图工具箱学习总结(三)地图工具箱的基本知识
MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...
- MATLAB地图工具箱学习总结(二)大圆和恒向线
MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1 作业案例:地图投影作 ...
- MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...
- MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序
最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...
- MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接
关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...
- matlab神经网络工具箱创建神经网络
为了看懂师兄的文章中使用的方法,研究了一下神经网络 昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本 % 生成训练样本集 clear all; ...
随机推荐
- 判断一个字符串是否为有效ip地址
bool f (const char *s) { int s1,s2,s3,s4; ) { return false; } if ((s1 & 0xffffff00) || (s2 & ...
- html5+js实现刮刮卡效果
通过Canvas实现的可刮涂层效果. 修改img.src时涂层也会自动适应新图片的尺寸. 修改layer函数可更改涂层样式. 涂层: 可刮效果: <!DOCTYPE html> <h ...
- inoic是什么
本篇只侧重框架提供的功能和能力的研究,请关注后续实际部署使用体验. 一.inoic是什么? inoic是一个可以使用Web技术以hybird方式开发移动app的前端开源框架. 二.inoic框架特点 ...
- MongoDB常用操作一查询find方法db.collection_name.find()
来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...
- H5 技术
1,HTML5预加载标签 <!-- 页面,可以使用绝对或者相对路径 --> <link rel="prefetch" href="page2.html& ...
- EditorLineEnds.ttr 错误问题
安装 Windows Write Live,在线安装,会先安装一个什么补丁,中途提示失败. 运行Delphi2007,第一次成功,第二次就是 EditorLineEnds.ttr文件错误. http: ...
- HDU 5382 莫比乌斯反演
题目大意: 求S(n)的值 n<=1000000 这是官方题解给出的推导过程,orz,按这上面说的来写,就不难了 这里需要思考的就是G(n)这个如何利用积性函数的性质线性筛出来 作为一个质数,那 ...
- [转]change the linux startup logo
1. Make sure that you have the kernel sources installed. As annoying as this may seem, you will need ...
- 有哪些 PHP 调试技巧?
我目前遇到的最让我称赞的debug方式是:xdebug的 xdebug_start_trace(); /* 业务代码 */ xdebug_stop_trace(); 他解决了我长久以来一个代码调试问题 ...
- ansible quick start
1. ansible默认开启ControlPersist,也就是持续化ssh的socket连接,以跳过每次task都需要进行主机认证. 2. 但是centos的openssh版本太老了,不支持Cont ...