神经网络介绍讲述.doc

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

神经网络简介 神经网络简介: 人工神经网络是以工程技术手段来模拟人脑神经元网络的结构和特征的系统。利用人工神经网络可以构成各种不同拓扑结构的神经网络,他是生物神经网络的一种模拟和近似。神经网络的主要连接形式主要有前馈型和反馈型神经网络。常用的前馈型有感知器神经网络、BP神经网络,常用的反馈型有Hopfield网络。这里介绍BP(Back Propagation)神经网络,即误差反向传播算法。 原理: BP(Back Propagation)网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer),其中隐层可以是一层也可以是多层。 图:三层神经网络结构图(一个隐层) 任何从输入到输出的连续映射函数都可以用一个三层的非线性网络实现 BP算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。 单个神经元的计算: 设分别代表来自神经元的输入;则分别表示神经元与下一层第个神经元的连接强度,即权值;为阈值;为传递函数;为第个神经元的输出。若记,于是节点j的净输入可表示为:;净输入通过激活函数后,便得到第个神经元的输出: 激活函数: 激活函数是单调上升可微函数,除输出层激活函数外,其他层激活函数必须是有界函数,必有一最大值。 BP网络常用的激活函数有多种。 Log-sigmoid型:, tan-sigmod型:, 线性激活函数purelin函数:,输入与输出值可取任意值。 BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元可以采用线性传递函数,也可用S形函数。 正向传播: 设 BP网络的输入层有个节点,隐层有个节点,输出层有个节点,输入层与隐层之间的权值为(为的矩阵),隐层与输出层之间的权值为(为的矩阵),隐层的传递函数为,输出层的传递函数为,则隐层节点的输出为(将阈值写入求和项中):;输出层节点的输出为:由此,BP网络就完成了维空间向量对维空间的近似映射。 def update(self, inputs):#更新ai[],ah[],a0[]中的元素,所以输入的元素个数必须跟输入层一样,将三层先填满数据 if len(inputs) != self.ni-1: raise ValueError(wrong number of inputs) for i in range(self.ni-1):#将数据导入初始层 self.ai[i] = inputs[i] for j in range(self.nh1):#将输入层的数据传递到隐层 sum = 0.0 for i in range(self.ni): sum = sum + self.ai[i] * self.wi[i][j] self.ah[j] = sigmoid(sum)#调用激活函数 for k in range(self.no): sum = 0.0 for j in range(self.nh2): sum = sum + self.ah[j] * self.wo[j][k] self.ao[k] = purelin(sum) return self.ao[:]#返回输出层的值 反向传播: 误差反向传播的过程实际上就是权值学习的过程。网络权值根据不同的训练模式进行更新。常用的有在线模式和批处理模式。在线模式中的训练样本是逐个处理的,而批处理模式的所有训练样本是成批处理的。 输入个学习样本,用来表示,第个样本输入到网络后计算得到输出,。采用平方型误差函数,于是得到第p个样本的误差:??式中:为期望输出。 输出层权值的调整: 用梯度下降法调整,使误差变小。梯度下降法原理即是沿着梯度下降方向目标函数变化最快,梯度为,其中误差信号,权值的改变量为负梯度方向,为学习率 output_deltas = [0.0] * self.no for k in range(self.no): error2 = targets[k]-self.ao[k]#输出值与真实值之间的误差

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档