Amazon MLS-C01: 深度學習與電腦視覺 — 學習指南
屬於 AWS Machine Learning Specialty MLS-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
架構、遷移學習與模型選擇
像 ResNet 和 Inception 家族這類的卷積骨幹網路,仍然是視覺任務的主力:ResNet (50/101) 為深層特徵層級提供穩定的殘差學習,而 Inception 模組則提供多尺度特徵聚合,有助於處理不同大小的物件。在現代的權衡取捨中,EfficientNet 和 MobileNet 優先考慮 FLOPs 與準確度的平衡,使其成為行動/邊緣裝置的強力選擇。在 AWS 的實務上,應從預先訓練好的 ImageNet 權重(可在 TorchVision、TensorFlow Hub 或透過 SageMaker 訓練容器取得)開始,並透過替換分類頭來應用遷移學習,對骨幹層使用遠低於新初始化頭部的學習率。對於小型資料集,先凍結早期層,然後分階段逐步解凍,以避免災難性遺忘。決策標準:對於大型資料集和對延遲容忍度較高的端點(ml.p3 或 ml.p4 執行個體),選擇較重的骨幹網路(ResNet101, Inception-ResNet);當透過 SageMaker Neo 或 AWS IoT Greengrass 部署到資源受限的裝置時,則選擇輕量級骨幹網路(MobileNetV3, EfficientNet-lite)。一個常見的陷阱是,在微調時使用與從頭訓練時相同的高學習率;正確做法應是採用差異化學習率、使用權重衰減,並透過監控特徵空間的層激活值和驗證損失中的過擬合信號,來驗證可轉移性。
訓練實務、資料增強與資料集/標註考量
高品質的標註資料是建立可靠視覺模型的基礎。使用 Amazon SageMaker Ground Truth 來建立標註工作流程,可標註邊界框、多邊形或語義遮罩,並強制執行私有工作團隊、IAM 限制和 S3 KMS 加密,以符合資料存取控制的要求。透過共識和審核回合來減少標註雜訊,並使用主動學習來優先處理模糊或罕見的樣本。對於小型或不平衡的資料集,採用積極且適合任務的資料增強方法:例如光度變換、隨機裁剪、旋轉、cutout,以及用於偵測任務的 mixup 或 mosaic 增強;使用類別平衡採樣、focal loss 或類別加權的交叉熵來處理嚴重的類別不平衡問題。分割資料以避免洩漏:對於使用者或商店層級的相依性,應執行分組或基於時間的分割,而非單純的隨機分割;一個常見的陷阱是在訓練/驗證/測試集之間洩漏了未來的時間戳,或同一物件的多張圖片。對於醫療或受監管的資料,應為 SageMaker 訓練任務啟用網路隔離,使用 KMS 加密 S3,透過 VPC 端點限制筆記本存取,並使用 Secrets Manager 輪換憑證。使用 SageMaker Experiments 來追蹤實驗和指標,以關聯資料增強、學習率和正規化選擇的效果。
物件偵測與分割:架構、指標與陷阱
物件偵測的選擇包括像 YOLO 和 RetinaNet 這類追求即時吞吐量的單階段偵測器,以及像 Faster R-CNN 這類追求更高準確度和小型物件定位的雙階段偵測器。加入特徵金字塔網路 (FPN) 以改善多尺度偵測;使用 Mask R-CNN 或 DeepLabv3+ 來執行實例分割和語義分割任務。錨點 (Anchors)、IoU 閾值和非極大值抑制 (NMS) 會嚴重影響結果:應根據資料集中的物件尺度來調整錨點的大小/長寬比,並選擇適當的 IoU 來分配正/負樣本。評估時必須使用跨不同 IoU 等級的 mAP (AP50, AP75),並加上各類別的召回率/精確率曲線——單純依賴準確率會掩蓋定位失敗的問題。在 AWS 工作流程中,可使用帶有 PyTorch/TensorFlow 容器的 SageMaker 訓練來處理自訂架構,將帶有 Ground Truth 清單檔案的資料集儲存在 S3 中,並使用 SageMaker Processing 任務進行驗證。常見的陷阱包括在推論時使用過大的輸入尺寸(會增加延遲),或忽略物件數量的類別不平衡問題;優化方法可透過應用特定類別的資料增強、使用加權損失,或採用雙階段訓練(即先用一個通用偵測器,再接上各類別的精煉器)。對於生產環境,應將模型匯出為 ONNX 或 TorchScript 格式,並驗證匯出後的輸出與訓練時的輸出是否一致,以避免算子不匹配的問題。
GPU 與邊緣裝置的推論優化、部署與監控
要優化推論,需要對整個管線進行剖析 (profiling),而不僅僅是 GPU 的運算部分。GPU 使用率低落通常源於 CPU 綁定的前處理、過小的批次大小 (batch size)、同步端點的延遲,或是 I/O 等待。使用 SageMaker Debugger 和 CloudWatch 指標進行剖析以找出瓶頸,然後採取對策:增加批次大小或使用非同步推論;將模型轉換為 TorchScript/ONNX 並在 NVIDIA 支援的執行個體上啟用 TensorRT 優化;在 p4/p3 執行個體上使用混合精度 (AMP/bfloat16);使用 SageMaker Neo 針對目標硬體進行編譯,或部署 Elastic Inference 將部分加速能力附加到 CPU 執行個體上,以應對中等吞吐量的需求。對於邊緣部署,可使用 SageMaker Edge Manager 或 AWS IoT Greengrass,搭配經由 Neo 編譯的模型,並應用量化 (quantization) 和剪枝 (pruning) 來縮小模型尺寸,並在可能的情況下於裝置上執行批次處理。設定 SageMaker 多模型端點或預置並行 (provisioned concurrency) 來處理冷啟動問題,並根據 GPU 記憶體使用率和請求延遲來設定自動擴展策略。同時,啟用 Model Monitor 來偵測輸入資料漂移,並使用 SageMaker Model Registry 進行受控的模型晉升。常見的陷阱包括:編譯模型時使用了 Neo 不支援的操作 (ops),或忘記為私有 S3 存取配置 IAM 角色和 VPC 端點,這會導致部署失敗。
實務問題:使用案例情境
情境: QuickServe 公司營運一套地端的銷售點 (point-of-sale) 系統,並使用 SageMaker 進行模型訓練與推論;來自店內攝影機的影像儲存在一個私有的 S3 儲存貯體中,並使用 KMS 加密。他們希望建立一個生產管線,用來偵測收銀台的排隊長度,並將一個輕量級模型部署到邊緣裝置上,以提供即時警示。
挑戰: 建立並部署一個準確、低延遲的排隊計數模型,此模型需尊重資料安全性(私有 S3、KMS),能在資源受限的邊緣硬體上運行,同時還要能安全地使用新的標記資料進行重新訓練。
建議方法:
- 使用預訓練的 MobileNetV3 骨幹(在 SageMaker PyTorch 容器中),針對儲存在 KMS 加密的 S3 中、經由 Ground Truth 標記的邊界框 (bounding box) 進行微調,以訓練一個偵測器;按店家分組資料以避免資料洩漏。
- 使用資料增強(隨機裁剪、水平翻轉、亮度抖動)和 focal loss 來處理排隊與非排隊影像幀之間的類別不平衡問題;使用 AP50 和各類別的召回率 (recall) 進行驗證。
- 將模型匯出為 TorchScript/ONNX,使用 SageMaker Neo 針對邊緣裝置進行編譯,並透過 AWS IoT Greengrass 或 SageMaker Edge Manager 進行部署,同時搭配模型簽署和僅允許必要 S3 成品的 IAM 角色。
- 透過定期批次上傳資料到 S3 來監控效能,執行 SageMaker Processing 任務以進行資料漂移偵測,並在 SageMaker 中使用 S3 裡有版本控制的資料集和 Model Registry 進行重新訓練,再以受控的方式推展到邊緣裝置。
基本原理: 此方法利用高效率的遷移學習和針對特定裝置的編譯來滿足延遲和大小的限制,透過 KMS 和 IAM 強制執行安全性,並實作一個受監控的重新訓練迴圈,以在防止資料洩漏的同時維持準確性。
← 模型建立 — 監督式與非監督式 (經典 ML) · 所有領域 · 自然語言處理與語音 →
練習這些題目 → · 在 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.
通過考試 →