<<matlab高级编程技巧与应用:45个案例分析>>

一、 重新认识向量化编程

1.向量化编程与循环的比较

2.预分配内存更好

3.matlab中是列优先

4.归一化

数据归一化方法是神经网络预测前对数据常傲的一种处理方法。数据归一化处理把所有
数据都转化为[0,1]之间的数,其目的是取消各维数据间数量级差别,避免因为输入输出数据
数量级差别较大而造成网络预测误差较大。

1.最大最小法    mapminmax()

2.平均数方差法

二、匿名函数

1.形式 f = @(x) x.^2;

2. 多变量匿名函数 g=@(x,y) a*x+b*y;

  ps:global定义的全局变量的使用

三、神经网络算法

GUI工具 nntool nftool等

1.感知器网络学习算法

  由两层神经元组成,输出:二值输出 0 1

单层感知机只对线性可分的问题收敛

  newp()

  train()   / adapt()

  sim()

  init()初始化网络

2.线性神经网络

  与感知机模型相似 区别在于: 输出不仅为二值,可以为任意值

  理论上多层线性网络并不比单层强大

3.BP神经网络

  BP神经网络具有任何复杂非线性映射的能力

  除最基本的BP梯度下降法外,还有很多其他的改进型高效bp算法

  newff feedforwardnet

4.径向基神经网络 RBF

  4.0  径向基神经元层+线性输出层   

  4.1  概论神经网络   径向基层+竞争神经元     常用做模式分类问题

  4.2  广义回归神经网络   径向基层+特殊线性层   常被用作函数逼近

 newrbe()  精确生成径向基神经网络

 newrb()  以迭代方法生成神经网络

newpnn()  概论神经网络

newgrnn()  广义神经网络  

  RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。

  所谓径向基函数,其实就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心c之间欧氏距离的单调函数,可记作k(||x-c||),其作用往往是局部的,即当x远离c时函数取值很小

  RBF神经网络,属于前向神经网络类型,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。

  RBF网络的结构与多层前向网络类似,它是一种三层前向网络。输入层由信号源结点组成;第二层为隐含层,隐单元数视所描述问题的需要而定,隐单元的变换函数是RBF径向基函数,它是对中心点径向对称且衰减的非负非线性函数;第三层为输出层,它对输入模式的作用作出响应。从输人空间到隐含层空间的变换是非线性的,而从隐含层空间到输出层空间变换是线性的。

  RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可将输入矢量直接(即不需要通过权连接)映射到隐空间。根据Cover定理,低维空间不可分的数据到了高维空间会更有可能变得可分。换句话来说,RBF网络的隐层的功能就是将低维空间的输入通过非线性函数映射到一个高维空间。然后再在这个高维空间进行曲线的拟合。它等价于在一个隐含的高维空间寻找一个能最佳拟合训练数据的表面

RBF神经网络与BP神经网络的比较

RBF神经网络与BP神经网络都是非线性多层前向网络,它们都是通用逼近器。对于任一个BP神经网络,总存在一个RBF神经网络可以代替它,反之亦然。但是这两个网络也存在着很多不同点,这里从网络结构、训练算法、网络资源的利用及逼近性能等方面对RBF神经网络和BP神经网络进行比较研究。

(1) 从网络结构上看。 BP神经网络实行权连接,而RBF神经网络输入层到隐层单元之间为直接连接,隐层到输出层实行权连接。BP神经网络隐层单元的转移函数一般选择非线性函数(如反正切函数),RBF神经网络隐层单元的转移函数是关于中心对称的RBF(如高斯函数)。BP神经网络是三层或三层以上的静态前馈神经网络,其隐层和隐层节点数不容易确定,没有普遍适用的规律可循,一旦网络的结构确定下来,在训练阶段网络结构将不再变化;RBF神经网络是三层静态前馈神经网络,隐层单元数也就是网络的结构可以根据研究的具体问题,在训练阶段自适应地调整,这样网络的适用性就更好了。

(2) 从训练算法上看。 BP神经网络需要确定的参数是连接权值和阈值,主要的训练算法为BP算法和改进的BP算法。但BP算法存在许多不足之处,主要表现为易限于局部极小值,学习过程收敛速度慢,隐层和隐层节点数难以确定;更为重要的是,一个新的BP神经网络能否经过训练达到收敛还与训练样本的容量、选择的算法及事先确定的网络结构(输入节点、隐层节点、输出节点及输出节点的传递函数)、期望误差和训练步数有很大的关系。RBF神经网络的训练算法在前面已做了论述,目前,很多RBF神经网络的训练算法支持在线和离线训练,可以动态确定网络结构和隐层单元的数据中心和扩展常数,学习速度快,比BP算法表现出更好的性能。

(3) 从网络资源的利用上看。 RBF神经网络原理、结构和学习算法的特殊性决定了其隐层单元的分配可以根据训练样本的容量、类别和分布来决定。如采用最近邻聚类方式训练网络,网络隐层单元的分配就仅与训练样本的分布及隐层单元的宽度有关,与执行的任务无关。在隐层单元分配的基础上,输入与输出之间的映射关系,通过调整隐层单元和输出单元之间的权值来实现,这样,不同的任务之间的影响就比较小,网络的资源就可以得到充分的利用。这一点和BP神经网络完全不同,BP神经网络权值和阈值的确定由每个任务(输出节点)均方差的总和直接决定,这样,训练的网络只能是不同任务的折中,对于某个任务来说,就无法达到最佳的效果。而RBF神经网络则可以使每个任务之间的影响降到较低的水平,从而每个任务都能达到较好的效果,这种并行的多任务系统会使RBF神经网络的应用越来越广泛。

