训练参数 - Amazon Machine Learning

我们不再更新 Amazon Machine Learning 服务,也不再接受新用户使用该服务。本文档可供现有用户使用,但我们不会再对其进行更新。有关更多信息,请参阅什么是 Amazon Machine Learning

训练参数

Amazon ML 学习算法接受称为超级参数或训练参数的参数,使您可以控制生成模型的质量。Amazon ML 为各超级参数自动选择设置或提供静态默认值,具体做法取决于是哪个超级参数。尽管默认超级参数设置通常会生成有用的模型,但是您可以通过更改超级参数值来改进模型的预测性能。以下部分介绍与线性模型的学习算法关联的常见超级参数,例如由 Amazon ML 创建的线性模型。

学习速率

学习速率是在随机梯度下降 (SGD) 算法中使用的常量值。学习速率影响算法达到(收敛到)最佳权重的速度。SGD 算法对所看到的每个数据示例的线性模型的权重进行更新。这些更新的大小由学习速率控制。太大的学习速率可能会妨碍权重达到最佳解决方案。太小的值会导致算法需要多次扫描才能达到最佳权重。

在 Amazon ML 中,学习速率是根据您的数据自动选择的。

模型大小

如果您有许多输入特征,数据中的可能模式的数量会导致大型模型。大型模型具有实际影响,例如在训练和生成预测时需要更多的 RAM 来存储模型。在 Amazon ML 中,您可以通过使用 L1 正则化来减小模型的大小,或者通过指定最大大小来专门限制模型大小。请注意,如果您将模型大小减小太多,可能会降低模型的预测能力。

有关默认模型大小的更多信息,请参阅训练参数:类型和默认值。有关正则化的更多信息,请参阅正则化

扫描次数

SGD 算法连续扫描训练数据。Number of passes 参数控制算法扫描训练数据的次数。扫描次数较多会得到数据拟合更好的模型(如果学习速率不是太大),但随着扫描次数的增加,好处将减少。对于较小的数据集,您可以大幅提高扫描次数,这使得学习算法可以有效地更加紧密地拟合数据。对于特大型数据集,一次扫描可能已足够。

有关默认扫描次数的信息,请参阅训练参数:类型和默认值

数据随机排序

在 Amazon ML 中,您必须对数据随机排序,因为 SGD 算法受训练数据中行的顺序影响。将训练数据随机排序会得到更好的 ML 模型,因为它有助于避免 SGD 算法针对它看到的第一类数据优化解决方案,而不是针对完整范围的数据进行优化。随机排序会打乱数据的顺序,这样 SGD 算法就不会在太多连续观察中遇到同一种类型的数据。如果它在许多连续权重更新中只看到一种类型的数据,该算法可能无法更正新数据类型的模型权重,因为更新可能太大。此外,当数据不是随机提供时,算法很难快速找到针对所有数据类型的最佳解决方案,在一些情况下,算法可能永远找不到最佳解决方案。将训练数据随机排序有助于算法在最佳解决方案上更快地收敛。

例如,假如您要训练 ML 模型以预测产品类型,而您的训练数据包括电影、玩具和视频游戏产品类型。如果您在将数据上传到 Amazon S3 前将按产品类型列对数据进行排序,则算法会看到按产品类型字母顺序排列的数据。该算法将先查看所有电影数据,然后您的 ML 模型开始学习电影的模式。随后在模型遇到玩具数据时,该算法的每个更新都会向玩具产品类型拟合模型,即使这些更新会让拟合电影的模式降级也是如此。这种从电影到玩具类型的突然转变,可能会生成不了解如何准确预测产品类型的模型。

有关默认随机排序类型的信息,请参阅训练参数:类型和默认值

正则化

正则化通过惩罚极端权重值来帮助防止线性模型过度拟合训练数据示例(即记住模式而不是归纳模式)。L1 正则化具有减少模型中使用的特征数量的效果,其方法是将具有很小权重的特征的权重推向零。因此,L1 正则化会生成稀疏模型并降低模型中的噪音量。L2 正则化会生成较小的总体权重值,可在输入特征的相关性高的情况下稳定权重。您可以使用 Regularization typeRegularization amount 参数控制应用的 L1 或 L2 正则化的量。极大的正则化值会导致所有特征具有零权重,阻止模型学习模式。

有关默认正则化值的信息,请参阅 训练参数:类型和默认值