BP神经网络

【拓展】BP神经网络的正向传播和反向传播是什么

作者 : 老饼 发表日期 : 2022-09-04 22:30:10 更新日期 : 2024-04-20 21:40:14
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



提到BP神经网络,我们经常会听到正向传播(前馈)和反向传播(后馈)这两个名词

正向传播指的是BP神经网络的计算是前馈的,而反向传播则是指BP神经网络的梯度是后馈式计算的

通过本文可以具体地了解,什么是BP神经网络的正向传播,什么是反向传播






     01. BP神经网络的前馈    




本节解释什么是BP神经网络的前馈




     BP神经网络的前馈    


正向传播(前馈)是指BP神经网络的输出计算过程是前馈的,
即计算完一层,得到结果,再以该层的结果作为下层的输入,计算下一层
 
 用网络的输入计算第一层的输出,
把第一层的输出作为第二层的输入,计算第二层的输出
把第二层的输出作为第三层的输入,计算第三层的输出
....
直到最后一层的输出,就是网络的输出

一般说BP神经网络的前馈、向前传播等等,实际说的就是"BP神经网络输出的计算过程"
✍️什么是前馈网络
"前馈网络"是一种特殊的网络结构,它指的就是像BP神经网络这样,每层的输出就是下层的输入







     02. BP神经网络的后馈    




本节解释什么是BP神经网络的后馈




     什么是BP神经网络的后馈    


反向传播指的是BP神经网络计算参数的梯度时的计算方式
由于BP神经网络求解时所使用的是梯度下降算法(或其他算法),这些算法一般都需要利用误差函数对参数的梯度
因此,计算梯度是BP神经网络训练中重要的一部分,而反向传播式地计算梯度就是BP神经网络的特色,
BP神经网络之所以叫BP(Back Propagation Neural Network)神经网络,指的正是它计算梯度时这种后馈的特色




    BP神经网络是如何反向传播式计算梯度的    


如下,是一个K层的BP神经网络:
 
不妨以第k-1层到第k层的参数为例,分析它的梯度公式是什么
由于第k层节点是关于的函数,且后一层的节点总是前一层节点的函数
如此一来,可以看成是如下一个超级复合函数:

 

因此对于的梯度,根据复合函数的链式求导,则有:

 

看着头很晕,但粗略可以看出,它分为三块:
 
 1. 先由误差函数求出最后一层的节点梯度                               
2. 不断地求后一层节点对前一层的节点梯度,直到所要求的参数所在的节点
3. 最后求出节点对参数的梯度就可以                                  


可以看出,整个梯度的计算过程由误差函数开始,不断地后馈到前一层节点,最后传播到参数上
而这种后馈的特性,给求解梯度带来了非常大的便利性,它的计算过程如下:
先算出最后一层节点的梯度,再后馈式逐层传播到每一层的节点
每当算出某层节点的梯度时,就马上计算当层的参数,如此迭代就可以










 End 










联系老饼