Matlab神经网络工具箱学习之一

naive 2021-11-13 原文


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)

posted on
2014-02-28 10:32 
KK4SBB 
阅读(2473
评论(0
编辑 
收藏 
举报

 

版权声明:本文为naive原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/naive/p/3570571.html

Matlab神经网络工具箱学习之一的更多相关文章

随机推荐

  1. python 连接 SQL Server 数据库

    #!/usr/bin/python # -*- coding:utf-8 -*- import pymssql […]...

  2. JQuery返回Json的Ajax例子

    JQuery返回Json的Ajax例子 前台HTML代码: <html xmlns=“htt […]...

  3. 流式计算基础

    01_流式计算基础_第1天(Storm是什么、Storm核心组件、Storm编程模型) 课程介绍 课程名称:S […]...

  4. bootstrap 好看的上传组件

    html <!DOCTYPE html> <html> <head> &l […]...

  5. 开发必看 | iOS开发常用设计模式!

    ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~(一)代理模式 应用场景:当 […]...

  6. ps裁剪一寸照片及换背景色

    1.打开ps,把图片拖进去编辑 2.选魔棒工具,在途中选中背景色,鼠标右键,选选择反向 效果如下: 3.按 快 […]...

  7. js打开新窗口与页面跳转的几种方法

    1、window.location.href=URL : 在本窗体打开一个新的页面,也是最常用的一种方法; 2 […]...

  8. Tensorflow训练和预测中的BN层的坑

      以前使用Caffe的时候没注意这个,现在使用预训练模型来动手做时遇到了。在slim中的自带模型中incep […]...

展开目录

目录导航