線性學習程式演算法 - 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 線性學習器演算法不同使用案例的各種範例筆記本。

筆記本標題 Description

MNIST 資料集簡介

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

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

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

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

使用 SCIKit 學習容器,我們示範如何建置 ML 管線。 end-to-end

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