Amazon MLS-C01: 模型建立 — 監督式與非監督式 (經典 ML) — 學習指南
屬於 AWS Machine Learning Specialty MLS-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
監督式學習問題的模型選擇與架構
選擇模型的第一步,是從資料的形狀與生產環境的限制開始。對於具有大量樣本和可解釋係數的線性訊號,正規化的線性或邏輯斯迴歸(例如 SageMaker LinearLearner 或 scikit-learn ElasticNet)不僅速度快,還能產生可供檢視的係數。當非線性互動為主時,像是 XGBoost(SageMaker XGBoost container)或 LightGBM 這類的樹狀集成模型,能夠在不需大量特徵縮放的情況下捕捉異質性;可調整 eta (learning_rate)、max_depth、subsample、colsample_bytree 以及正規化參數 alpha/lambda 來控制過擬合。SVMs 在中小型、經過良好縮放的特徵集上可能很有效,但在 SageMaker 上通常需要自訂容器或使用 scikit-learn ScriptMode,因為處理大型資料集的成本很高;記得要將特徵標準化,並謹慎選擇核心函式/正規化參數(C、gamma)。對於高維度的稀疏類別/文字輸入,Naive Bayes 是一個快速的基準模型;它假設特徵之間條件獨立,因此在相關性強時效果會變差。對於有數千個特徵或非常大的資料集,可使用降維(PCA)或特徵雜湊,若使用基於 GPU 的深度神經網路,則建議在 ml.c5 或 ml.p3 執行個體上進行分散式訓練。若要部署,可使用 SageMaker endpoints 進行即時推論,或使用 Batch Transform 進行批次預測;當需要維護多個模型時,可使用 Multi-Model Endpoints 來降低成本。
指標、不平衡、校準與部署權衡
準確率(Accuracy)在處理不平衡問題時很有吸引力但容易誤導;建議優先使用對類別敏感的指標,例如 precision、recall、F1、ROC AUC(用於強調類別平衡),以及在正向類別稀少時使用 PR AUC。在產生機率值時,應使用可靠性圖(reliability diagrams)和 Brier score 來檢查校準情況;可使用離線執行的 Platt scaling 或 isotonic calibration(例如 scikit-learn CalibratedClassifierCV),或是在 SageMaker 訓練中輸出原始分數並應用後處理步驟來進行校準。為處理類別不平衡,建議優先考慮樣本加權(SageMaker LinearLearner 和許多訓練腳本都支援)、在訓練期間進行目標性過採樣(SMOTE)或欠採樣,以及對神經網路使用損失函數重新加權或 focal loss。對於詐欺機率的近即時評分,可透過以下方式優化模型延遲:使用推論延遲低的執行個體類型(如 ml.m5.large 或 CPU 優化型執行個體)、保持模型精簡(進行剪枝或使用蒸餾模型),並利用 SageMaker endpoints 的 multi-model endpoints 或 A/B 流量轉移來安全地推出更新。使用 SageMaker Model Monitor 監控生產環境中的模型漂移和資料品質,並將指標記錄自動化至 CloudWatch。
特徵工程、多重共線性與正規化
多重共線性會導致線性模型中係數估計的變異數膨脹;可使用變異數膨脹因子(VIF)和成對的 Pearson correlation 來偵測,並透過移除多餘特徵或使用降維(PCA、SVD)來緩解。正規化是一種有原則的解決方法:L2 (Ridge) 會縮小係數,L1 (Lasso) 會引導稀疏性以進行特徵選擇,而 ElasticNet 則結合了兩者——這些方法在 scikit-learn 和 SageMaker LinearLearner 中都有提供。對於高度偏斜的數值特徵,可應用對數或 Box–Cox 轉換來穩定變異數並改善線性模型的擬合效果;請記住,樹狀集成模型對單調轉換具有穩健性,而 SVMs 和神經網路則需要標準化的輸入(StandardScaler)才能穩定訓練。高基數的類別特徵可透過目標編碼、嵌入或雜湊處理來獲益;使用目標編碼時,為避免資料洩漏,應在交叉驗證的摺疊中計算編碼,或使用一個獨立的保留資料集。使用 SageMaker Feature Store 來集中管理並提供一致的特徵轉換給訓練和推論使用,並將預處理程式碼與模型套件或 Docker 映像檔一起保存,以確保生產環境的轉換與訓練時一致。
非監督式方法、叢集、異常偵測與可解釋性
叢集與異常偵測是探索性工具,也是監督式模型的預處理步驟。K-means (SageMaker k-means) 速度快,但假設叢集為球形且需要特徵縮放;請謹慎使用 silhouette 分數或肘部圖 (elbow plots) 來選擇 k 值,因為慣性 (inertia) 可能不明確。基於密度的方法 (DBSCAN) 和階層式叢集可以捕捉非球形結構,但計算成本較高。對於大規模的異常偵測,可考慮使用 SageMaker Random Cut Forest 處理串流感測器資料,並使用 Kinesis/Lambda 管線進行近乎即時的評分;調整樹的數量和樣本大小以控制敏感度。可解釋性工具至關重要:對樹狀模型使用模型原生的特徵重要性,並使用 SHAP 值 (SageMaker Clarify 或 SHAP 套件) 進行局部解釋和全域效果摘要。注意常見的陷阱:隨機分割時間序列資料時的時間洩漏、在不平衡的資料集中過度依賴準確率,以及為 Naive Bayes 假設特徵獨立。在部署方面,需要時將自訂演算法打包到 Docker 中,公開預測和健康檢查端點,並透過端點的流量分割來協調金絲雀部署 (canary rollouts)。
實務問題:FleetSight Logistics — 卡車影像的探索性機器學習
情境: FleetSight 每天收集約 100 GB 的卡車影像並儲存在 S3 中,使用 SageMaker Studio 進行實驗,並使用 SageMaker Ground Truth 進行影像標註。他們需要輕量級的機器學習能力來進行瑕疵偵測,並計畫未來進行擴展。
挑戰: 找出可行的監督式/非監督式使用案例,並設計一個低成本的管線,用以在標籤有限的情況下訓練初始模型,並為警報提供近乎即時的推論。
建議方法:
- 使用 SageMaker Ground Truth 搭配主動學習 (active learning) 來標註一個種子資料集;將標註好的資料儲存在 S3 中,並在 SageMaker Feature Store 中註冊特徵。
- 從非監督式異常偵測開始,使用 SageMaker Random Cut Forest 處理從影像衍生的感測器元數據和簡單的影像嵌入 (在 SageMaker Notebook 中使用 GPU ml.p3.2xlarge,透過預訓練的 CNN 提取嵌入)。
- 在標註好的子集上,使用遷移學習 (transfer learning) 訓練一個輕量級的監督式分類器 (使用 SageMaker 內建的 TensorFlow 或 PyTorch 容器);若要快速建立基準模型,可提取嵌入並在 CPU 執行個體上訓練一個 XGBoost 模型 (SageMaker XGBoost)。
- 為了成本效益,將 XGBoost 模型部署到具有非同步推論 (async inference) 的 SageMaker 端點或 Multi-Model Endpoint;使用 SageMaker Model Monitor 監控輸入和預測,並透過 Ground Truth 進行迭代標註。
基本原理: 在標籤不多的情況下,使用非監督式嵌入 + Random Cut Forest 來尋找候選的異常點,然後透過遷移學習和 XGBoost 來啟動監督式模型,以實現精簡、快速的推論;SageMaker 服務提供了一個整合且可擴展的開發與監控工作流程。
← 探索性資料分析與視覺化 · 所有領域 · 深度學習與電腦視覺 →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →