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神经网络工具箱学习之一的更多相关文章

  1. Matlab神经网络工具箱学习之二

    螃蟹的分类 这个例子的目的是根据螃蟹的品种.背壳的长宽等等属性来判断螃蟹的性别,雄性还是雌性. 训练数据一共有六个属性: species, frontallip, rearwidth, length, ...

  2. 12.Matlab神经网络工具箱

    概述: 1 人工神经网络介绍 2 人工神经元 3 MATLAB神经网络工具箱 4 感知器神经网络 5 感知器神经网络 5.1 设计实例分析 clear all; close all; P=[ ; ]; ...

  3. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  4. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  5. MATLAB地图工具箱学习总结(二)大圆和恒向线

    MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1                    作业案例:地图投影作 ...

  6. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  7. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

  8. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  9. matlab神经网络工具箱创建神经网络

    为了看懂师兄的文章中使用的方法,研究了一下神经网络 昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本 % 生成训练样本集 clear all; ...

随机推荐

  1. bzoj 2744: [HEOI2012]朋友圈

    #include<cstdio> #include<iostream> #define M 3010 using namespace std; ],u[M*M>>] ...

  2. ActiveX 技术疑点 一

    1.编写基于MFC Activex 使用 静态库 .lib , MFC 的使用 在静态库中使用MFC . 生成ocx 文件 注册失败.提示: ***还是一个可执行文件,没有为这个文件类型注册的注册帮助 ...

  3. WP8 学习 在APP.XAML中加入Resources

    <Application.Resources> <local:LocalizedStrings xmlns:local="clr-namespace:test1" ...

  4. No module ata_piix found的解决方法

    在一台as4u6的机器上升级内核到2.6.18时,最好make install的时候报了一个WARNING: No module ata_piix found for 2.6.18, 开始没有在意,重 ...

  5. 虚拟机安装Centos版本的linux

    选择自定义安装,然后一路确定下去,对了,Centos的版本一定要高,比如centos 6,太低安装会出问题

  6. primitive数据类型

    /*primitive数据类型 *primitive主要是用来存储原始的数据 *boolean\byte\short\int\long\double **/public class Shujuleix ...

  7. 对于C#中的一些点滴你真的理解了吗?

    废话不多说看题目,看看我们自己真的理解了吗? 1.如下代码输出的结果是什么? public class A{ public virtual void Func(int  number=10) { Co ...

  8. XAMPP启动mysql遇到的问题

    Version: '10.1.9-MariaDB' socket: '' port: 3306 mariadb.org binary distribution2016-07-18 10:42:04 1 ...

  9. hdu1005 矩阵

    //Accepted hdu1005 0MS 248K #include <cstdio> #include <cstring> #include <iostream&g ...

  10. python中的函数调用绑定,静态方法和类方法

    在C++的类中,有两种函数:普通成员函数和静态成员函数,差别是成员函数通过类实例调用,而静态成员函数通过类名调用.本质上,成员函数在调用的时候会默认把this指针作为第一个参数传入,而静态成员函数不需 ...