在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 人工神经网络及其应用实例(含代码)

人工神经网络及其应用实例(含代码)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.68M
  • 下载次数:34
  • 浏览次数:805
  • 发布时间:2020-11-07
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
通过实例对人工神经网络的实际应用进行分析和讲解,清晰的代码一目了然
每神经元有许多输入、输出键,各神经元之间以连接键(又称 突触)相连,它决定神经元之间的连接强度(突触强度)和性质(兴 奋或抑制),即决定神经元间相互作用的强弱和正负,共有三种类型: 兴奋型连接、抑制型连接、无连接。这样,个神经元(一般很大) 构成一个相互影响的复杂网终系统,通过调整网络参数,可使人工神 经网络具有所需要的特定功能,即学习、训练或自组织过程。一个简 单的人工神经网络结构图如下所示: 上图中,左侧为输入层(输入层的神经元个数由输入的维度决定), 右侧为输出层(输出层的神经元个数由输出的维度决定),输入层与 输出层之间即为隐层。 输入层节点上的神经元接收外部环境的输入模式,并由它传递给 相连隐层上的各个神经元。隐层是神经元网络的内部处理层,这些神 经元在网络内部构成中间层,不直接与外部输入、输出打交道。人工 经网络所具有的模式变换能力主要体现在隐层的神经元上。输出层 用于产生神经网络的输出模式。 多层神经网络结构中有代表性的有前向网络(BP网络)模型 Page 3 of 25 多层侧抑制神经网络模型和带有反馈的多层神经网络模型等。本文主 要探讨前向网络模型 多层前向神经网络不具有侧扣制和反馈的连接方式,即不其有本 层之间或指向前一层的连接弧,只有指向下一层的连接弧。代表是 BP神经网终:输入模式由输入层进入网终,经中间各隐层的顺序变 换,最后由输出层产生一个输出模式,如下图所示: 输入层 隐层 输出层 多层前向神经网终由隐层神经元的非线性处理衍生它的能力,这 个任务的关键在于将神经元的加权输入非线性转换成一个输出的非 线性激励函数。下图给出了一个接收个输入 的神经元: Page 4 of 25 神经元的输出由下式给出: 这里输入的加权和(括号内部分)由一个非线性函数传递,表 示与偏差输入相关的权值,表示与第个输入相关的权值。 使用最广泛的函数是S形函数,其曲线家族包括对数函数和双曲 正切函数,这些都可用来对人口动态系统、经济学系统等建模。另外 所用的其他函数有高斯函数、正弦函数、反正切函数,在此不一一展 开介绍,本文主要使用的激励函数是对数函数,函数表达式为 函数曲线如下图所示 对于有限输入量,对数函数输出范围为∈。在输入为=时, 输出值为中问值 输出在—附近随着输入的增加以相对快的 Page 5 of 25 速率增加并非常慢地到达上限。对于<,输出起初减少得很快,然 后随着下限的接近将会变慢。 训练神经元的规则有很多种,这里首先介绍利用 delta规则的学 引,神经元选择为一个单输入单输岀出的简单情形,数学描述如下: 该神经元具有一个输入,权重为,偏差输入为,目标输出 为,预报输出为。则预报误差为: 十 为消除当误差在整个输入模式上求和时引起的误差符号问题,在 deta规则里使用的误差指示是平方误差,定义为: 根据 delta规则,最优权值(使平方误差最小)可以在训练过程 中从初始权值出发,沿负梯度方向下降得到。将平方误差对(神 经元的可调整参数)进行微分,得: da ae de a de da o 根据 delta原则,权值改变应与误差梯度的负值成比例,引入学 丬率B,每次迭代中的权值改变可表示为: de △=-B B ae B.=B Page 6 of 25 学习率β决定了沿梯度方向的移动速度,以确定新的权值。大的 β值会加快权值的改变,小的β值则减缓了权值的改变。第次迭代 后的新权值可表示为: +B6 如果将偏差输入视为输入的一部分,令 ,可以得到 对于多输入神经元的权值修正式 +B 之,利用deta规则的有监督的学习可以按如下方法来实现: 个输入模式( 通过连接被传递,它的初始权值被设置 为任意值。对加权的输入求和,产生输出,然后与给定的目标输 出做比较决定此模式的屮方误差ε。输入和凵标输出不断地被提岀 在每一次迭代或每一个训练时间后利用deta规则进行权值调整直到 得到可能的最小平方误差。 de|ta规则在每一步中通过导数寻找在误差平面中某个特定点局 部区域的斜率,它总是应用这个斜率从而试图减小局部误差,因此, deta规则不能区分误差空间中的全局最小点和局部最小点,它本身 不能克服单层神经网络的局限,无法直接应用到多层神经网络(易陷 入局部最小点),但它的一般形式是多层神经网络中的学习算法 反传算法的核心 在多层前向神经网络的训练过程中,误差导数或关于权值的误差 Page 7 of 25 表面的斜率对权值的调整是至关重要的,在网络训练期间,所有的输 出神经元和隐含神经元权值必须同时调幣,因此,有必要找出关于所 有权值的误差导数。由于网络层数增多,平方误差与权值的连接没 有之前单个神经元时那么直接,故可以使用链式规则的概念来找到导 数 下面对一个含有一层隐含神经元的BP网络进行讨论,网络结构 如下图所示: ∑ 各个神经元的输入输出关系为 ∑ 设目标输出为,则平方误差G定义为: Page 8 of 25 使用链式法则,分别列出平方误差ε对所冇网络参数的导数: de ae ce dE 8 ae de a ae a8 在实际的编程过程中,我们需要的是和,所以如果有需要, 也可以直接采用以下整理之后的形式 o8 研究表明,两层网络在其隐层中使用S形激劢函数,在输出层中 使用线性传输函数,就几乎可以以仼意精度逼近任意感兴趣的函数, 只要隐层中有足够的单元可用。 问题1: 试使用BP神经网络去遏近正弦函数的正半周,如下: 由于输入量仅有一维,故BP神经网络结构可以设计为 Page 9 of 25 ∑ 各个神经元的输入输出关系为 根据之前的推导,平方误差5对所有网络参数的导数为: 08 ac 网终参数修正方程为: os B dE +B 为加快寻找最优权值的速度,可以使用动量法。之前的方法中, 收敛到最优权值的速度取决于学习率的大小,但是过大的学习率会导 致来回震荡,不能稳定到最优权值点。动量法的引入,使得较大的学 刁率也可以具有较好的稳定性,即提供了在学习期间到达最优权值时 Page 10 of 25 【实例截图】
【核心代码】

标签:

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警