Object2Vec 超参数 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Object2Vec 超参数

CreateTrainingJob 请求中,您可以指定训练算法。您还可以指定算法特定的超参数作为字符串到字符串映射。下表列出了 Object2Vec 训练算法的超参数。

参数名称 描述
enc0_max_seq_len

enc0 编码器的最大序列长度。

必需

有效值:1 ≤ 整数 ≤ 5000

enc0_vocab_size

enc0 标记的词汇表大小。

必需

有效值:2 ≤ 整数 ≤ 3000000

bucket_width

启用分桶时数据序列长度之间允许的差异。要启用分桶,请为该参数指定非零值。

可选

有效值:0 ≤ 整数 ≤ 100

默认值:0(不分桶)

comparator_list

用于自定义比较两个嵌入的方式的列表。比较器运算符层采用来自两个编码器的编码作为输入,并输出单个向量。Object2Vec该向量是将子向量串联在一起的结果。传递到 comparator_list 的字符串值及其传递顺序决定了如何合并这些子向量。例如,如果 comparator_list="hadamard, concat",则比较器运算符串联两个编码的 Hadamard 乘积和两个编码的串联以构造向量。另一方面,如果 comparator_list="hadamard",则比较器运算符将向量构造为仅两个编码的 Hadamard 乘积。

可选

有效值:一个包含三个二进制运算符名称的任意组合的字符串:hadamardconcatabs_diff。 算法目前要求两个向量编码具有相同的维度。Object2Vec这些运算符生成子向量,如下所示:

  • hadamard:将向量构造为两个编码的 Hadamard(元素-依据)积

  • concat:将向量构造为两个编码的串联。

  • abs_diff:将向量构造为两个编码之间的绝对差异。

默认值:"hadamard, concat, abs_diff"

dropout

网络层的丢弃概率。丢弃法 是神经网络中使用的一种正规化形式,通过修剪相关的神经元来减少过拟合。

可选

有效值:0.0 ≤ 浮点 1.0≤

默认值:0.0

early_stopping_patience

在应用提前停止之前,允许的无改进的连续纪元数。改进是使用 early_stopping_tolerance 超参数定义的。

可选

有效值:1 ≤ 整数 ≤ 5

默认值:3

early_stopping_tolerance

算法必须在连续纪元之间实现损失函数减少,以避免在 early_stopping_patience 超参数中指定的连续纪元数量结束之后提前停止。

可选

有效值:0.000001 ≤ 浮点值 ≤ 0.1

默认值:0.01

enc_dim

嵌入层的输出的维。

可选

有效值:4 ≤ 整数 ≤ 10000

默认值:4096

enc0_network

enc0 编码器的网络模型。

可选

有效值:hcnnbilstmpooled_embedding

  • hcnn:分层卷积神经网络。

  • bilstm:一个双向长短期记忆网络 (biLSTM),其中信号会及时向后和向前传播。这是适合用于顺序学习任务的循环神经网络 (RNN) 架构。

  • pooled_embedding:对输入中所有标记的嵌入取平均值。

默认值:hcnn

enc0_cnn_filter_width

卷积神经网络 (CNN) enc0 编码器的滤波器宽度。

条件

有效值:1 ≤ 整数 ≤ 9

默认值:3

enc0_freeze_pretrained_embedding

是否冻结 enc0 预训练嵌入权重。

条件

有效值:True 或者 False

默认值:True

enc0_layers

enc0 编码器中的层数。

条件

有效值:auto 或 1 ≤ 整数 ≤ 4

  • 对于 hcnnauto 表示 4。

  • 对于 bilstmauto 表示 1。

  • 对于 pooled_embeddingauto 忽略层数。

默认值:auto

enc0_pretrained_embedding_file

辅助数据通道中的预训练 enc0 标记嵌入文件的文件名。

条件

有效值:包含字母数字字符、下划线或句点的字符串。[A-Za-z0-9\\.\\_]

默认值:""(空字符串)

enc0_token_embedding_dim

enc0 标记嵌入层的输出维。

条件

有效值:2 ≤ 整数 ≤ 1000

默认值:300

enc0_vocab_file

用于将预训练的 enc0 标记嵌入向量映射到数字词汇表 IDs 的词汇表文件。

条件

有效值:包含字母数字字符、下划线或句点的字符串。[A-Za-z0-9\\.\\_]

默认值:""(空字符串)

enc1_network

enc1 编码器的网络模型。如果您希望 enc1 编码器使用与 enc0 相同的网络模型(包括超参数值),请将该值设置为 enc0

注意

即使 enc0 和 enc1 编码器网络具有对称的架构,您也无法为这些网络共享参数值。

可选

有效值:enc0hcnnbilstmpooled_embedding

  • enc0:enc0 编码器的网络模型。

  • hcnn:分层卷积神经网络。

  • bilstm:双向 LSTM,其中信号向后面和前面的时间点传播。这是适合用于顺序学习任务的循环神经网络 (RNN) 架构。

  • pooled_embedding:输入中所有标记的嵌入的平均值。

