超参数是变量 可以控制训练的不同方面。三个常见的超参数包括:
相比之下,参数则是 作为模型本身一部分的变量,例如权重和偏差。在 换言之,超参数是您可以控制的值;参数是值 模型在训练期间计算的值。
学习速率
学习速率为 您设置的浮点数,它会影响 收敛。如果学习速率过低,模型可能需要很长时间 进行收敛。但是,如果学习速率过高, 会收敛,但会围绕权重和偏差弹跳,从而最大限度减少 损失。我们的目标是选择合适的学习速率 能够快速收敛。
学习速率决定了权重变化的幅度 和偏差。模型会相乘, 根据学习速率确定梯度,以确定模型的参数(权重 和偏差值)进行下一次迭代。在梯度的第三步中, 下降、“少量”朝着这个方向前进 负斜率表示学习速率。
旧模型参数与新模型参数之间的区别如下: 与损失函数的斜率成正比。例如,如果斜率为 那么模型会走一大步。如果较小,则需执行一小步。对于 假设梯度的幅度为 2.5,学习速率为 0.01,那么 模型会将该参数更改 0.025。
理想的学习速率有助于模型在合理的数量内收敛 迭代。在图 21 中,损失曲线显示该模型 在开始收敛之前的前 20 次迭代中有所改进:
图 21. 损失图,显示使用学习速率训练的模型, 会快速收敛。
相比之下,如果学习速率过小,可能需要进行太多迭代, 收敛。在图 22 中,损失曲线显示该模型仅产生少量 每次迭代后改进的方面:
图 22. 显示使用小学习速率训练的模型的损失图。
过大的学习速率永远不会收敛,因为每次迭代 导致损失反弹或不断增加。在图 23 中, 曲线显示,模型在每次迭代后损失逐渐减小,然后逐渐增大, 在图 24 中,损失在之后的迭代中有所增加:
图 23. 损失图,显示使用 损失曲线会急剧变化, 迭代次数增加。
图 24. 损失图,显示使用 损失曲线在以后的迭代中急剧增加。
练习:检查您的理解情况
批次大小
批量大小是一个超参数, 指的是模型在更新权重之前处理的样本数 和偏差。您可能认为,模型应该计算每个 样本,然后再更新权重和偏差。但是,当 数据集包含数十万甚至数百万个样本, 全批量并不现实。
两种常用方法,无需 先查看数据集中的每个样本,然后再更新权重和偏差, 随机梯度下降法 和小批次随机梯度 descent:
随机梯度下降法 (SGD):仅使用随机梯度下降法 每次迭代一个样本(批量大小为一)。已足够 SGD 可以正常工作,但非常嘈杂。“噪音”指的是 在训练期间,损失增加而非减少。 迭代。术语“随机”表示包含 都是随机选择的。
请注意,在下图中,损失随着模型的变化而略有波动 使用 SGD 更新权重和偏差,这可能会导致损失中出现噪声 图表:
图 25. 使用随机梯度下降法 (SGD) 训练的模型显示 噪声。
请注意,使用随机梯度下降法可能会产生噪声, 而不只是接近收敛。
小批次随机梯度下降法(小批次 SGD):小批次 随机梯度下降法是全批量和 SGD 之间的折衷方案。对于 $ N $ 数据点,批量大小可以是大于 1 的任意数字 且不到 N 美元。模型选择每个批次中包含的样本 计算其梯度的平均值,然后更新权重和偏差 每次迭代一次。
确定每批样本的数量取决于数据集和 可用的计算资源一般来说,小批次大小的行为 SGD 和较大的批量大小类似于全批量梯度下降法。
图 26. 使用小批量 SGD 训练模型。
在训练模型时,您可能会认为噪声 其他特征。不过,一定程度的噪声 是件好事。在后续单元中,您将了解噪声如何帮助模型 更好地泛化,并找到 最优权重和偏差, 网络。
周期
在训练期间,一个周期表示 模型已处理训练集中的每个样本一次。例如,假设 一个包含 1,000 个样本和 100 个样本的小批次大小的训练集, 将对模型进行 10 次迭代, 完成一个周期。
训练通常需要多个周期。也就是说,系统需要 对训练集中的每个样本进行多次迭代。
周期数是您在模型开始之前设置的超参数 训练。在许多情况下,您需要尝试用多少次周期 使模型收敛。一般来说,周期越多产生更好的模型,但 也可能需要更多的训练时间。
图 27. 全批量与小批量。
下表说明了批次大小和周期与数量 模型更新其参数的次数。
批次类型 | 何时发生权重和偏差更新 |
---|---|
全批次 | 模型查看数据集中的所有样本之后。例如, 如果数据集包含 1,000 个样本,且模型训练了 20 个周期, 模型会更新权重和偏差 20 次,每个周期一次。 |
随机梯度下降法 | 模型查看数据集中的单个样本之后。 例如,如果数据集包含 1,000 个样本, 20 个周期,模型就会更新权重和偏差 20,000 次。 |
小批量随机梯度下降法 | 模型查看每个批次中的样本之后。例如, 如果数据集包含 1,000 个样本,批次大小为 100,以及 模型训练 20 个周期后,模型会更新权重, 偏差达到 200 倍。 |