反馈神经网络算法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了反馈神经网络算法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3437字,纯文字阅读大概需要5分钟。
内容图文
![反馈神经网络算法](/upload/InfoBanner/zyjiaocheng/843/05814dd17ae64bfd990cd434a7efbf46.jpg)
典型的卷积神经网络,开始阶段都是卷积层以及池化层的相互交替使用,之后采用全连接层将卷积和池化后的结果特征全部提取进行概率计算处理。
在具体的误差反馈和权重更新的处理上,不论是全连接层的更新还是卷积层的更新,使用的都是经典的反馈神经网络算法,这种方法较原本较为复杂的、要考虑长期的链式法则转化为只需要考虑前后节点输入和输出误差对权重的影响,使得当神经网络深度加大时能够利用计算机计算,以及卷积核在计算过程中产生非常多的数据计算。
反馈神经网络正向与反向传播公式推导
经典反馈神经网络主要包括3个部分,数据的前向计算、误差的反向传播以及权值的更新。如下图所示。
可以看到每个层l(假设是卷积或者池化层的一种)都会接一个下采样层l+1。对于反馈神经网络来说,要想求得层l的每个神经元对应的权值更新,就需要先求层l的每一个神经元点的灵敏度。简单来说,总体有以下几个权重以及数值需要在传递的过程中进行计算,即:
1.输入层-卷积层
2.卷积层-池化层
3.池化层-全连接层
4.全连接层-输出层
这是正向的计算,而当权值更新时,需要对其进行反向更新,即:
1.输出层-全连接层
2.全连接层-池化层
3.池化层-卷积层
4.卷积层-输出层
1.前向传播算法
对于前向传播的值传递,隐藏层输出值定义如下:
ahH1?=WhH1?×Xi?
bhH1? = f(ahH1?)
其中Xi?是当前输入节点的值,WhH1?是连接到此节点的权重,ahH1?是输出值。f是当前阶段的激活函数,bhH1?是当前节点的输入值经过计算后被激活的值。
对于输出层,定义如下:
ak? = ∑?Whk?×bhH1?
其中,Whk?为输入的权重,bhH1?为输入到输出节点的输入值。对所有输入值进行权重计算后求得和值,将其作为神经网络的最后输出值ak?。
2.反向传播算法
与前向传播类似,首先定义两个值δk?与δhH1?:
δk? = ?ak??L? = (Y - T)
δhH1? = ?ahH1??L?
其中,δk?为输出层的误差项,其计算值为真实值与模型计算值的差值。Y是计算值,T是输出真实值。δhH1?为输出层的误差。
神经网络反馈算法,就是逐层地将最终的误差进行分解,即每一层只与下一层打交道(如下图所示)。因此,可以假设每一层均为输出层的前一个层级,通过计算前一个层级与输出层的误差得到权重的更新。
因此反馈神经网络计算公式定义如下:
δhH1? = ?ahH1??L?
=?bhH1??L? × ?ahH1??bhH1??
=?bhH1??L? × f’(ahH1?)
=?ak??L? × ?bhH1??ak?? × f’(ahH1?)
=δk? × ∑?Whk? × f’(ahH1?)
=∑?Whk? × δk? × f’(ahH1?)
即当前层输出值对误差的梯度可以通过下一层的误差与权重和输出值的梯度乘积获得。在公式∑?Whk? × δk? × f’(ahH1?)中,δk?若为输出层,即可以通过δk? = ?ak??L? = (Y - T)求得;而δk?为非输出层时,可以使用逐层反馈方式求得δk?的值。
换一种形式将上面的公式表示为:
δl =∑?Wijl? × δjl+1? × f’(aij?)
通过更为泛化的公式把当前层的输出对输入的梯度计算转化成求下一个层级的梯度计算值。
3.权重的更新
反馈神经网络计算的目的是对权重进行更新。与梯度下降法类似,其更新可以仿照梯度下降对权值的更新公式:
θ = θ - α(f(θ) - yi?)xi?
即:
Wji?=Wji? + α×δjl?×xji?
bji?=bji? + α×δjl?
其中ji表示为反向传播时对应的节点系数,通过对δjl?的计算来更新对应的权重值。
内容总结
以上是互联网集市为您收集整理的反馈神经网络算法全部内容,希望文章能够帮你解决反馈神经网络算法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。