

我們不再更新 Amazon Machine Learning 服務或接受新使用者。本文件可供現有使用者使用，但我們不再更新。如需詳細資訊，請參閱[什麼是 Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html)。

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

# 培訓參數
<a name="training-parameters"></a>

 一般而言，機器學習演算法接受參數，而參數可以用來控制培訓程序的特定屬性和產生的 ML 模型。在 Amazon Machine Learning 中，這些稱為*訓練參數*。您可以使用 Amazon ML 主控台、API 或命令列界面 (CLI) 來設定這些參數。如果您未設定任何參數，Amazon ML 將使用已知適用於大量機器學習任務的預設值。

 您可以指定下列培訓參數的值：
+  最大模型大小 
+  培訓資料的最大通過數目 
+  隨機播放類型
+  正規化類型 
+  正規化數量 

 在 Amazon ML 主控台中，預設會設定訓練參數。預設設定可適用於大部分 ML 問題，但您可以選擇其他值來微調效能。某些其他培訓參數 (例如學習速率) 是根據您的資料進行設定。

 下列各節提供培訓參數的詳細資訊。

## 最大模型大小
<a name="maximum-model-size"></a>

 模型大小上限是 Amazon ML 在 ML 模型訓練期間建立之模式的總大小，以位元組為單位。

 根據預設，Amazon ML 會建立 100 MB 模型。您可以指定不同的大小，指示 Amazon ML 建立較小或較大的模型。對於各種可用的大小，請參閱 [ML 模型的類型](types-of-ml-models.md) 

 如果 Amazon ML 找不到足夠的模式來填滿模型大小，則會建立較小的模型。例如，如果您指定 100 MB 的模型大小上限，但 Amazon ML 找到總計只有 50 MB 的模式，則產生的模型將為 50 MB。如果 Amazon ML 找到的模式比符合指定大小的模式更多，它會修剪對學習模型品質影響最小的模式，以強制執行最大截止值。

 選擇模型大小可讓您控制模型預測品質與使用成本之間的取捨。較小的模型可能會導致 Amazon ML 移除許多模式，使其符合最大大小限制，進而影響預測品質。另一方面，較大模型的成本高於查詢即時預測。