总之,RBF神经网络可以根据具体问题确定相应的网络拓扑结构,具有自学习、自组织、自适应功能,它对非线性连续函数具有一致逼近性,学习速度快,可以进行大范围的数据融合,可以并行高速地处理数据。RBF神经网络的优良特性使得其显示出比BP神经网络更强的生命力,正在越来越多的领域内替代BP神经网络。目前,RBF神经网络已经成功地用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。

5.自组织神经网络   (竞争学习) 用作 分类, 聚类问题

  5.1自组织竞争神经网络  newc(旧版)   competlayer(新版)

用于分类 聚类

  5.2自组织映射网络   newsom(旧版)  selforgmap(新版)

它是一种无监督的学习。适用于:数据聚类,数据降维(如映射高维数据到2维平面)

SOM网采用的算法称为Kohonen算法

http://blog.csdn.net/richard2357/article/details/16882929

gridtop()  神经元排列在格点上

hextop()  六边形格点

dist()  计算欧几里得距离

box()  计算两个位置向量之间的距离

6.反馈神经网络

 

matlab 随笔的更多相关文章

  1. Matlab随笔之矩阵入门知识

    原文:Matlab随笔之矩阵入门知识 直接输入法创建矩阵 – 矩阵的所有元素必须放在方括号“[ ]”内: – 矩阵列元素之间必须用逗号“,”或空格隔开,每行必须用“;”隔开 – 矩阵元素可以是任何不含 ...

  2. Matlab随笔之画图函数总结

    原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...

  3. Matlab随笔之线性规划

    原文:Matlab随笔之线性规划   LP(Linear programming,线性规划)是一种优化方法,在优化问题中目标函数和约束函数均为向量变量的线性函数,LP问题可描述为:min xs.t. ...

  4. Matlab随笔之指派问题的整数规划

    原文:Matlab随笔之指派问题的整数规划 注:除了指派问题外,一般的整数规划问题无法直接利用Matlab函数,必须Matlab编程实现分支定界法和割平面解法. 常用Lingo等专用软件求解整数规划问 ...

  5. Matlab随笔之分段线性函数化为线性规划

    原文:Matlab随笔之分段线性函数化为线性规划 eg: 10x,            0<=x<=500 c(x)=1000+8x,    500<=x<=1000 300 ...

  6. Matlab随笔之求解线性方程

    原文:Matlab随笔之求解线性方程 理论知识补充: %矩阵除分为矩阵右除和矩阵左除. %矩阵右除的运算符号为“/”,设A,B为两个矩阵,则“A/B”是指方程X*B=A的解矩阵X. %矩阵A和B的列数 ...

  7. Matlab随笔之插值与拟合(上)

    原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...

  8. Matlab随笔之插值与拟合(下)

    原文:Matlab随笔之插值与拟合(下) 1.二维插值之插值节点为网格节点 已知m x n个节点:(xi,yj,zij)(i=1…m,j=1…n),且xi,yi递增.求(x,y)处的插值z. Matl ...

  9. Matlab随笔之判别分析

    原文:Matlab随笔之判别分析 从概率论角度,判别分析是根据所给样本数据,对所给的未分类数据进行分类. 如下表,已知有t个样本数据,每个数据关于n个量化特征有一个值,又已知该样本数据的分类,据此,求 ...

  10. matlab随笔(二)

    circshift 两种形式 :第一种Y = circshift(A,K)就不用说了,将A中的元素向右移动K个位置. 需要注意的是第二种形式:Y = circshift(A,K,dim),这种形式不好 ...

随机推荐

  1. scp.sh

    #!/bin/sh #Auto change server files #liudong 2016-3-21 if [ ! -f ip.txt ];then echo -e "\033[31 ...

  2. 4、html的body内标签之input系列

    一.input标签与form表单 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  3. ubuntu scp命令或者用root连接ssh提示:Permission denied, please try again.错误

    1.su - #!!! 2.vi /etc/ssh/sshd_config 3.PermitRootLogin yes # 找到此字段,改为此行所示 4./etc/init.d/ssh restart ...

  4. 022--python 模块介绍和time模块

    一.模块的含义 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代 ...

  5. Python网络爬虫之BeautifulSoup模块

    一.介绍: Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮 ...

  6. vim中编辑了代码 但是提示can not write的解决办法和代码对齐办法

    方式1: 1 :w /tmp/xxxx(如果是c文件就.c拉)  保存在/tmp下面 2 从tmp中复制到有权限的目录下面 cp /tmp xxxx ./(当前目录) 方式2::w !sudo tee ...

  7. ORACLE PL/SQL 实例精解之第六章 迭代控制之一

    6.1 简单循环 简单循环,就想其名称一张,是一种最基本循环.简单循环具有如下结构 LOOP STATEMENT 1; STATEMENT 2; ... STATEMENT N; END LOOP; ...

  8. 洛谷 P4125 [WC2012]记忆中的水杉树【扫描线+set+线段树】

    我没有找到能在bzojAC的代码--当然我也WA了--但是我在洛谷过了,那就假装过了吧 minmax线段树一开始写的只能用min更新min,max更新max,实际上是可以互相更新的-- 首先看第二问, ...

  9. P5072 [Ynoi2015]盼君勿忘

    传送门 一开始理解错题意了--还以为是两个子序列相同的话只算一次--结果是子序列里相同的元素只算一次-- 对于一个区间\([l,r]\),设其中\(x\)出现了\(k\)次,那么它的贡献就是它的权值乘 ...

  10. gcc降版本方法 - [学习]

    [转载]转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/huangw10-logs/182474992.html 周末折腾了一下午加一夜,终于弄明白 ...