Backpropagation 反向传播算法,顾名意思,是指从输出结果开始反向更新神经网络参数的一个过程,这正好和Forward Propagation方向相反。
Backpropagation
简单来说,反向传播就是从Loss Function开始,反过来更新每层神经网络参数的算法,画个图描述一下:
你现在知道什么是Backpropagation啦,但如果你要更深入理解的话,你需要理解:什么是Gradient Descent,也就是我们用来更新参数的算法(包含更完整公式及概念的内容可以看这篇文章:一文弄懂神经网络中的反向传播法--BackPropagation - Charlotte77 - 博客园)。
如果你要手撸梯度下降的反向传播,你还需要明白如何应用链式法则(Chain Rule),这个我在文末放了一个香港的Chain Rule讲解。(需要更具体一些的话,可以看一下这篇文章:忆臻:如何直观地解释 backpropagation 算法?)
Backpropagation 视频讲解
这里附上一个很有趣的Backpropagation讲解,有空也可以跟着写一下其中的Python实现。另外,3Blue1Brown这个channel的讲解也很有趣,Bilibili有中文的翻译。
Backpropagationhttps://www.zhihu.com/video/1055595675957469184PS:对大部分的学习者,尤其是课后自学的人来说,先明白概念的本质,明白东西是干嘛的,再来深度学习每一部分,会学得更有意思一些。
参考资料:
[1]Backpropagation | 3blue1brown
[2]忆臻:如何直观地解释 backpropagation 算法?
[3]Mutli-Layer Perceptron - Back Propagation
我在这里放一个关于Chain Rule的视频,讲得挺有趣,但是是用粤语讲的,不会粤语的朋友可以跳过这个啦。
Chain Rulehttps://www.zhihu.com/video/1055595758216101888