神经网络介绍资料.doc
《神经网络介绍资料.doc》由会员分享,可在线阅读,更多相关《神经网络介绍资料.doc(9页珍藏版)》请在三一办公上搜索。
1、神经网络简介神经网络简介:人工神经网络是以工程技术手段来模拟人脑神经元网络的结构和特征的系统。利用人工神经网络可以构成各种不同拓扑结构的神经网络,他是生物神经网络的一种模拟和近似。神经网络的主要连接形式主要有前馈型和反馈型神经网络。常用的前馈型有感知器神经网络、BP神经网络,常用的反馈型有Hopfield网络。这里介绍BP(Back Propagation)神经网络,即误差反向传播算法。原理:BP(Back Propagation)网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输
2、出层(output layer),其中隐层可以是一层也可以是多层。图:三层神经网络结构图(一个隐层)任何从输入到输出的连续映射函数都可以用一个三层的非线性网络实现BP算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层隐层输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。单个神经元的计算:设分别代表来自神经元的输入;则分别表示神经元与下一层第个神经元的连接强度
3、,即权值;为阈值;为传递函数;为第个神经元的输出。若记,于是节点j的净输入可表示为:;净输入通过激活函数后,便得到第个神经元的输出:激活函数:激活函数是单调上升可微函数,除输出层激活函数外,其他层激活函数必须是有界函数,必有一最大值。BP网络常用的激活函数有多种。Log-sigmoid型:,tan-sigmod型:,线性激活函数purelin函数:,输入与输出值可取任意值。BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元可以采用线性传递函数,也可用S形函数。正向传播:设 BP网络的输入层有个节点,隐层有个节点,输出层有个节点,输入层与隐层之间的权值为(
4、为的矩阵),隐层与输出层之间的权值为(为的矩阵),隐层的传递函数为,输出层的传递函数为,则隐层节点的输出为(将阈值写入求和项中):;输出层节点的输出为:由此,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.aii = inputsi for j
5、 in range(self.nh1):#将输入层的数据传递到隐层 sum = 0.0 for i in range(self.ni): sum = sum + self.aii * self.wiij self.ahj = sigmoid(sum)#调用激活函数 for k in range(self.no): sum = 0.0 for j in range(self.nh2): sum = sum + self.ahj * self.wojk self.aok = purelin(sum) return self.ao:#返回输出层的值反向传播:误差反向传播的过程实际上就是权值学习的过程
6、。网络权值根据不同的训练模式进行更新。常用的有在线模式和批处理模式。在线模式中的训练样本是逐个处理的,而批处理模式的所有训练样本是成批处理的。输入个学习样本,用来表示,第个样本输入到网络后计算得到输出,。采用平方型误差函数,于是得到第p个样本的误差:式中:为期望输出。输出层权值的调整:用梯度下降法调整,使误差变小。梯度下降法原理即是沿着梯度下降方向目标函数变化最快,梯度为,其中误差信号,权值的改变量为负梯度方向,为学习率output_deltas = 0.0 * self.nofor k in range(self.no): error2 = targetsk-self.aok#输出值与真实值
7、之间的误差 output_deltask = dpurelin(self.aok) * error2#输出层的局部梯度,导数乘以误差,不在隐层就这么定义for j in range(self.nh2):#更新隐层与输出层之间的权重 for k in range(self.no): change = output_deltask*self.ahj#权值的校正值w的改变量(若没有冲量,且学习率为1的时候) self.wojk = self.wojk + N*change + M*self.cojk self.cojk = change #print N*change, M*self.cojk隐层权
8、值的调整:梯度为,其中误差信号,从而得到隐层各神经元的权值调整公式为:hidden_deltas = 0.0 * self.nh2#隐层的局部梯度for j in range(self.nh2): error1 = 0.0 for k in range(self.no): error1 = error1 + output_deltask*self.wojk hidden_deltasj = dsigmoid(self.ahj) * error1#隐层的梯度定义:不在隐层的梯度与权重的积再求和,然后与导数的乘积for i in range(self.ni):#更新输入层与隐层之间的权重 for
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 神经网络 介绍 资料
链接地址:https://www.31ppt.com/p-4268096.html