

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

# 線性學習程式演算法
<a name="linear-learner"></a>

*線性模型*為監督式學習演算法，用於解決分類或迴歸問題。針對輸入，您提供模型標示範例 (*x*、*y*)。*x* 是一種高維度向量，而 *y* 是一種數字標籤。針對二元分類問題，標籤必須為 0 或 1。針對多類別分類問題，標籤必須從 0 到 `num_classes` - 1。針對迴歸問題，*y* 為實數。演算法會學習線性函式，或者針對分類問題為線性閾值函式，將向量 *x* 映射到標籤 *y* 的近似值。

Amazon SageMaker AI 線性學習程式演算法提供針對分類和迴歸問題的解決方案。使用 SageMaker AI 演算法，您可同步探索不同的訓練目標，然後從驗證組中選出最佳的解決方案。您也可以探索大量模型，選擇最佳方案。最佳模式會最佳化下列兩項的其中之一：
+ 持續目標，例如均方根誤差、跨熵遺失、絕對錯誤。
+ 適合分類的分散式目標，例如 F1 測量、精確度、重新調用或準確度。

相較於僅針對持續目標提供解決方案的方法，SageMaker AI 線性學習程式演算法運用簡單的超參數最佳化技術大幅提升速度。而且也更方便。

線性學習程式演算法需要資料矩陣，其中包含代表觀察的列以及功能維度的欄。它還需要額外的欄位，包含符合資料點的標籤。Amazon SageMaker AI 線性學習程式至少會要求您指定輸入和輸出資料位置和目標類型 (分類或迴歸) 做為引數。也需要功能維度。如需詳細資訊，請參閱[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)。您可以在請求本文的 `HyperParameters` 字串映射中指定額外的參數。這些參數會控制最佳化程序，或您訓練的目標函式規格。例如，epoch、標準化與遺失類型的數量。

如果您使用[受管 Spot 訓練](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html)，該線性學習程式演算法可支援使用[檢查點來建立模型狀態快照](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html)。

**Topics**
+ [線性學習程式演算法的輸入/輸出介面](#ll-input_output)
+ [線性學習程式演算法的 EC2 執行個體建議](#ll-instances)
+ [線性學習程式範例筆記本](#ll-sample-notebooks)
+ [線性學習程式的運作方式](ll_how-it-works.md)
+ [線性學習程式超參數](ll_hyperparameters.md)
+ [調校線性學習程式模型](linear-learner-tuning.md)
+ [線性學習程式回應格式](LL-in-formats.md)

## 線性學習程式演算法的輸入/輸出介面
<a name="ll-input_output"></a>

Amazon SageMaker AI 線性學習程式演算法可支援三種資料通道：訓練、驗證 (選用) 與測試 (選用)。如果您提供驗證資料，`S3DataDistributionType` 應為 `FullyReplicated`。演算法會記錄每個 epoch 的驗證遺失，並使用驗證資料範例校正與選取最佳模型。如果您不提供驗證資料，則演算法會使用訓練資料範例校正與選取模型。如果您提供測試資料，則演算法日誌會包含最終模型的測試分數。

**針對訓練**，線性學習程式演算法支援 `recordIO-wrapped protobuf` 和 `CSV` 格式。針對 `application/x-recordio-protobuf` 輸入類型，僅支援 Float32 張量。針對 `text/csv` 輸入類型，第一個欄位假設為標籤，這是預測的目標變數。您可以使用檔案模式或管道模式訓練 `recordIO-wrapped-protobuf` 或 `CSV` 格式資料的線性學習程式模型。

**針對推論**，線性學習程式演算法支援 `application/json`、`application/x-recordio-protobuf` 和 `text/csv` 格式。當您對新資料進行預測時，格式取決於類型的模型。**針對迴歸** (`predictor_type='regressor'`)，`score` 是模型產生的預測。**針對分類** (`predictor_type='binary_classifier'` 或 `predictor_type='multiclass_classifier'`)，模型會傳回 `score`，也會傳回 `predicted_label`。`predicted_label` 是模型預測的類別，而且 `score` 會測量該預測的強度。
+ **針對二進位分類**，`predicted_label` 是 `0` 或 `1`，而 `score` 是單一浮點數，表示演算法認為標籤應為 1 的程度有多強烈。
+ **針對多類別分類**，`predicted_class` 將是從 `0` 到 `num_classes-1` 的整數,，而且 `score` 將是每個類別一個浮點數的清單。

若要解譯分類問題中的 `score`，您必須考慮所使用的損失函式。如果 `loss` 超參數值是 `logistic` (若為二元分類) 或 `softmax_loss` (若為多類別分類)，則 `score` 可以解譯為對應類別的機率。當 `loss` 值是 `auto` 預設值時，這些是線性學習程式所使用的損失值。但是，如果損失設為 `hinge_loss`，則分數無法解譯為機率。原因是鉸鏈損失會對應到支援向量分類器，但其不會產生機率預估值。

如需輸入和輸出檔案格式的詳細資訊，請參閱[線性學習程式回應格式](LL-in-formats.md)。如需推論格式的詳細資訊，請參閱[線性學習程式範例筆記本](#ll-sample-notebooks)。

## 線性學習程式演算法的 EC2 執行個體建議
<a name="ll-instances"></a>

線性學習程式演算法可支援 CPU 和 GPU 執行個體，進行訓練和推論。針對 GPU，線性學習程式演算法可支援 P2、P3、G4dn 和 G5 GPU 系列。

在測試期間，找不到重大證據能證明多 GPU 的執行個體比單 GPU 的執行個體快。結果會隨您的特定使用案例而異。

## 線性學習程式範例筆記本
<a name="ll-sample-notebooks"></a>

 下表概述了解決 Amazon SageMaker AI 線性程式演算法不同使用案例的各種範例筆記本。


| **筆記本標題** | **Description** | 
| --- | --- | 
|  [MNIST 資料集簡介](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   我們會使用 MNIST 資料集，訓練二元分類器來預測單一數字。  | 
|  [如何建置一個多類別分類器？](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   我們會使用 UCI 的 Covertype 資料集，示範如何訓練多類別分類器。  | 
|  [如何建置推論的機器學習 (ML) 管道？](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   我們會使用 Scikit 學習容器，示範如何建置端對端機器學習 (ML) 管道。  | 

 有關如何建立和存取可用於在 SageMaker AI 中執行範例的 Jupyter 筆記本執行個體的說明，請參閱[Amazon SageMaker 筆記本執行個體](nbi.md)。建立並開啟筆記本執行個體後，請選擇 **SageMaker AI 範例**索引標籤，查看所有 SageMaker AI 範例清單。使用線性學習演算法模組化範例筆記本的主題位於 **Amazon 演算法簡介**一節。若要開啟筆記本，請選擇其**使用**標籤，然後選擇**建立複本**。