线性学习器算法 - Amazon SageMaker

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

线性学习器算法

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

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

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

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

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

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

如果您在使用托管竞价型训练,线性学习器算法支持使用检查点来获取模型状态的快照

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

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_labelpredicted_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,线性学习器算法支持 P2、P3、G4dn 和 G5 GPU 系列。

在测试过程中,我们没有发现实质性证据表明多 GPU 实例比单 GPU 实例更快。结果可能会有所不同,具体取决于您的使用案例。

线性学习器示例笔记本

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

笔记本标题 描述

MNIST 数据集简介

使用 MNIST 数据集,我们训练二元分类器来预测一位数字。

如何构建多元分类器?

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

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

我们使用 Scikit-Learn 容器演示如何构建机器学习管道。 end-to-end

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