神经网络与matlab仿真_第1页
神经网络与matlab仿真_第2页
神经网络与matlab仿真_第3页
神经网络与matlab仿真_第4页
神经网络与matlab仿真_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

神经网络与 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 学习规则定义如下 22 11 11 mm kk mseekd ky k mm 其目标是通过调节权值 使 mse 从误差空间的某点开始 沿着 mse 的斜面向下 滑行 最终使 mse 达到最小值 LMS 算法的实现有五个步骤 第一步 初始化 给各个连接赋一个较小的随机值 第二步 输入一个样本 计算连接权值的调整量 2 2 ijij eke k e k 2 2 eke k e k bb 1 R iji ijij i e ke d kp kb 第三步 调整连接权值 根据负梯度下降的原则 网络权值和阈值修正公式如下 1 2 1 2 T kke k pk b kb ke k 式中 为学习率 当其取较大值时 可以加快网络的训练速度 但是如果 其值太大 会导致网络稳定性的降低和训练误差的增加 所以 为了保证网络 进行稳定的训练 学习率的值必须选择一个合适的值 第四步 计算均方误差 22 11 11 mm kk mesekd ky k mm 第五步 判断误差是否为零或者是否达到预选设定的要求 如果是 则结 束算法 否则输入下一个样本 返回第二步进入下一轮求解过程 3 线性神经网络的 matlab 实现 函数名称功能 newlind设计一个线性层 newlin构造一个线性层 purelin线性传递函数 dotprod权值点积函数 netsum网络输入求和函数 initlay某层的初始化函数 initwb某层的权值和阈值的初始化函数 initzero零权值阈值初始化函数 init一个网络的初始化函数 mae求平均绝对误差性能函数 learnwhWidrow hoff 的学习规则 adaptwb网络的权值阈值的自适应函数 adapt神经网络的自适应函数 trainwb网络的权值和阈值训练函数 train神经网络训练函数 maxlinlr线性层的最大学习率 errsurf计算误差性能曲面 sim仿真一个神经网络 下面给出一个线性神经网络的设计要求 并尝试用 matlab 提供的神经网络 工具函数实现 设计一个简单的单层线性神经元 其输入和目标分别为 P 1 0 1 2 T 0 5 1 0 权值和阈值的范围分别为 1 1 试用 matlab 实现其从输入到输 出的变化关系 由例中的条件编写 matlab 源程序如下 dlin1 m NEWLIND SIM clf figure gcf P 1 0 1 2 T 0 5 1 0 w range 1 0 1 1 b range 1 0 2 1 ES errsurf P T w range b range purelin plotes w range b range ES ax findobj gcf type axes pause net neslind P T format compact A 0 E 0 SSE 0 A sim net P E T A SSE sumsqr E plotes w range b range ES plotep net IW 1 1 net b 1 SSE p 1 2 a 0 a sim net p 进行网络验证 disp End of dline1 执行程序 可得到线性网络求解后的误差曲面图 对此线性网络进行更多的训练以求最优解 则 matlab 程序更改如下 dlin2 m NEWLIN TRAIN SIM clf figure gcf P 1 0 1 2 T 0 5 1 0 w range 1 0 2 1 b range 1 0 2 1 ES errsurf P T w range b range purelin plotes w range b range ES pause maxlr 0 40 maxlinlr P bias net newlin 2 2 1 0 maxlr net trainParam goal 001 subplot 1 2 2 h text sum get gca xlim 0 5 sum get gca ylim 0 5 Click On ME set h horizontal center fontweight bold net IW 1 1 net b 1 ginput 1 delete h net tr train net P T format conpact A 0 E 0 SSE 0 A sim net P E T A SSE sumsqr E plotes w range b range ES plotep net IW 1 1 net b 1 SSE pause plotperf tr net trainParam goal p 1 2 a sim net P disp End of dlin2 运行程序 得到的误差曲面及误差等高线图 参考文献 1 周开利 康耀红 神经网络模型及其 MATLAB 仿真程序设计 M 北京 清

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论