在神经网络算法中,数据总是在各个神经层中传播,其中,沿着输入层到输出层方向的传播称为前向传播,沿着输出层到输入层方向的传播称为反向传播。那么我们应该如何理解传播呢?传播在神经网络中又是如何起作用的呢?下面我们通过一个例子来解释。
对于一个三元函数,我们的计算过程可以分为以下三步:
1.
2.
3.
表示成计算图就是:
以上计算过程我们称为前向传播,也就是数据传播方向是从左到右的过程。
那么反向传播便是数据从右到左的过程,一般是对函数进行求导。在微积分中有一个链式法则,简单来说,便是导数。
也就是计算可以分为三步:
1.计算;
2.计算;
3.计算。
表示成计算图就是(图中红色线条指示的部分):
这个从右到左的过程便是反向传播,它是计算机实现梯度下降法的具体编程方法。