1、反向传播前述:
我们知道正向传播就是把x拿下来一层层的和w乘,然后经过function非线性变化,最后得到一个y输出结果。反向传播(reverse-mode autodiff)就是反过来,从最后的y到x,反向的自动求导。前向传播是make predictions,去预测ŷ,然后计算出误差,再计算出每个神经节点对误差的贡献。这里的求贡献就是反向传播过程,首先根据前向传播的误差来求梯度,梯度越大贡献越大。然后根据梯度调整原来的权重。总结下来反向传播就是求导、求梯度,然后根据梯度在迭代里面调整w的一个过程。
反向自动求导是tensorflow实现的方案,首先,它执行图的前向阶段,从输入到输出,去计算节点值;然后反向阶段,从输出到输入去计算所有变量的偏导。
什么是偏导数:在数学中,一个多变量的函数的偏导数,就是它关于其中一个变量的导数而保持其他变量恒定(相对于全导数,在其中所有变量都允许变化)。偏导数在向量分析和微分几何中是很有用的。
说白了就是假如f对x求偏导:∂f*∂x。就是把除x以外的自变量当成常数,然后再进行正常的求导即可。
2、第一个案例解说反向传播:比如
这个计算逻辑,即这个算法。可以用如图来表达正向传播和反向传播逻辑。图中红色虚线表示正向传播,黑色实线是反向传播。