训练神经网络

反向传播算法是最常见的神经网络训练算法。它使梯度下降法在多层神经网络中成为可行。 TensorFlow 会自动处理反向传播算法,因此您无需深入了解算法。如需了解其工作原理,请参阅以下文章:反向传播算法的直观说明。在滚动浏览上述说明时,请注意以下几点:

  • 数据如何流经图表。
  • 我们如何借助动态编程避免计算图中数量达指数级别的路径。这里的“动态规划”只表示记录正向和反向传递的中间结果。

训练神经网络

  • 渐变很重要
    • 如果它是可微的,我们或许可以通过它来学习
  • 渐变很重要
    • 如果它是可微的,我们或许可以通过它来学习
  • 梯度可能会消失
    • 每增加一个层都会依次降低信噪比
    • ReLu 在这里很有用
  • 渐变很重要
    • 如果它是可微的,我们或许可以通过它来学习
  • 梯度可能会消失
    • 每增加一个层都会依次降低信噪比
    • ReLu 在这里很有用
  • 梯度可能会爆炸
    • 学习速率在这里非常重要
    • 批量归一化(实用按钮)有助于
  • 渐变很重要
    • 如果它是可微的,我们或许可以通过它来学习
  • 梯度可能会消失
    • 每增加一个层都会依次降低信噪比
    • ReLu 在这里很有用
  • 梯度可能会爆炸
    • 学习速率在这里非常重要
    • 批量归一化(实用按钮)有助于
  • ReLu 层可能会消失
    • 保持冷静,降低学习速率
  • 我们希望特征具有合理的范围
    • 大致以零为中心,[-1, 1] 范围通常效果较好
    • 帮助梯度下降法收敛;避免 NaN 陷阱
    • 避免离群值也会有帮助
  • 可以使用一些标准方法:
    • 线性缩放
    • 为最大值、最小值设定硬性上限(裁剪)
    • 对数扩缩
  • Dropout:另一种正则化形式,对神经网络很有用
  • 工作原理是,在单个梯度步长中随机“丢弃”网络中的单元
    • 此处存在与集成学习模型的关联
  • 丢弃得越多,正则化效果就越强
    • 0.0 = 无丢弃正则化
    • 1.0 = 丢弃所有内容!什么也学不了
    • 中间值更有用