目录
背景
目标
核心方法
前向传播
反向传播
结论
深度学习框架如Tensorflow Pytorch 等最重要的功能之一即自动对网络模型进行了前向传播和反向梯度传播计算,从而对应用开发人员屏蔽了底层算法实现的细节,很容易进行网络模型的training、evalution、testing 最终构建符合AI应用场景需求的网络模型及其参数,本文旨在用通俗易懂的方式解释前向传播(Forward Pass)和反向传播(Backward Pass)的过程
如上图所示,所谓深度学习的训练过程,它的目标就是让”损失函数尽快的收敛到阈值“,而在这是一个通过SGD算法持续更新整个网络的参数,让损失函数持续减小的迭代过程
深度学习框架实现了自动化更新网络参数,从而让训练过程对应用开发人员透明,这里核心要解决问题即求出损失函数loss对网络中各个参数w b c 的偏导数,即可以获得网络参数更新的增量,而理解该过程需要的数学常识即链式求导规则
如上图构建的神经网络
求解 的过程可以转换为求解红框的部分
求解loss对w的偏导数在网络的前向过程中可以先计算出其中的一部分 (上图中的蓝框)
· 求解的过程可以推迟到计算 与
同样求解和的过程可以延迟到下一层网络
依次类推,递归到最后一层,即可以计算出所有的结果
如上图所示,一个可见的网络模型,还有一个隐含的反向传播网络在计算loss对z的偏导数
如上图所示, 前向和反向传播各自计算了Loss对w偏导数的一部分 ,当完成一次完整的前向和反向传播计算后,就可以计算出目标
如上图所示,深度学习网络的training过程,就是一个反复执行前向和反向传播过程,更新网络参数,减少loss的过程,整个动态的过程可以用下面的动画表达
<iframe allowfullscreen="true" data-mediaembed="csdn" id="ks8g0ht5-1626589065009" src="https://live.csdn.net/v/embed/166643"></iframe>正方向传播训练过程动画示意