- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
神经网络与matlab仿真
随着技术的发展,人工神经网络在各个方面应用越来越广泛,由于matlab仿真技术对神经网络的建模起着十分重要的作用,因此,通过讨论神经网络中基础的一类——线性神经网络的matlab仿真,对神经网络的matlab仿真做一个基本的了解。1.面向matlab工具箱的神经网络设计
人工神经网络可通过硬件或软件方式来实现。硬件方式即神经计算机。目前较常用的还是软件实现方式。已有许多公司和研究单位设计了通用的ANN程序以方便人们使用,matlab提供的神经网络工具箱就是其重要代表。
神经网络工具箱是在matlab环境下所开发出来的许多工具箱之一,它是以人工神经网络理论为基础,用matlab语言构造出典型神经网络的激活函数,如S型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算变成对激活函数的调用。另外,根据各种典型的修正网络权值的规定,加上网络的训练过程,用matlab编写出各种网络设计与训练所涉及的公式运算、矩阵操作和方程求解等大部分子程序,网络的设计者可以根据自己的需要进行调用,免除了自己编写复杂而庞大的算法程序的困扰,集中精力去思考需要解决的问题,提高工作效率和解题质量。
目前matlab几乎完整地概括了神经网络的基本成果,对于各种网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。
同时,matlab的其他工具箱也为我们在神经网络工具箱的基础上开发研究模糊与神经网络的结合、神经网络的样条算法等问题提供了辅助手段。
2 线性神经网络
线性神经网络是最简单的一种神经元网络,它可以由一个或多个线性神经元构成。50年代末期提出的自适应线性元件是线性神经网络最早的典型代表。其每个神经元的传递函数为线性函数,其输出可以取任意值。线性神经网络可以采用Widrow-Hoff学习规则,也称为LMS算法来调整网络的权值和阈值。
2.1 线性神经网络模型
线性神经元模型的神经元有一个线性传递函数purelin,其输入输出之间是简单的比例关系,一次对单个线性神经元,由图1可得,a=purelin(ω×p+b).因此,线性神经网络允许输出可以取任意值,而不仅仅是0或1。
线性神经元模型
线性神经元传递函数
具有R个输入的单层(S个神经元)线性神经网络模型。
单层多输入的线性神经网络模型
2.2 线性神经网络的学习算法
Widrow-Hoff学习规则,又称为最小均方误差LMS(Least Mean Square Error)学习算法,由Widrow-Hoff提出,属于有导师学习算法。
LMS学习规则定义如下:
其目标是通过调节权值,使mse从误差空间的某点开始,沿着mse的斜面向下滑行,最终使mse达到最小值。
LMS算法的实现有五个步骤:
第一步:初始化。给各个连接赋一个较小的随机值;
第二步:输入一个样本,计算连接权值的调整量:
第三步:调整连接权值:
根据负梯度下降的原则,网络权值和阈值修正公式如下
式中η为学习率,当其取较大值时,可以加快网络的训练速度,但是如果其值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行稳定的训练,学习率的值必须选择一个合适的值;
第四步:计算均方误差:
第五步:判断误差是否为零或者是否达到预选设定的要求。如果是,则结束算法,否则输入下一个样本,返回第二步进入下一轮求解过程。
3 线性神经网络的matlab实现函数名称 功能 newlind 设计一个线性层 newlin 构造一个线性层 purelin 线性传递函数 dotprod 权值点积函数 netsum 网络输入求和函数 initlay 某层的初始化函数 initwb 某层的权值和阈值的初始化函数 initzero 零权值阈值初始化函数 init 一个网络的初始化函数 mae 求平均绝对误差性能函数 learnwh Widrow-hoff的学习规则 adaptwb 网络的权值阈值的自适应函数 adapt 神经网络的自适应函数 trainwb 网络的权值和阈值训练函数 train 神经网络训练函数 maxlinlr 线性层的最大学习率 errsurf 计算误差性能曲面 sim 仿真一个神经网络 下面给出一个线性神经网络的设计要求,并尝试用matlab提供的神经网络工具函数实现。
设计一个简单的单层线性神经元,其
文档评论(0)