默认值:enc0

enc1_cnn_filter_width

CNN enc1 编码器的滤波器宽度。

条件

有效值:1 ≤ 整数 ≤ 9

默认值:3

enc1_freeze_pretrained_embedding

是否冻结 enc1 预训练嵌入权重。

条件

有效值:True 或者 False

默认值:True

enc1_layers

enc1 编码器中的层数。

条件

有效值:auto 或 1 ≤ 整数 ≤ 4

  • 对于 hcnnauto 表示 4。

  • 对于 bilstmauto 表示 1。

  • 对于 pooled_embeddingauto 忽略层数。

默认值:auto

enc1_max_seq_len

enc1 编码器的最大序列长度。

条件

有效值:1 ≤ 整数 ≤ 5000

enc1_pretrained_embedding_file

辅助数据通道中的 enc1 预训练标记嵌入文件的名称。

条件

有效值:包含字母数字字符、下划线或句点的字符串。[A-Za-z0-9\\.\\_]

默认值:""(空字符串)

enc1_token_embedding_dim

enc1 标记嵌入层的输出维度。

条件

有效值:2 ≤ 整数 ≤ 1000

默认值:300

enc1_vocab_file

用于将预训练的 enc1 标记嵌入映射到词汇表 IDs 的词汇表文件。

条件

有效值:包含字母数字字符、下划线或句点的字符串。[A-Za-z0-9\\.\\_]

默认值:""(空字符串)

enc1_vocab_size

enc0 标记的词汇表大小。

条件

有效值:2 ≤ 整数 ≤ 3000000

epochs

要运行用于训练的纪元数。

可选

有效值:1 ≤ 整数 ≤ 100

默认值:30

learning_rate

训练的学习率。

可选

有效值:1.0E-6 ≤ 浮点值 ≤ 1.0

默认值:0.0004

mini_batch_size

在训练期间将 optimizer 的数据集拆分成的批次大小。

可选

有效值:1 ≤ 整数 ≤ 10000

默认值:32

mlp_activation

多层感知机 (MLP) 层的激活函数的类型。

可选

有效值:tanhrelulinear

  • tanh:双曲正切

  • relu:修正线性单元 (ReLU)

  • linear:线性函数

默认值:linear

mlp_dim

MLP 层的输出维度。

可选

有效值:2 ≤ 整数 ≤ 10000

默认值:512

mlp_layers

网络中的 MLP 层数。

可选

有效值:0 ≤ 整数 ≤ 10

默认值:2

negative_sampling_rate

为帮助训练算法而生成的负样本与用户提供的正样本的比率。负样本表示实际不太可能出现的数据,并在训练时标记为不正确的样本。它们有助于训练模型,以区分观察到的正样本和未观察到的负样本。要指定用于训练的负样本与正样本的比率,请将该值设置为正整数。例如,如果您针对所有样本均为正样本的输入数据训练算法,并将 negative_sampling_rate 设置为 2,则 Object2Vec 算法会在内部为每个正样本生成两个负样本。如果您不希望在训练期间生成或使用负样本,请将该值设置为 0。

可选

有效值:0 ≤ 整数

默认值:0 (关闭)

num_classes

分类训练的类别数。对于回归问题,Amazon SageMaker 忽略该超参数。

可选

有效值:2 ≤ 整数 ≤ 30

默认值:2

optimizer

优化程序类型。

可选

有效值:adadeltaadagradadamsgdrmsprop

默认值:adam

output_layer

输出层的类型,您可以在其中指定任务是回归还是分类。

可选

有效值:softmax 或者 mean_squared_error

  • softmax:用于分类的 Softmax 函数

  • mean_squared_error:用于回归的 MSE

默认值:softmax

tied_token_embedding_weight

是否将共享嵌入层用于两个编码器。如果两个编码器的输入使用相同的标记级单元,请使用共享标记嵌入层。例如,对于文档集合,如果一个编码器对句子进行编码,另一个编码器对整个文档进行编码,则可以使用共享标记嵌入层。这是因为,句子和文档都是由同一词汇表中的单词标记组成的。

可选

有效值:True 或者 False

默认值:False

token_embedding_storage_type

在训练期间使用的梯度更新模式:在使用 dense 模式时,优化程序计算标记嵌入层的完整梯度矩阵,即使梯度的大多数行的值为零。在使用 sparse 模式时,优化程序仅存储实际在小批次中使用的梯度行。如果您希望算法执行延迟梯度更新(仅计算非零行中的梯度并加速训练),请指定 row_sparse。 将该值设置为 row_sparse 会限制其他超参数的可用值,如下所示:

  • 超参数必须设置为 optimizeradamadagradsgd 否则,算法将引发 CustomerValueError

  • 该算法自动禁用分桶,从而将 bucket_width 超参数设置为 0。

可选

有效值:dense 或者 row_sparse

默认值:dense

weight_decay

用于优化的权重衰减参数。

可选

有效值:0 ≤ 浮点值 ≤ 10000

默认值:0(无衰减)