笔记-计算图

在神经网络算法中,数据总是在各个神经层中传播,其中,沿着输入层到输出层方向的传播称为前向传播,沿着输出层到输入层方向的传播称为反向传播。那么我们应该如何理解传播呢?传播在神经网络中又是如何起作用的呢?下面我们通过一个例子来解释。

对于一个三元函数J(a,b,c)=3(a+bc),我们的计算过程可以分为以下三步:

1.u=bc

2.v=a+u

3.J=3v

表示成计算图就是:

以上计算过程我们称为前向传播,也就是数据传播方向是从左到右的过程。

那么反向传播便是数据从右到左的过程,一般是对函数进行求导。在微积分中有一个链式法则,简单来说,便是导数\frac{\partial J}{\partial a}=\frac{\partial J}{\partial v}\cdot \frac{\partial v}{\partial a}

也就是计算\frac{\partial J}{\partial a}可以分为三步:

1.计算\frac{\partial J}{\partial v}

2.计算\frac{\partial v}{\partial a}

3.计算\frac{\partial J}{\partial a}=\frac{\partial J}{\partial v}\cdot \frac{\partial v}{\partial a}

表示成计算图就是(图中红色线条指示的部分):

这个从右到左的过程便是反向传播,它是计算机实现梯度下降法的具体编程方法。

发布了24 篇原创文章 · 获赞 88 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/SoHardToNamed/article/details/88698517