Why backpropagation
反向传播应用于深度学习的第二步,也就是不断调整参数使loss最小化的过程。
传统方法gradient descent是求loss的gradient,需要将loss对每一个参数求导得到一个很多维的向量。为了使更新参数更加高效,我们引入了反向传播的手段
What is backpropagation
我们先回顾一下微积分中的链式法则
我们定义的loss function其实就是每个样本算出来的y向量与实际值y hat 向量的交叉熵之和。因此我们实际要解决的问题就是把Cn对每一个w求偏导
我们假设C和w之间有一个中间变量z,也就是图中第一层的输出,那么由链式法则我们可以写成如图的式子。其中dz/dw1=x1,dz/dw2=x2;我们可以发现规律:对哪一个w求导,其实就等于这个w对应的输入值。
那么forward pass就是指:比如我们要求dC/dw1,就只需要一层一层链式分解,每一层的输入就是该层的dz/dw,输出就是下一层的输入,以此类推。。。