- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BP神经网络实现函数逼近python实现
机器学习作业一
算法描述
BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
数据描述
x)
算法参数
输出逼近的函数
实验流程
反向传播算法(Back Propagation)分二步进行,即正向传播和反向传播。这两个过程简述如下:
1.正向传播
输入的样本从输入层经过隐单元一层一层进行处理,传向输出层;在逐层处理的过程中。在输出层把当前输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。
2.反向传播
反向传播时,把误差信号按原来正向传播的通路反向传回,逐层修改连接权值,以望代价函数趋向最小。
输入层输入向量(n维):X=(x1,x2,…,xi,…,xn)T
隐层输出向量(隐层有m个结点):Y=(y1,y2,…,yj,…,ym)T
输出层输出向量(l维):O=(o1,o2,…,ok,…,ol)T
期望输出向量:d=(d1, d2,…,dk,…,dl)T
输入层到隐层之间的权值矩阵:V=(V1,V2,…,Vj,…,Vm)
隐层到输出层之间的权值矩阵用:W=(W1,W2,…,Wk,…,Wl)
对输出层第k个结点和隐含层的第j个结点有如下关系:
激活函数f(x)常用sigmoid函数(一个在生物学中常见的S型的函数,也称为S形生长曲线)或者tanh(双曲正切)函数。各种S型曲线函数如下图所示:下面以sigmoid函数进行推导。sigmoid函数定义为:
其导函数为:
定义对单个样本输出层所有神经元的误差总能量总和为:
将以上误差定义式展开至隐层:
权值调整思路为:
上面式子中负号表示梯度下降,常数η(0,1)表示权值调整步长(学习速度)。推导过程中,对输出层有j=0,1,2,…,m;? k=1,2,…,l;对隐层有 i=0,1,2,…,n;? j=1,2,…,m
对输出层和隐层,上面式子可写为:
对输出层和隐层,定义δ:
将以上结果代入δ的表达式,并根据sigmoid函数与其导函数的关系:f(x)=f(x)*[1-f(x)],可以计算出:
可以看出要计算隐层的δ,需要先从输出层开始计算,显然它是反向递推计算的公式。以此类推,对于多层神经网络,要先计算出最后一层(输出层)的δ,然后再递推计算前一层,直到输入层。根据上述结果,三层前馈网的BP学习算法权值调整计算公式为:
对所有输入样本(P为训练样本的个数),以总的平均误差能量作为经验损失函数(经验风险函数,代价函数)为:
实验结果
讨论
1 / 5
文档评论(0)