多层感知器神经网络反向传播算法的实现与研究.docx

多层感知器神经网络反向传播算法的实现与研究.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

多层感知器神经网络反向传播算法的实现与研究

?

?

摘要本文通过实现多层感知器神经网络反向传播算法,对其中各神经元突触权值和偏置的自适应收敛速度的影响因素进行研究,包括激活函数、学习率和特征的提取及其初始化等。并通过非线性可分的“异或”问题来进行验证,实验结果表明反向传播算法在学习率、特征初值和激活函数选择得当的前提下是一种高效的算法。

关键词人工智能;人工神经网络;多层感知器;支持向量机

引言

随着信息技术(处理器、存储、网络和物联网等技术)的步深化和人类社会信息化程度的不断提高,需要处理的数据量和种类越来越多,靠人脑来处理这些海量数据已经不可能[3]。利用计算机的高速数据处理特性,来处理这些海量数据是必由之路,如何训练计算机使其具有像人脑类似的智能是当务之急。

以模拟人脑神经系统的工作原理的人工神经网络(ANN:ArtificialNeuralNetwork),主要解决非线性可分的复杂问题[1],

逐渐成为人工智能(AI:ArtificialIntelligence)主要的技术之一。神经网络的主要思想是通过将非线性问题分解为若干线性问题,从而可以在每个神经元利用机器学习算法,如K均值(K-Means)和支持向量机(SVM:SupportVectorMachine)[1-3]等。

1神经网络概述

1.1神经元模型

神经元是神经网络进行信息处理的最基本单元[1],它既能处理线性数据,也能处理非线性数据,其模型如图1所示:

神经元模型由三种元素组成:突触、加法器和激活函数[1]。

此外,它还包含外部偏置,它根据其数值的符号和大小,来增加或减弱输入信号加权和通过激活函数对神经网络输入。神经元的信号传递特性由如下的线性代数式定义[1]:

1.2神经网络

神经网络以分层结构为基本特征,根据功能的不同可分为三类[1]:输入层、隐藏层和输出层,如图2所示。神经元按所在网络层的不同,分别称为源节点、隐藏节点和输出节点。

根据网络中信息流动的不同,神经网络构造结构可分为[1]:

前馈网络和递归网络。前馈网络结构中,信息从源节点逐级向后传递,直到最后的输出节点;而递归网络结构中,神经元的输出与其输入会构成反馈环。神经网络的构造方式,与用于训练网络的学习算法紧密联系。

2多层神经网络以及反向传播学习算法

反向传播神经网络主要特征,是神经元的输出会反馈给其输入神经元,如图3所示。反向传播算法是基于多层感知器(神经网络)提出,是训练多层感知器的流行算法,由“前向阶段”和“反向阶段”两个阶段组成[1]:

(1)前向阶段:网络中各突触权值和偏置固定,输入信号(xi)从输入层开始在网络中一层一层沿着突触传播,直到到达输出层。在此阶段,函数信号在每个神经元的传递方式遵循式(1.1)和式(1.2)的定义。

(2)反向阶段:将前向阶段的输出信号(yj)与期望值(dj)之间的误差信号(ej)从输出层向输入层传播,并修改其经过的神经元突触权值wkj和偏置bk。

信号反向传播算法,是基于神经元的前向传播信号流在最小均方(LMS:LeastMeanSquare)误差[1,7]作用下的结果。图4为任意神经元前向信号流图。

根据神经元前向传播信号流,定义神经元j的诱导局部域定义为vj(n)[1]为:

定义总误差E(n)为所有输出层神经元的信号误差的平方和,设输出层有k个神经元,其中第j个神经元的输出信号误差ej为输出信号yj(n)与该信号期望值dj之差,记为:

反向传播在输出层和隐藏层的传播略微不同,主要體现在局部梯度δj(n)的计算方式不同,在输出层中的计算相对直接,在隐藏层中的梯度是基于其后一层的计算结果递归而得。

2.2输出层神经元的反向传播算法

图5为输出层任一神经元的前向信号流图,根据其信号流图以及导数的链式公式得其局部梯度δj(n),并将式(2.5),(2.6)和(2.7)代入。故局部梯度式(2.10)在输出层的重写为:

2.3隐藏层神经元的反向传播算法

图6为隐藏层任一神经元的前向信号流图,根据隐藏层的神经元的级联结构及其信号流图可以看出,(设神经元j的后一层有m个神经元)根据式(2.1)可得,后一层神经元k的诱导局部域对神经元j的输出信号yj(n)=xj(n)的偏导数为:

根据链式导数公式,神经元j的局部梯度δj(n)可以通过后一层所有神经元k的局部梯度δk(n),k=0,1,2…m递推而得。代入式(2.7),(2.10)和(2.13)可将式(2.10)在隐藏层的重写为:

3反向传播算法收敛速度的影响因素

本文用Python语言实现了多层感知器反向传播算法,并基于图7所示的2x2x1(2输入层源节点2隐藏层节点1输出层节点)多层感知器神经网络为例,以非线性可分的(或识别问题为对象,来研究反向传播算法的收敛

文档评论(0)

135****1100 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档