训练神经网络 (Training Neural Networks)

反向传播算法是最常见的一种神经网络训练算法。借助这种算法,梯度下降法在多层神经网络中将成为可行方法。TensorFlow 可自动处理反向传播算法,因此您不需要对该算法作深入研究。要了解它的工作原理,请参阅下面的反向传播算法的直观说明。滚动浏览开头的说明时,请注意以下几点:

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

训练神经网络

  • 梯度很重要
    • 如果它是可微的,则我们也许能够对其进行学习
  • 梯度很重要
    • 如果它是可微的,则我们也许能够对其进行学习
  • 梯度可能会消失
    • 每个额外的层都会依次降低信噪比
    • ReLu 在这里很有用
  • 梯度很重要
    • 如果它是可微的,则我们也许能够对其进行学习
  • 梯度可能会消失
    • 每个额外的层都会依次降低信噪比
    • ReLu 在这里很有用
  • 梯度可能会爆炸
    • 学习速率在这里很重要
    • 批标准化(实用按钮)可以提供帮助
  • 梯度很重要
    • 如果它是可微的,则我们也许能够对其进行学习
  • 梯度可能会消失
    • 每个额外的层都会依次降低信噪比
    • ReLu 在这里很有用
  • 梯度可能会爆炸
    • 学习速率在这里很重要
    • 批标准化(实用按钮)可以提供帮助
  • ReLu 层可能会消失
    • 保持冷静,并降低您的学习速率
  • 我们希望特征具有合理的范围
    • 大致以 0 为中心,[-1, 1] 的范围通常效果比较好
    • 有助于梯度下降法收敛;避免 NaN 陷阱
    • 避免离群值也会有帮助
  • 可以使用一些标准方法:
    • 线性缩放
    • 为最大值和最小值设定硬性上下限(截断)
    • 对数缩放
  • 丢弃:另一种正则化形式,对神经网络很有用
  • 工作原理是,在一个梯度步长中随机“丢弃”网络的单元
    • 有一个可用于集成学习此处的模型的连接
  • 丢弃得越多,正则化效果就越强
    • 0.0 = 无丢弃正则化
    • 1.0 = 丢弃所有内容!学不到任何规律
    • 中间值更有用