<<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() 计算两个位置向量之间的距离