(急)如何用MATLAB建立ANN(人工神经网络模型)?

作者&投稿:子巧 (若有异议请与网页底部的电邮联系)
利用人工神经网络建立模型的步骤~

人工神经网络有很多种,我只会最常用的BP神经网络。不同的网络有不同的结构和不同的学习算法。

简单点说,人工神经网络就是一个函数。只是这个函数有别于一般的函数。它比普通的函数多了一个学习的过程。

在学习的过程中,它根据正确结果不停地校正自己的网络结构,最后达到一个满意的精度。这时,它才开始真正的工作阶段。

学习人工神经网络最好先安装MathWords公司出的MatLab软件。利用该软件,你可以在一周之内就学会建立你自己的人工神经网络解题模型。

如果你想自己编程实现人工神经网络,那就需要找一本有关的书籍,专门看神经网络学习算法的那部分内容。因为“学习算法”是人工神经网络的核心。最常用的BP人工神经网络,使用的就是BP学习算法。

第0节、引例
本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集:
有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。
  一种解决方法是用已有的数据训练一个神经网络用作分类器。
  如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。

第一节、神经网络基本原理
1. 人工神经元( Artificial Neuron )模型
人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1. 人工神经元模型

图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:


  图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:


  若用X表示输入向量,用W表示权重向量,即:
X = [ x0 , x1 , x2 , ....... , xn ]

  则神经元的输出可以表示为向量相乘的形式:


若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。
图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

2. 常用激活函数
激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。
(1) 线性函数 ( Liner Function )

(2) 斜面函数 ( Ramp Function )

(3) 阈值函数 ( Threshold Function )



以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。
(4) S形函数 ( Sigmoid Function )

  该函数的导函数:

(5) 双极S形函数

  该函数的导函数:

  S形函数与双极S形函数的图像如下:

图3. S形函数与双极S形函数图像
  双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。
  由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)
具体http://blog.csdn.net/gongxq0124/article/details/7681000/

问题描述:
有两个自变量,一个因变量,10个样本(这里就取少一点好了)。用实际问题来表述,假设一个股票,开盘价 x1,收盘价 x2,第二天的股价 y。 那用神经网络来预测的目的是,根据10天的开盘价和收盘价,来预测未来股价。显然,这里的y与x1和x2相关,我们要训练一个网络(net)来让他尽可能的预测一个y

MATLAB程序

clc
clear
load data input output
%input就是包含了x1和x2 10天数据的矩阵,说白了就是20个数的矩阵。output是y的一个向量,%10个数
%需要自己找一些数据赋值给input和ouput

P=input;
T=output;
%这里P和T必须是 x1 x2和y的行向量组合。对于P,x1是行向量,x2是行向量。P=[x1;x2]; T=y. y是行向量

Epochs=5000;
NodeNum=12; TypeNum=1;
TF1='logsig'; TF2='purelin';
%设置一些初始参数,Epochs是迭代上限次数,NodeNum是第一个隐藏层的神经元个数,%TypeNum是几层。TF1和TF2分别定义了几个传递函数。

net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
%建立一个神经网络,训练输入和输出数据都有了,设置隐藏层的个数。

net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-4;
net.trainParam.min_grad=1e-4;
net.trainParam.show=200;
net.trainParam.time=inf;
%设置一些训练时的参数,第一个是每次训练的最大迭代次数;

net=train(net,P,T);
%开始网络训练

P_test=P;
B_test=T;
%就用原始的数据进行测试

X=sim(net,P_test);
%测试

Erro=abs(B_test-X);
sigma=std(Erro);
%计算出预测值和实际值的误差,求出方差。将来方差可以用来随机调整


如何用MATLAB计算单位阶跃响应函数呢?
1、调用Heaviside(t)函数 在MATL AB的Symbolic Math Toolbox中,有专门用于表示单位阶跃信号的函数,即Heaviside(t)函数,用它即可方便地表示出单位阶跃信号以及延时的单位阶跃信号,并且可以方便地参加有关的各种运算过程。2、数值计算法 在MATLAB中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )...

翻译一句荷兰语(和英语很相似,其实我也分不清除)。非常着急!谢过_百 ...
步骤1:铬钒钢淬火,回火并且化学涂黑以防腐蚀。参考资料:translate.google.com

【汽车路试检测充分发出平均减速度的缺陷】 充分发出的平均减速度_百度...
制动协调时间:是指在急踩制动踏板时,从脚接触制动踏板(或手触动制动手柄)时起至机动车减速度(或制动力)达到表4规定的机动车充分发出的平均减速度(或表6所规定的制动力)的75%1]}所需的时间。 设减速度(制动力)在增长阶段为线性增长,忽略制动传动系间隙作用时间,计算t,与规定制动协、调时间的差△t=O25×1...

