本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
線性學習程式演算法
「線性模型」為受監管的學習演算法,用於解決分類或迴歸問題。針對輸入,您提供模型標示範例 (x、y)。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 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
,則分數無法解譯為機率。原因是鉸鏈損失會對應到支援向量分類器,但其不會產生機率預估值。
如需輸入和輸出檔案格式的詳細資訊,請參閱線性學習程式回應格式。如需推論格式的詳細資訊,請參閱線性學習程式範例筆記本。
線性學習程式演算法的 EC2 執行個體建議
線性學習程式演算法可支援 CPU 和 GPU 執行個體,進行訓練和推論。針對 GPU,線性學習程式演算法可支援 P2、P3、G4dn 和 G5 GPU 系列。
在測試期間,找不到重大證據能證明多 GPU 的執行個體比單 GPU 的執行個體快。結果會隨您的特定使用案例而異。
線性學習程式範例筆記本
下表概述了針對 Amazon SageMaker 線性學習器演算法不同使用案例的各種範例筆記本。
筆記本標題 | Description |
---|---|
我們會使用 MNIST 資料集,訓練二元分類器來預測單一數字。 |
|
我們會使用 UCI 的 Covertype 資料集,示範如何訓練多類別分類器。 |
|
使用 SCIKit 學習容器,我們示範如何建置 ML 管線。 end-to-end |
如需如何建立及存取 Jupyter 筆記本執行個體 (您可以用來執行中範例) 的指示 SageMaker,請參閱。Amazon SageMaker Notebook 執行個體建立筆記本執行個體並開啟之後,請選擇 [SageMaker範例] 索引標籤以查看所有 SageMaker 範例的清單。使用線性學習演算法模組化範例筆記本的主題位於 Amazon 演算法簡介一節。若要開啟筆記本,請選擇其使用標籤,然後選擇建立複本。