Object2Vec 超參數 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Object2Vec 超參數

CreateTrainingJob 請求中,請指定訓練演算法。您也可以將演算法特定的超參數指定為 map。 string-to-string 下表列出 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

套用提早停止前,允許之毫無改進的連續 epoch 數量。改進是搭配 early_stopping_tolerance 超參數來定義的。

選用

有效值:1 ≤ 整數 ≤ 5

預設值:3

early_stopping_tolerance

演算法必須在連續 epoch 之間達到的損失函式減少量,才能避免在 early_stopping_patience 超參數中指定的連續 epoch 數之後提早停止。

選用

有效值: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 預先訓練內嵌權重。

有條件

有效值:TrueFalse

預設值: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 權杖內嵌向量映射至數字詞彙 ID 的詞彙檔。

有條件

有效值:包含英數字元、底線或句點的字串。[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 預先訓練內嵌權重。

有條件

有效值:TrueFalse

預設值: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 權杖內嵌與詞彙 ID 映射的詞彙檔案。

有條件

有效值:包含英數字元、底線或句點的字串。[A-Za-z0-9\.\_]

預設值:"" (空字串)

enc1_vocab_size

enc0 權杖的詞彙數量。

有條件

有效值:2 ≤ 整數 ≤ 3000000

epochs

要針對訓練執行的 epoch 數量。

選用

有效值: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

輸出層的類型,而您在此輸出層中指定任務是迴歸或分類。

選用

有效值:softmaxmean_squared_error

  • softmax:用於分類的 Softmax 函式

  • mean_squared_error:用於迴歸的 MSE

預設值:softmax

tied_token_embedding_weight

是否針對兩個編碼器使用共用的內嵌層。如果兩個編碼器的輸入使用相同的權杖層級單位,請使用共用的權杖內嵌層。例如,對於文件集合,如果一個編碼器編碼句子,另一個編碼整份文件,則您可以使用共用的權杖內嵌層。這是因為這兩個句子和文件是由來自相同詞彙的字詞權杖所組成。

選用

有效值:TrueFalse

預設值:False

token_embedding_storage_type

訓練期間使用的梯度更新模式:當使用 dense 模式時,最佳化器會計算權杖內嵌層的完整梯度矩陣,即使梯度的大多數列均為零值也一樣。當使用 sparse 模式時,最佳化器只會存放實際在微批次中使用的梯度列。如果您想要演算法執行延遲梯度更新,僅計算非零列中的梯度並加速訓練,請指定 row_sparse。將此值設為 row_sparse,可限制其他超參數的可用值,如下所示:

  • optimizer 超參數必須設為 adamadagradsgd。否則,演算法會擲出 CustomerValueError

  • 演算法會自動停用歸納,將 bucket_width 超參數設為 0。

選用

有效值:denserow_sparse

預設值:dense

weight_decay

用於最佳化的權重衰減參數。

選用

有效值:0 ≤ 浮點數 ≤ 10000

預設值:0 (無衰減)