动手学深度学习-番外篇1

敖炜 Lv5

前向传播、反向传播和计算图

关于前向传播、反向传播和计算图,推荐另一本书《深度学习入门:基于Python的理论与实现》

前向传播

  1. 前向传播指的是:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果

前向传播计算图

  1. 绘制计算图有助于我们可视化计算中操作符和变量的依赖关系

反向传播

  1. 反向传播指的是计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络。该算法存储了计算某些参数梯度时所需的任何中间变量(偏导数)

训练神经网络

  1. 在训练神经网络时,前向传播和反向传播相互依赖。对于前向传播,我们沿着依赖的方向遍历计算图并计算其路径上的所有变量。然后将这些用于反向传播,其中计算顺序与计算图相反
  2. 在训练神经网络时,在初始化模型参数后,我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。
  3. 反向传播重复利用前向传播中存储的中间值,以避免重复计算。带来的影响之一是我们需要保留中间值,直到反向传播完成。这也是训练比单纯的预测需要更多的内存(显存)的原因之一
  4. 中间值的大小与网络层的数量和批量的大小大致成正比。因此,使用更大的批量来训练更深层次的网络更容易导致内存不足错误

小结

  1. 前向传播在神经网络定义的计算图中按顺序计算和存储中间变量,它的顺序是从输入层到输出层
  2. 反向传播按相反的顺序(从输出层到输入层)计算和存储神经网络的中间变量和参数的梯度
  3. 在训练深度学习模型时,前向传播和反向传播是相互依赖的
  4. 训练比预测需要更多内存
  • 标题: 动手学深度学习-番外篇1
  • 作者: 敖炜
  • 创建于 : 2023-08-16 09:24:24
  • 更新于 : 2024-04-19 09:29:24
  • 链接: https://ao-wei.github.io/2023/08/16/动手学深度学习-番外篇1/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
动手学深度学习-番外篇1