【Matlab神经网络】新手入门第二十二天

神经网络工具箱

  • 1.神经网络MATLAB工具箱
    • 1.1 感知器工具箱的函数
    • 1.2 线性神经网络工具箱函数
    • 1.3 BP神经网络工具箱函数
    • 1.4 RBF网络工具箱函数
    • 1.5 Hopfield网络工具箱函数
    • 1.6 竞争型神经网络工具箱函数
  • 2.神经网络Simulink工具箱
  • 3.经典应用
    • 3.1 遗传算法优化神经网络
    • 3.2 基于Simulink的神经网络控制系统
  • 总结



【Matlab神经网络】新手入门第二十二天_第1张图片

1.神经网络MATLAB工具箱

神经网络工具箱几乎包括了现有神经网络的最新成果,神经网络工具箱模型包括:

  • 感知器;
  • 线性网络;
  • BP网络;
  • 径向基函数网络;
  • 竞争型神经网络;
  • 自组织网络和学习向量量化网络;
  • 反馈网络。

1.1 感知器工具箱的函数

MATLAB的神经网络工具箱中提供了大量的感知器函数,下面我们将对这些函数的功能、调用格式、使用方法及注意事项做详细说明。
常用感知器函数见下表所示。
【Matlab神经网络】新手入门第二十二天_第2张图片

1.2 线性神经网络工具箱函数

MATLAB神经网络工具箱为线性网络提供了大量用于网络设计、创建、分析、训练和仿真等函数。下面对这些函数的功能和使用方法进行详细介绍。
在MATLAB中与线性神经网络相关的工具箱函数如下表所示。
【Matlab神经网络】新手入门第二十二天_第3张图片
(1)newlind
该函数的作用是设计一个线性网络,其使用格式如下:
net=newlind(P,T)
(2)newlin
该函数的作用是建立一个线性网络。其使用格式如下所示:
net=newlin(PR,S,ID,LR) %建立一个新的线性网络
net=newlin(PR,S,0,P)%返回一个对输入P具有最大稳定学习率的线性网络
(3)purelin
该函数是线性传输函数,可根据网络的输入计算线性层的输出。其使用格式如下:
A=purelin§ %返回与输入向量对应的值
info=purelin(code) %返回与每一个code代码对应的有用信息

(4)learnwh
该函数是LMS算法的学习函数。该函数可以修改神经元的权值和阈值。只要学习率不超出用maxlinlr函数计算的最大值,网络就可以收敛。其使用格式如下:
[dW,LS]=learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
[db,LS]=learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info=learnwh(code)
(5)maxlinlr
该函数的作用是计算线性网络的最大学习率。其调用格式如下:
lr= maxlinlr§ %返回一个不带阈值的线性网络所需要的最大学习率
lr= maxlinlr(P,’bias’) %返回一个带有阈值的线性网络所需要的最大学习率

1.3 BP神经网络工具箱函数

神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。Matlab神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如下表所示。
【Matlab神经网络】新手入门第二十二天_第4张图片

1.4 RBF网络工具箱函数

众所周知,BP网络用于函数逼近时,权值的调节采用的是负梯度下降法。这个调节权值的方法有局限性,即收敛慢和局部极小等。而RBF网络在逼近能力、分类能力和学习速度等方面均优于BP网络。
MATLAB中提供了四个RBF函数相关的函数,它们都是创建两层的神经网络,第一层都是RBF神经网络层,第二层是线性层或者竞争层。主要的区别是它们权值、阀值就算函数不同或者是否有阀值。
1.RBF工具箱函数
下面介绍几种常用的工具箱函数:
(1)net = newrbe(P,T,spread)
(2)[net,tr] = newrb(P,T,goal,spread,MN,DF)
(3)net = newgrnn(P,T,spread)
(4)net = newpnn(P,T,spread)

1.5 Hopfield网络工具箱函数

MATLAB神经网络工具箱包含了很多用于Hopfield网络设计与分析的函数,本节重点介绍几个常用函数的功能、调用格式和参数含义等。
1.Hopfield网络创建函数
Hopfield网络的创建函数是newhop( ),该函数的功能是生成一个Hopfield回归网络。其调用格式如下:
net = newhop(T)
2.Hopfield网络的传递函数
(1)satlin( )
该函数的功能是饱和线性传递函数,其调用格式如下:
A = satlin(N)
(2)satlins( )
该函数的功能是对称饱和线性传递函数,其调用格式如下:
A = satlins(N)

1.6 竞争型神经网络工具箱函数

