正向传播与反向传播(forward-propagation & back-propagation)

正向传播(forward-propagation):指对神经网络沿着输入层到输出层的顺序,依次计算并存储模型的中间变量

反向传播(back-propagation):沿着从输出层到输入层的顺序,依据链式法则,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度

反向传播是一种计算神经网络参数梯度的方法

对于输入或输出X,Y,Z为任意形状张量的函数 Y=f(x) 和 Z=g(Y) 通过链式法则,则有:

                                                                        \frac{\partial Z}{\partial X} = prod(\frac{\partial Z}{\partial Y},\frac{\partial Y}{\partial X})

prod的意思是在必要的操作后,对两个输入做乘法。

在深层的网络里面,我们一般是先对最后面一层进行求导操作,然后往前一层做求导操作,再往前,直到最后一层的求导操作;最后把每一层的求导操作得出来的数相乘就好了。还有不要忘了反向传播的目的是求某个参数的梯度!!!


在训练深度学习模型时,正向传播和反向传播相互依赖。

一方面,正向传播的计算可能依赖于模型参数的当前值,而这些模型参数是在反向传播梯度计算后通过优化算法迭代的。

另一方面,反向传播的梯度计算可能依赖于各变量的当前值,而这些变量的当前值是通过正向传播计算得到的。

因此,在参数初始化完成后,我们交替进行正向传播和方向传播。

 

反向传播原理很简单,其实就是链式法则,但是真正做起来的时候还是蛮容易绕晕的.

你可能感兴趣的:(深度学习-李牧,学习笔记,正向传播,反向传播)