以下内容和图片均来自台湾大学深度学习课程。
课程地址:https://www.csie.ntu.edu.tw/~yvchen/f106-adl/syllabus.html
上节课程 lecture1-2 Neural Network Basics 讲了神经网络的结构以及正向传播的方法公式,最后也快速讲了一下使用梯度下降的方法进行优化,并且比较了GD、SGD、Mini-Batch三种方法。
本节课程深入讲解反向传播的具体方法。
首先比较了 正向传播 与 反向传播。
正向就是从输入到输出的正向传递过程,而反向使用就是梯度下降对代价函数进行输出到输入反向传递,从而找出最佳参数的过程。
这里用到了复合函数的求导法则。
正向传递是从
将上面的求导公式应用在
上面分成两个部分,首先看后面的
第二部分
前面部分
后面部分
到这里第L层的结果已经完成,用矩阵形式表示如下、
但是上面说的只是第L层,反向传播还需要向前继续找出计算前面隐藏层的方法。
像上面一样拆分求导公式,得到下面结果,其中
再把最后的结果用矩阵形式表示出来,就得到下面的公式。
上面一系列公式看着很复杂,结合老师的视频仔细思考,一步一步都搞明白之后就发现其实不难。
综上所述,反向传播其实就是,首先计算最后一层的
至此,神经网络的基础,正相反相传播已经全部讲完了。将正向反向传播总结下来就是,下一步计算都是建立在上一步计算的结果基础上,每一步的计算结果都要代入到下次计算公式中去,所以只要搞清楚一步的原理,其余步骤只是在重复之前步骤而已。