金属乐的金属指的是什么
金属乐的金属指的是强硬度。强硬度体现在乐器的选用和演奏的激烈强度。金属乐的含义:金属乐是以重金属为主,包括黑金属,死亡金属,激流金属,新金属,厄运金属,华丽金属,重金属,工业金属等重型音乐。通常金属乐的基本结构包括:电吉他、贝司、鼓和人声,有时加入键盘。金属乐包括:传统金属、传统重金...

巴啦啦小魔仙
英日文名:Annie、Mikan 生年月日:1991\/04\/09 星座:白羊座 血液型:B型 来自:深圳 最迷人之处:脸形(瓜子的哦~)、高鼻梁~最喜欢的颜色:PINK,蓝色,橘色……最喜欢的食物:冰淇淋,红烧肉 最讨厌的食物:茄子 最喜欢的话:天才的1%是灵感,99%是汗水!最害怕的东西;虫虫 喜欢的季节:...

曲周县13179826379: (急)如何用MATLAB建立ANN(人工神经网络模型)? -
度终久威: 问题描述:有两个自变量,一个因变量,10个样本(这里就取少一点好了).用实际问题来表述,假设一个股票,开盘价 x1,收盘价 x2,第二天的股价 y. 那用神经网络来预测的目的是,根据10天的开盘价和收盘价,来预测未来股价.显然,...

曲周县13179826379: 用matlab创建数列 an=n^4 (1 -
度终久威:[答案] n=1:40;an=n.^4

曲周县13179826379: 用matlab创建数列 an=n^4 1<=n<=50 跪求代码!急急急!!!! 做出函数 f(x)=1/(1+x^3)的图像!!!! -
度终久威: 第一个代码:t=1:50; an=zeros(1,50); for n=1:50 an(n)=n^4; end plot(t,an); grid on; 第二个代码 clc;clear all; x=1:50; fx=zeros(1,50); for t=1:50 fx(t)=1/(1+t^3); end plot(x,fx); grid on;

曲周县13179826379: 在线等!!用matlab创建数列 an=n^4 (1<=n<=50)! ! -
度终久威: n=1:40;an=n.^4

曲周县13179826379: 如何利用MATLAB/SIMULINK搭建简单的仿真模型 -
度终久威: 方法/步骤 安装完MATLAB软件后,在电脑桌面点击MATLAB快捷方式 打开MATLAB后,点击Simulink Library按钮 之后会进入Simulink模块库界面,点击新建模型 接下来,我们就会看到新模型的操作界面,我们只需在模块库中选择我们所需要的...

曲周县13179826379: 怎么用matlab生成范德蒙矩阵 -
度终久威: 1、打开matlab,第一种方法是直接建立矩阵. 2、在命令窗口中输入T=[1 3 4;3 4 6;4 6 7] 回车后生成了这个3阶矩阵. 3、利用函数建立矩阵.一些有规律的特殊矩阵,matlab软件封装了相应的函数,利用通过调用函数来生成这些特殊矩阵. 4、单位矩阵,随机矩阵,范德蒙矩阵等,其对应的函数为eye,rand,vander. 5、利用冒号表达式建立矩阵;冒号表达式的格式为a1:a2:a3.其中a1是起始数据,a2是步长,a3是终止数据.其中a2可以省略不写,默认为1.

曲周县13179826379: 怎么使用matlab2014a -
度终久威: 打开matlab2014a程序 建立的方法之一 在主工具栏里边找到新建,然后选择simulink model,点击即可建立. 建立的方法之二 在主工具栏里点击simulink库,进入simulink库界面. 在simulink库界面工具栏中选择file--new--model,或者直接按ctrl+N即可建立

曲周县13179826379: 如何使用matlab中fuzzy logic toolbox建立一个mamdani型模糊控制器 -
度终久威: 首先,将下载的工具箱文件解压,将文件夹复制到MATLAB安装目录下toolbox文件夹下. 其次,在MATLAB命令行中输入如下命令: >>cd D:\MATLAB7\toolbox\piotr_toolbox % 找到你的工具箱 >> addpath(genpath('D:\MATLAB7\toolbox\piotr_toolbox')) %.

曲周县13179826379: matlab中怎么创建符号函数? -
度终久威: MATLAB中,syms函数用于创建符号对象. 语法格式: syms arg1 arg2 ... 是 arg1 = sym('arg1'); arg2 = sym('arg2'); ... 的简便写法 syms arg1 arg2 ... real 是 arg1 = sym('arg1','real'); arg2 = sym('arg2','real'); ... 的简便写法 syms arg...

曲周县13179826379: matlab怎么建立目标函数文件 -
度终久威: 意思是自定义M文件,你打开matlab后点击上面的file——new——blank M file,然后打开一个空白的M文件,编辑完退出的时候它会自动提醒你保存,这时候在命名,就建立了***.m文件

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网