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

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

线性学习器的工作原理

在线性学习器算法实施中涉及三个步骤:预处理、训练和验证。步骤 4 提供了演示如何部署经过训练的模型的示例代码。

步骤 1:预处理

标准化(或称为特征缩放)是特定损失函数的重要预处理步骤,可以确保在数据集上进行训练的模型不会由单个特征的权重所主导。Amazon SageMaker 线性学习器算法提供了一个标准化选项,用于协助此预处理步骤。如果已启用标准化,则该算法首先处理数据的一个小样本,用于了解各个特征以及标签的平均值和标准偏差。然后,完整数据集中的各个特征转换为具有平均值零并进行缩放以获得单位标准偏差。

注意

为了获得最佳结果,请确保在训练之前对您的数据进行随机排布。采用未随机排布的数据进行训练可能会导致训练失败。

您可以配置线性学习器算法是否分别使用 normalize_datanormalize_label 超参数来标准化特征数据和标签。默认情况下为特征和标签启用了标准化以进行回归。只有特征可以针对二进制分类进行标准化,这是默认行为。

步骤 2:训练

使用线性学习器算法,您可以使用随机梯度下降 (SGD) 的分布式实现进行训练。您可以通过选择优化算法来控制优化过程。例如,您可以选择使用 Adam、AdaGrad、随机梯度下降或其他优化算法。您还可以指定其超参数,例如动量、学习率和学习率计划。如果您不确定要使用哪个算法或超参数值,请选择适用于大多数数据集的默认值。

在训练期间,您可以同时优化多个模型,每个模型的目标略有不同。例如,您可以改变 L1 或 L2 正则化并尝试不同的优化程序设置。

步骤 3:验证并设置阈值

并行训练多个模型时,在训练完成后针对验证集来评估模型,以便选择最优的模型。对于回归,最优模型是在验证集上实现最佳损失的模型。对于分类,使用验证集的样本来校准分类阈值。所选最优模型是在验证集上实现了最佳二进制分类选择条件的模型。此类条件的示例包括 F1 度量、准确率和交叉熵损失。

注意

如果算法未提供验证集,则无法评估和选择最优模型。要利用并行训练和模型选择,请确保您向算法提供了验证集。

步骤 4:部署经过训练的线性模型

以下是 Python 代码的示例,您可以使用该代码在 MXNet 中部署已通过 SageMaker 线性学习器训练的模型

import mxnet as mx import tarfile t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() # Load the mxnet module from the model files mod = mx.module.Module.load('mx-mod', 0) # model's weights mod._arg_params['fc0_weight'].asnumpy().flatten() # model bias mod._arg_params['fc0_bias'].asnumpy().flatten() mod.bind(data_shapes=data_iter.provide_data) #data_iter is an iterator configured with your test data #perform inference result = mod.predict(data_iter)