这次我们来说一说DNN的反向传播过程。
首先,我们要明白一点,反向传播的目的是什么?前向传播是为了计算出最后结果,将输入的变量进行一层一层的进行计算,直至最后的输出层。前向传播是为了得出最后结果,而后向传播是为了能够让前向传播得到正确的结果。
反向传播就是神经网络的训练过程,也就是利用梯度下降调整参数,得到正确结果的过程。所以说,研究反向传播的时候,得先弄明白前向传播的过程和具体计算过程。
这里有一个3层DNN神经网络,每层只有一个神经元,第一层为输入层,第二层为隐藏层,第三层为输出层。反向传播过程如下:
好了,每层单个神经元的情况明了了,那么,每层多个神经元的情况又如何呢,如下图:
大体来说,就是前向传播是怎么传过去的,反向传播时就要怎么回去,通过链式法则,一步一步逐层传递。