线性学习器算法 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

线性学习器算法

线性模型 是用于求解分类或回归问题的指导式学习算法。对于输入,向模型提供带标记的示例 (x, y)。x 是一个高维度向量,y 是一个数字标签。对于二元分类问题,该标签必须是 0 或 1。对于多类别分类问题,标签必须在 0 到 num_classes - 1 之间。对于回归问题,y 是一个实数。该算法学习线性函数或线性阈值函数(对于分类问题)进行分类,并将向量 x 映射到标签 y 的近似值。

Amazon SageMaker 线性学习器算法为分类和回归问题提供了一种解决方案。通过使用 SageMaker 算法,您可以同时探索不同的训练目标,并从验证集中选择最佳解决方案。您还可以探索大量模型并选择最佳模型。最佳模型优化以下任一项:

  • 连续目标,如均方根误差、交叉熵损失、绝对误差。

  • 适合分类的离散目标,例如 F1 度量、查准率、查全率或准确率。

与仅为连续目标提供解决方案的方法相比,SageMaker 线性学习器算法提供了显著高于原始超参数优化技术的速度提升。它也更为方便。

线性学习器算法需要一个数据矩阵,其中行表示观察,列表示特征的维度。它还需要一个包含与数据点匹配的标签的附加列。至少,Amazon SageMaker 线性学习器要求您指定输入和输出数据位置,以及目标类型 (分类或回归) 作为参数。特征维度也是必需的。有关更多信息,请参阅 CreateTrainingJob。 您可以在请求正文的 HyperParameters 字符串映射中指定其他参数。这些参数控制优化过程,或您训练的目标函数的细节。例如,纪元数、正则化和损失类型。

如果您使用的是托管的 Spot 训练,线性学习器算法支持使用检查点拍摄模型状态快照

线性学习器算法的输入/输出接口

Amazon SageMaker 线性学习器算法支持三个数据通道:训练、验证(可选)和测试(可选)。如果您提供验证数据,则 S3DataDistributionType 应为 FullyReplicated。 该算法记录每个纪元的验证损失,并使用验证数据的样本来校准和选择最佳模型。如果您不提供验证数据,该算法会使用训练数据的样本来校准和选择该模型。如果您提供了测试数据,则算法日志会包含最终模型的测试分数。

对于训练,线性学习器算法支持 recordIO-wrapped protobufCSV 格式。对于 application/x-recordio-protobuf 输入类型,只支持 Float32 张量。对于 text/csv 输入类型,第一列假定为标签,即预测的目标变量。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobufCSV 的数据训练线性学习器模型。

对于推理,线性学习器算法支持 application/jsonapplication/x-recordio-protobuftext/csv 格式。在对新数据进行预测时,响应格式取决于模型类型。对于回归 (predictor_type='regressor'),score 是模型生成的预测。 对于分类predictor_type='binary_classifier'predictor_type='multiclass_classifier'),模型返回 score 以及 predicted_label。 是模型预测的类别,predicted_label 测量该预测的强度。score

  • 对于二元分类predicted_label01,而 score 是单个浮点数,表示算法认为标签应为 1 的强度。

  • 对于多类别分类predicted_class 是从 0num_classes-1 的整数,而 score 是一个浮点数列表,每个类别对应一个浮点数。

要解释分类问题中的 score,您必须考虑使用的损失函数。如果 loss 超参数值为 logistic(对于二元分类)或 softmax_loss(对于多类别分类),则可以将 score 解释为相应类别的概率。这些是在 loss 值为 auto 默认值时线性学习器使用的损失值。但如果将 loss 设置为 hinge_loss,则不能将 score 解释为概率。这是因为铰链损失对应于支持向量分类器,该分类器不会生成概率估计值。

有关输入和输出文件格式的更多信息,请参阅 线性学习器响应格式。有关推理格式的更多信息,请参阅 线性学习器示例笔记本

线性学习器算法的 EC2 实例建议

您可以在单机或多机 CPU 和 GPU 实例上训练线性学习器算法。在测试过程中,我们没有发现大量证据表明多 GPU 计算机比单 GPU 计算机更快。结果可能会有所不同,具体取决于您的使用案例。

线性学习器示例笔记本

下表概述了各种示例笔记本,以解决 Amazon SageMaker 线性学习器算法的不同使用案例。

笔记本标题 描述

包含 MNIST 数据集的简介

使用 MNIST 数据集,我们训练一个二进制分类器来预测单个数字。

Predict man 的运行状况变化

使用 UCI 的“Comera”数据集,我们可以训练一个模型来预测“Comera”。

如何构建多类别分类器?

通过使用 UCI 的 Covertype 数据集,我们将演示如何训练多类别分类器。

如何为推理构建机器学习 (ML) 管道?

通过使用 Scikit-learn 容器,我们将演示如何构建端到端 ML 管道。

有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例。创建笔记本实例并打开该实例后,选择 SageMaker Examples (CloudWatch 示例) 选项卡以查看所有 SageMaker 示例的列表。使用线性学习算法的主题建模示例笔记本位于 Amazon 算法简介部分中。要打开笔记本,请选择其 Use (使用) 选项卡,然后选择 Create copy (创建副本)