竞争型神经网络是神经网络领域中最吸引人的话题之一。这种结构的网络能够从输入信息中找出规律,以及关系,并且根据这些规律来相应地调整均衡网络,使得以后的输出与之相适应。
自组织竞争型神经网络能够识别成组的相似向量,常用于进行模式分类。自组织特征映射神经网络不但能够像自组织竞争神经网络一样学习输入的分布情况,而且可以学习进行训练神经网络的拓扑结构。
MATLAB神经网络工具箱为竞争型神经网络提供了大量的函数工具。本节将详细介绍这些函数的功能、调用格式和注意事项等。
竞争型神经网络常用的函数如下表所示。
【Matlab神经网络】新手入门第二十二天_第5张图片

2.神经网络Simulink工具箱

在Simulink库浏览窗口的NeuralNetwork Toolbox节点上,通过单击鼠标右键后,便可打开如下图所示的NeuralNetwork Toolbox模块集窗口。
【Matlab神经网络】新手入门第二十二天_第6张图片
在NeuralNetworkBlockset模块集中包含了五个模块库,用鼠标的左键双击各个模块库的图标,便可打开相应的模块库。下面主要介绍五个模块库:
1.控制系统模块库
2.网络输入模块库
3.过程函数模块库
4.传输函数模块库
5.权值模块库

3.经典应用

神经网络是由基本神经元相互连接,能模拟人脑的神经处理信息的方式,可以解决很多利用传统方法无法解决的难题。利用MATLAB及其工具箱可以完成各种神经网络的设计、训了和仿真,大大提高了工作效率。

3.1 遗传算法优化神经网络

遗传算法(Genetic Algorithm, GA)最先是由美国Mic- hgan大学的John Holland于1975年提出的。遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律, 是具有“生存+检测”的迭代过程的搜索算法。
遗传算法以一种群体中的所有个体为对象,并利用随机化技术指 导对一个被编码的参数空间进行高效搜索。其中,选择、交叉和变异构成了遗传算法的遗传操作;参数编码、初始 群体的设定、适应度函数的设计、遗传操作设计、控制参 数设定等5个要素组成了遗传算法的核心内容。
在新一代形成过程中,根据适度的大小选择部分后代,淘汰部分后代。从而保持种群大小是常数。适值高的染色体被选中的概率较高,这样经过若干代之后,算法收敛于最好的染色体,它很可能就是问题的最优解或次优解。 主要步骤如下所示:
(1)编码:GA在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合便构成了不同的点。
(2)初始群体的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体,N个个体构成了—个群体。GA以这N个串结构数据作为初始点开始迭代。
(3)适应性值评估检测:适应性函数表明个体或解的优劣性。对于不同的问题,适应性函数的定义方式也不同。
(4)选择:选择的目的是为了从当前群体个选出优良的个体 ,使它们有机会作为父代为下一代繁殖子孙。遗传算法通过选择过程体现这一思想,进行选择的原则是适应性强的个体为下一代贡献一个或多个后代的概率大。选择实现了达尔文的适者生存原则。
(5)交叉:交叉操作是遗传算法中最主要的遗传操作。通过交叉操作可以得到新一代个体,新个体组合了其父辈个体的特性。交叉体现了信息交换的思想。
(6)变异:变异首先在群体中随机选择一个个体,对于选中的个体以一定的概率随机地改变串结构数据中某个串的值。同生物界一样,GA中变异发生的概率很低,通常取值在 0.001~0.01之间。变异为新个体的产中提供了机会。
实际上,遗传算法中有两类运算:

  • 遗传运算:交叉和变异
  • 进化运算:选择遗传算法的特点分为以下几点:
  • GA是对问题参数的编码组进行计算,而不是针对参数本身。GA的搜索是从问题解的编码组开始搜素、 而不是从单个解开始。
  • GA使用目标函数值(适应度)这一信息进行搜索,而不需导数等其他信息。
  • GA算法使用的选择、交叉、变异这三个算子都是随机操作,而不是确定规则。

3.2 基于Simulink的神经网络控制系统

神经网络在系统辨识和动态系统控制中已经得到了非常成功的使用。由于神经网络具有全局逼近能力,使得其在对非线性系统建模和对一般情况下的非线性控制器的实现等方而应用的比较普遍。
本节将介绍三种在神经网络工具箱的控制系统模块中利用Simulink实现的比较普遍的神经网络结构,它们常用于预测和控制,并已在MATLAB对应的神经网络工具箱中给出了实现。
这三种神经网络结构分别是:

  • 神经网络模型预测控制
  • 反馈线性化控制
  • 模型参考控制
    使用神经网络进行控制时,通常有两个步骤:系统辨识和控制设计。
    在系统辨识阶段,主要任务是对需要控制的系统建立神经网络模型;在控制设计阶段,主要使用神经网络模型来设计(训练)控制器。

总结

以上就是今天学习的内容,坚持住。

你可能感兴趣的:(图像处理,matlab,开发语言)