**注意**  
 如果您使用 ML 模型來產生即時預測，則會引起透過模型大小所決定的少量容量保留費用。如需詳細資訊，請參閱[Amazon ML 定價](pricing.md)。

 較大輸入資料集不一定會產生較大的模型，因為模型存放模式，而不是輸入資料；如果模式少而簡單，產生的模型就會小。具有大量原始屬性 （輸入資料欄） 或衍生功能 (Amazon ML 資料轉換的輸出） 的輸入資料，可能會在訓練過程中找到和儲存更多模式。只要幾次實驗，就能選擇您資料和問題的正確模型大小。Amazon ML 模型訓練日誌 （您可以從主控台或透過 API 下載） 包含訓練程序期間發生多少模型修剪 （如果有的話） 的訊息，可讓您預估潛在的hit-to-prediction品質。

## 資料的最大通過數目
<a name="maximum-number-of-passes-over-the-data"></a>

 為了獲得最佳結果，Amazon ML 可能需要對資料進行多次傳遞，以探索模式。根據預設，Amazon ML 會進行 10 次傳遞，但您可以透過將數字設定為 100 來變更預設值。Amazon ML 會追蹤模式的品質 （模型收斂），並在沒有更多資料點或模式需要探索時自動停止訓練。例如，如果您將傳遞次數設定為 20，但 Amazon ML 發現在 15 次傳遞結束時找不到新模式，則會停止 15 次傳遞的訓練。

 一般而言，只有幾個觀察的資料集通常需要資料的更多通過以取得較高的模型品質。較大資料集通常包含許多類似的資料點，因此不需要大量通過。選擇資料的更多資料通過的影響是兩倍：模型培訓需要較長的時間，而且成本較高。

## 培訓資料的隨機播放類型
<a name="data-shuffling-types"></a>

在 Amazon ML 中，您必須隨機播放訓練資料。隨機播放會混合資料順序，讓 SGD 演算法不會連續遇到單一資料類型的太多觀察值。例如，如果您要培訓 ML 模型預測產品類型，而且您的培訓資料包含電影、玩具和影片遊戲產品類型，如果您在上傳資料之前依產品類型資料行排序資料，則演算法會依產品類型字母順序查看資料。演算法會先看到所有的電影資料，因此您的 ML 模型開始學習電影的模式。接著，當您的模型遇到玩具的資料，演算法進行的每次更新都會讓演算法更符合玩具產品類型的模型，即使這些更新會降低符合電影的模式。這樣從電影突然切換到玩具類型，會產生不了解如何準確預測產品類型的模式。

您必須隨機播放培訓資料，即使您在將輸入資料來源分割為培訓和評估部分時選擇隨機分割選項也是一樣。隨機分割策略會選擇每個資料來源之資料的隨機子集，但不會變更資料來源中的資料列順序。如需分割資料的詳細資訊，請參閱[分割您的資料](splitting-types.md)。

當您使用主控台建立 ML 模型時，Amazon ML 預設會使用虛擬隨機隨機隨機隨機隨機播放技術來隨機播放資料。無論請求的通過次數為何，Amazon ML 在訓練 ML 模型之前只會隨機播放資料一次。如果您在將資料提供給 Amazon ML 之前隨機播放資料，且不希望 Amazon ML 再次隨機播放資料，您可以將**隨機播放類型**設定為 `none`。例如，如果您在將 .csv 檔案中的記錄上傳到 Amazon S3 之前隨機隨機隨機隨機播放，在從 Amazon RDS 建立資料來源時使用 MySQL SQL 查詢中的 `rand()` 函數，或在從 Amazon Redshift 建立資料來源時使用 Amazon Redshift SQL 查詢中的 `random()`函數，請將**隨機播放類型**設定為 `none` 不會影響 ML 模型的預測準確性。隨機播放資料一次可減少建立 ML 模型的執行時間和成本。

**重要**  
當您使用 Amazon ML API 建立 ML 模型時，Amazon ML 預設不會隨機播放您的資料。如果您使用 API 建立 ML 模型，而非主控台，則強烈建議您將 `sgd.shuffleType` 參數設定為 `auto` 來隨機播放資料。

## 正規化類型和數量
<a name="regularization-type-and-amount"></a>

資料包含太多模式時，複雜 ML 模型的預測效能 (有許多輸入屬性的模型) 會降低。隨著模式數量的增加，模型學習意外資料成品的可能性也會增加，而不是真正資料模式。在這種情況下，模型可以很好地學習培訓資料，但無法適當地歸納新資料。這個現象稱為*「過度擬合」*培訓資料。

 正規化會加上極大加權值，協助避免線性模型過度擬合培訓資料範例。L1 正規化將具有極小加權的功能加權推送為零，以減少模型中使用的功能數目。L1 正規化會產生稀疏模型，並降低模型的雜訊量。L2 正規化可產生較小的整體加權值，以在功能之間有高相互關聯性時穩定加權。您可以使用 `Regularization amount` 參數控制 L1 或 L2 正規化量。指定極大 `Regularization amount` 值，可能導致所有功能都具有零加權。

 選取並調整最佳正規化值是機器學習研究的主旨。您可能會受益於選擇中等數量的 L2 正規化，這是 Amazon ML 主控台中的預設值。進階使用者可以選擇三種類型的正規化 (none、L1 或 L2) 和數量。如需正規化的詳細資訊，請前往[正規化 (數學)](http://en.wikipedia.org/wiki/Regularization_(mathematics))。

## 培訓參數：類型和預設值
<a name="training-parameters-types-and-default-values"></a>

 下表列出 Amazon ML 訓練參數，以及每個參數的預設值和允許範圍。


| **培訓參數** | **類型** | **預設值** | **Description** | 
| --- | --- | --- | --- | 
| maxMLModelSizeInBytes | Integer | 100,000,000 位元組 (100 MiB) |  允許範圍：100,000 (100 KiB) 到 2,147,483,648 (2 GiB) 根據輸入資料，模型大小可能會影響效能。  | 
| sgd.maxPasses | Integer | 10 | 允許範圍：1-100 | 
| sgd.shuffleType | String | auto | 允許值：`auto` 或 `none` | 
| sgd.l1RegularizationAmount | Double | 0 (預設不會使用 L1) |  允許範圍：0 到 MAX\$1DOUBLE 發現 1E-4 與 1E-8 之間的 L1 值可以產生不錯的結果。較大值可能會產生不太有用的模型。 您無法設定 L1 和 L2。您必須選擇其中一項。  | 
| sgd.l2RegularizationAmount | Double | 1E-6 (L2 預設會與這個數量的正規化搭配使用) |  允許範圍：0 到 MAX\$1DOUBLE 發現 1E-2 與 1E-6 之間的 L2 值可以產生不錯的結果。較大值可能會產生不太有用的模型。 您無法設定 L1 和 L2。您必須選擇其中一項。  | 