内置算法简介

本页面提供使用内置算法进行训练的概览。借助 AI Platform Training 中的内置算法,您无需为训练应用编写任何代码即可使用您的数据运行训练作业。您可以提交训练数据、选择算法,以及让 AI Platform Training 为您处理预处理和训练作业。之后,您便可在 AI Platform Training 上轻松部署模型并获取预测结果。

使用内置算法进行训练的工作原理

AI Platform Training 会利用云端的计算资源运行您的训练作业。整个过程如下:

  1. 比较可用的内置算法,以确定它们是否适合您的特定数据集和使用场景。
  2. 为输入数据设置格式以便使用内置算法进行训练。您必须以 CSV 文件格式来提交数据并移除文件的标题行,且目标列必须设置为第一列。 请遵循您将使用的内置算法特有的任何其他格式设置要求(若适用)。
  3. 创建一个 Cloud Storage 存储桶以供 AI Platform Training 用来存储您的训练输出内容(如果您还没有这样的存储分区)。
  4. 选择用来自定义训练作业的选项。首先,选择用来配置整体训练作业的选项,然后进一步选择专门用来配置算法的选项。(可选)您还可以进行其他选择,以便为作业配置超参数调节。
    • 对于整个训练作业,请选择作业名称、要使用的内置算法、要使用的机器、将运行作业的区域,以及 AI Platform Training 要在其中存储训练输出内容的 Cloud Storage 存储桶。
    • 对于专用于算法的选项,您可以让 AI Platform Training 对您的数据集执行自动预处理。您还可以指定参数,例如学习速率、训练步骤和批量大小。
    • 对于超参数调节,您可以选择目标指标,例如最大程度地提高模型的预测准确性或者最大限度地减少训练损失。此外,您还可以调整特定的超参数并设置其值的范围。
  5. 提交训练作业,并查看日志以监控其进度和状态。
  6. 训练作业成功完成后,您可以在 AI Platform Training 上部署经过训练的模型,以设置预测服务器并根据新数据作出预测。

限制

使用内置算法进行训练时请注意以下限制:

  • 不支持分布式训练。如需在 AI Platform Training 上运行分布式训练作业,您必须创建一个训练应用。
  • 通过 Google Cloud 控制台提交的训练作业仅使用旧版机器类型。您可以将 Compute Engine 机器类型与通过 gcloudgcloud 或 Python 版 Google API 客户端库提交的训练作业搭配使用。详细了解用于训练的机器类型
  • 某些算法支持 GPU。如需了解详情,请参阅详细的所有内置算法的对比
  • 多 GPU 机器并不会加快内置算法训练的速度。如果您要使用 GPU,选择单 GPU 的机器即可。
  • 表格内置算法训练不支持 TPU。您必须创建一个训练应用才能使用 TPU。了解如何使用 TPU 运行训练作业

对应的每种算法的指南列出了特定内置算法的所有详细限制。

超参数调节

使用内置算法进行训练支持超参数调节。首先,指定目标指标,以及是否最小化或最大化该指标。 您可以最大程度地提高模型的准确率以进行分类,或最大限度地减少模型损失。 然后,列出要调整的超参数,以及每个超参数的目标值。

通过超参数调节功能提交训练作业时,AI Platform Training 会运行多次试验,并在每次试验后跟踪并调整超参数。超参数调节作业完成后,AI Platform Training 会报告最有效的超参数配置值,以及每次试验的摘要信息。

详细了解如何在 AI Platform Training 上调节超参数

内置算法概览

内置算法可帮助您训练模型,以便用于通常使用分类和回归解决的各种使用场景。以下内置算法可用于在 AI Platform Training 上执行训练:

  • 线性学习器
  • 广度和深度
  • TabNet
  • XGBoost
  • 图片分类
  • 对象检测

线性学习器

线性学习器内置算法用于逻辑回归、二进制分类和多类别分类。AI Platform Training 使用基于 TensorFlow Estimator 的实现。

线性学习器模型为每个输入特征分配一个权重并对权重求和以预测数字目标值。对于逻辑回归,此值将转换为 0 到 1 之间的值。这种简单类型的模型易于解读,因为您可以比较特征权重以确定哪些输入特征将对预测结果有重大影响。

详细了解大规模线性模型的工作原理

广度和深度

Wide & Deep 内置算法用于解决大规模分类和回归问题,例如推荐者系统、搜索和排名问题。AI Platform Training 使用基于 TensorFlow Estimator 的实现。

这种类型的模型由一个线性模型和一个深度神经网络组成,前者学习和“记忆”各种规则,后者“概括”这些规则并将其正确应用于新的未知数据中的类似特征。

详细了解广度和深度学习

TabNet

TabNet 内置算法用于处理表格数据的分类和回归问题。AI Platform Training 使用基于 TensorFlow 的实现。

TabNet 内置算法还提供了特征归因,以帮助解释模型的行为并解释其预测结果。

进一步了解 TabNet 这种全新内置算法

XGBoost

XGBoost (eXtreme Gradient Boosting) 是一个用来实现梯度提升算法的框架。XGBoost 可实现对分类、回归和排名任务进行高效的监督学习。XGBoost 训练基于决策树集成,它结合多个分类和回归模型的结果。

详细了解 XGBoost 的工作原理

图片分类

图像检测内置算法使用 TensorFlow 图片分类模型。您可以基于 EfficientNet 或 ResNet 的 TensorFlow 实现来训练图片分类模型。

对象检测

对象检测内置算法使用 TensorFlow Object Detection API 来构建可识别单个图片内的多个对象的模型。

比较内置算法

下表提供了内置算法的快速对比:

算法名称 使用的机器学习模型 问题类型 使用场景示例 支持的训练加速器
线性学习器 TensorFlow Estimator
LinearClassifier LinearRegressor
分类、回归 销售量预测 GPU
广度和深度 TensorFlow Estimator
DNNLinearCombinedClassifier DNNLinearCombinedEstimator DNNLinearCombinedRegressor
分类、回归、排名 推荐系统、搜索 GPU
TabNet TensorFlow Estimator 分类、回归 广告点击率 (CTR) 预测、欺诈检测 GPU
XGBoost XGBoost 分类、回归 广告点击率 (CTR) 预测 GPU(仅受算法的分布式版本支持)
图片分类 TensorFlow 图片分类模型 分类 图片分类 GPU、TPU
对象检测 TensorFlow 对象检测 API 对象检测 检测复杂图片场景内的对象 GPU、TPU

算法容器

将训练作业提交到 AI Platform Training 时,您可以选择算法,方法是指定托管在 Container Registry 中的对应 Docker 容器的 URI。内置算法可通过下列容器获取:

算法 Container Registry URI
线性学习器 gcr.io/cloud-ml-algos/linear_learner_cpu:latest
gcr.io/cloud-ml-algos/linear_learner_gpu:latest
广度和深度 gcr.io/cloud-ml-algos/wide_deep_learner_cpu:latest
gcr.io/cloud-ml-algos/wide_deep_learner_gpu:latest
TabNet gcr.io/cloud-ml-algos/tab_net:latest
XGBoost gcr.io/cloud-ml-algos/boosted_trees:latest
gcr.io/cloud-ml-algos/xgboost_dist:latest
图片分类 gcr.io/cloud-ml-algos/image_classification:latest
对象检测 gcr.io/cloud-ml-algos/image_object_detection:latest

后续步骤