線性學習程式演算法 - Amazon SageMaker

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

線性學習程式演算法

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

Amazon SageMaker 線性學習程式演算法提供針對分類和迴歸問題的解決方案。使用 SageMaker 演算法,您可同步探索不同的訓練目標,然後從驗證組中選出最佳的解決方案。您也可以探索大量模型,選擇最佳方案。最佳模式會最佳化下列兩項的其中之一:

  • 持續目標,例如均方根誤差、跨熵遺失、絕對錯誤。

  • 適合分類的分散式目標,例如 F1 測量、精確度、重新叫用或準確度。

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

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

如果您使用受管 Spot 訓練,該線性學習程式演算法可支援使用檢查點來建立模型狀態快照

線性學習程式演算法的輸入/輸出介面

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

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

針對推論,線性學習程式演算法支援 application/jsonapplication/x-recordio-protobuftext/csv 格式。當您對新資料進行預測時,格式取決於類型的模型。針對迴歸 (predictor_type='regressor'),score 是模型產生的預測。針對分類 (predictor_type='binary_classifier'predictor_type='multiclass_classifier'),模型會傳回 score,也會傳回 predicted_labelpredicted_label 是模型預測的類別,而且 score 會測量該預測的強度。

  • 針對二進位分類predicted_label01,而 score 是單一浮點數,表示演算法認為標籤應為 1 的程度有多強烈。

  • 針對多類別分類predicted_class 將是從 0num_classes-1 的整數,,而且 score 將是每個類別一個浮點數的清單。

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

如需輸入和輸出檔案格式的詳細資訊,請參閱線性學習程式回應格式。如需推論格式的詳細資訊,請參閱線性學習程式範例筆記本

線性學習程式演算法的 EC2 執行個體建議

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

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

線性學習程式範例筆記本

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

筆記本標題 描述

MNIST 資料集簡介

我們會使用 MNIST 資料集,訓練二元分類器來預測單一數字。

如何建置一個多類別分類器?

我們會使用 UCI 的 Covertype 資料集,示範如何訓練多類別分類器。

如何建置推論的機器學習(ML)管道?

我們會使用 Scikit 學習容器,示範如何建置端對端機器學習管道。

有關如何建立和存取可用於在 SageMaker 中執行範例的 Jupyter 筆記本執行個體的指示,請參閱 Amazon SageMaker 筆記本實。建立並開啟筆記本執行個體後,請選擇 SageMaker Examples (SageMaker 範例) 索引標籤,查看所有 SageMaker 範例清單。使用線性學習演算法模組化範例筆記本的主題位於 Amazon 演算法簡介一節。若要開啟筆記本,請選擇其 Use (使用) 標籤,然後選擇 Create copy (建立複本)