我們不再更新 Amazon Machine Learning 服務或接受新使用者。本文件適用於現有使用者,但我們不再對其進行更新。如需詳細資訊,請參閱什麼是 Amazon Machine Learning。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
培訓參數
一般而言,機器學習演算法接受參數,而參數可以用來控制培訓程序的特定屬性和產生的 ML 模型。在 Amazon Machine Learning 中,這些被稱為培訓參數。您可以使用 Amazon ML 主控台、API 或命令列界面 (CLI) 來設定這些參數。如果您未設定任何參數,則 Amazon ML 會使用已知適用於各種機器學習任務的預設值。
您可以指定下列培訓參數的值:
-
最大模型大小
-
培訓資料的最大通過數目
-
隨機播放類型
-
正規化類型
-
正規化數量
在 Amazon ML 主控台中,預設會設定培訓參數。預設設定可適用於大部分 ML 問題,但您可以選擇其他值來微調效能。某些其他培訓參數 (例如學習速率) 是根據您的資料進行設定。
下列各節提供培訓參數的詳細資訊。
最大模型大小
最大模型大小是 Amazon ML 在培訓 ML 模型期間所建立模式的總大小 (以位元組為單位)。
預設會建立 100 MB 模型。您可以指定不同的大小,指示 Amazon ML 建立較小或較大的模型。對於各種可用的大小,請參閱 ML 模型的類型
如果 Amazon ML 找不到足夠的模式可滿足模型大小,則會建立較小的模型。例如,如果您指定最大模型大小 100 MB,但 Amazon ML 找到總共只有 50 MB 的模式,則產生的模型會是 50 MB。如果 Amazon ML 找到更多的模式可符合指定的大小,則會裁剪對已學習模型的品質影響較少的模式,強制執行最大截止值。
選擇模型大小可讓您控制模型預測品質與使用成本之間的取捨。較小的模型可能會讓 Amazon ML 移除許多模式以符合最大大大小限制,而這會影響預測品質。另一方面,較大模型的成本高於查詢即時預測。
注意
如果您使用 ML 模型來產生即時預測,則會引起透過模型大小所決定的少量容量保留費用。如需詳細資訊,請參閱 Amazon ML 的定價。
較大輸入資料集不一定會產生較大的模型,因為模型存放模式,而不是輸入資料;如果模式少而簡單,產生的模型就會小。具有大量原始屬性 (輸入資料行) 或衍生功能 (Amazon ML 資料轉換的輸出) 的輸入資料可能會在培訓程序期間找到和存放更多的模式。只要幾次實驗,就能選擇您資料和問題的正確模型大小。您可以從主控台或透過 API 下載的 Amazon ML 模型培訓記錄包含培訓程序期間進行多少模型裁剪 (如果有的話) 的訊息,讓您預估潛在符合預測品質。
資料的最大通過數目
為了獲得最佳結果,Amazon ML 可能需要對資料進行多個通過,以探索模式。預設會建立 10 次通過,但您可以設定最多 100 的數目來變更預設值。Amazon ML 會持續追蹤模式品質 (模型收斂),並在沒有要探索的其他資料點或模式時自動停止培訓。例如,如果您將通過次數設定為 20,但 Amazon ML 發現在 15 次通過結束之前找不到新模式,則會在 15 次通過時停止培訓。
一般而言,只有幾個觀察的資料集通常需要資料的更多通過以取得較高的模型品質。較大資料集通常包含許多類似的資料點,因此不需要大量通過。選擇資料的更多資料通過的影響是兩倍:模型培訓需要較長的時間,而且成本較高。
培訓資料的隨機播放類型
在亞馬遜 ML 中,您必須隨機播放培訓資料。隨機播放會混合資料順序,讓 SGD 演算法不會連續遇到單一資料類型的太多觀察值。例如,如果您要培訓 ML 模型預測產品類型,而且您的培訓資料包含電影、玩具和影片遊戲產品類型,如果您在上傳資料之前依產品類型資料行排序資料,則演算法會依產品類型字母順序查看資料。演算法會先看到所有的電影資料,因此您的 ML 模型開始學習電影的模式。接著,當您的模型遇到玩具的資料,演算法進行的每次更新都會讓演算法更符合玩具產品類型的模型,即使這些更新會降低符合電影的模式。這樣從電影突然切換到玩具類型,會產生不了解如何準確預測產品類型的模式。
您必須隨機播放培訓資料,即使您在將輸入資料來源分割為培訓和評估部分時選擇隨機分割選項也是一樣。隨機分割策略會選擇每個資料來源之資料的隨機子集,但不會變更資料來源中的資料列順序。如需分割資料的詳細資訊,請參閱分割您的資料。
當您使用主控台建立 ML 模型時,Amazon ML 預設為使用虛擬隨機播放技巧來隨機播放資料。不論要求多少通過次數,在培訓 ML 模型之前,Amazon ML 只會隨機播放資料一次。如果您將資料隨機播放後再提供給 Amazon ML,而且不希望 Amazon ML 再次隨機播放資料,則可以設定隨機播放類型至none
。例如,如果您在將 .csv 文件中的記錄上傳到 Amazon S3 之前隨機洗牌,則使用rand()
函數在您的 MySQL SQL 查詢中創建數據源時,或者使用random()
函數在您的 Amazon Redshift SQL 查詢中創建數據源時,將隨機播放類型至none
不會影響 ML 模型的預測精度。隨機播放資料一次可減少建立 ML 模型的執行時間和成本。
重要
當您使用亞馬遜 ML API 建立 ML 模型時,預設不會隨機播放資料。若您使用 API 而非主控台建立 ML 模型,強烈建議您將 sgd.shuffleType
參數設為 auto
以隨機播放資料。
正規化類型和數量
資料包含太多模式時,複雜 ML 模型的預測效能 (有許多輸入屬性的模型) 會降低。隨著模式數量的增加,模型學習意外資料成品的可能性也會增加,而不是真正資料模式。在這種情況下,模型可以很好地學習培訓資料,但無法適當地歸納新資料。這個現象稱為「過度擬合」培訓資料。
正規化會加上極大加權值,協助避免線性模型過度擬合培訓資料範例。L1 正規化將具有極小加權的功能加權推送為零,以減少模型中使用的功能數目。L1 正規化會產生稀疏模型,並降低模型的雜訊量。L2 正規化可產生較小的整體加權值,以在功能之間有高相互關聯性時穩定加權。您可以使用 Regularization amount
參數控制 L1 或 L2 正規化量。指定極大 Regularization
amount
值,可能導致所有功能都具有零加權。
選取並調整最佳正規化值是機器學習研究的主旨。您可以透過選取適當數量的 L2 正規化 (這是 Amazon ML 主控台中的預設值) 獲益。進階使用者可以選擇三種類型的正規化 (none、L1 或 L2) 和數量。如需正規化的詳細資訊,請前往正規化 (數學)
培訓參數:類型和預設值
下表列出 Amazon ML 培訓參數,以及每個參數的預設值和允許範圍。
培訓參數 |
類型 |
預設值 |
Description (描述) |
---|---|---|---|
maxMLModelSizeInBytes |
整數 |
100,000,000 位元組 (100 MiB) |
允許範圍:100 KiB 至 2,147,483,648 (2 GiB) 根據輸入資料,模型大小可能會影響效能。 |
sgd.maxPasses |
整數 |
10 |
允許範圍:1-100 |
sgd.shuffleType |
字串 |
auto |
允許值: |
sgd.l1RegularizationAmount |
Double |
0 (預設不會使用 L1) |
允許範圍:0 到 MAX_DOUBLE 發現 1E-4 與 1E-8 之間的 L1 值可以產生不錯的結果。較大值可能會產生不太有用的模型。 您無法設定 L1 和 L2。您必須選擇其中一項。 |
sgd.l2RegularizationAmount |
Double |
1E-6 (L2 預設會與這個數量的正規化搭配使用) |
允許範圍:0 到 MAX_DOUBLE 發現 1E-2 與 1E-6 之間的 L2 值可以產生不錯的結果。較大值可能會產生不太有用的模型。 您無法設定 L1 和 L2。您必須選擇其中一項。 |