iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
AI & Data

然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)系列 第 9

[Day 09] 建立機器學習模型 — Andrew Ng 大神說要這樣做

AI system = Code (Algorithm/Model) + Data

TL;DR

建立 ML 系統時,要把 AI system = Code + Data 的概念謹記在心。
在很多應用情況中,Code 其實一開始就解決了 (從 Github 下載的模型已經很讚),因此多花點時間來改善 Data 是更有效率的作法,因為它通常會更貼近要解決的問題。

建立模型

modeling
希望大家在前兩天的部署實作玩得開心,接著我們要前進到機器學習產品生命週期的"上"個階段,建立模型 (Modeling)。

建立模型是一個迭代的實驗過程,因此能快速走完迴圈是提昇表現的關鍵,另外在每次迴圈中,正確地選擇該如何修正模型、超參數、資料對表現也很重要,當經過數次迴圈得到不錯的模型之後,在把它部署進產品之前,建議再做一次深度的錯誤分析,並對系統進行最後評斷 (audit) 來確保它的可行性。:
modeling iteration
*圖片修改自 MLEP, Selecting and training a model — Key challenges

資料本位模型開發 (Data-centric Modeling)

[Day 03] 機器學習產品生命週期 — 救救我啊我救我 時有提到過在產業上,若目標是要建立一個運作良好的系統,更好的作法是盡可能固定程式碼,然後專注於優化資料的品質,這樣的想法就是 Andrew Ng 在 A Chat with Andrew on MLOps: From Model-centric to Data-centric AI 提到的資料本位模型開發。
資料本位模型開發與傳統模型本位的差別如下:
Data centric
而將建立模型的迭代過程與資料本位的觀點融合就是以資料本位改善模型表現的作法 — Data iteration:
Data iteration
*圖片修改自 Introduction to Machine Learning in Production

著重在增加與改善資料品質!

何時才算開發完成?

既然開發模型是迭代的過程,那麼何時才能停止這個迴圈呢,大部分專案在產品化前都必須 "依序" 達成以下三個里程碑:

  1. 在訓練集表現良好 (通常由平均訓練誤差來衡量)。
  2. 在驗證(development)/測試(test)集表現良好。
  3. 在商業指標 (business metrics)、專案目標 (project goals) 表現良好。

過去的機器學習發展都著重於驗證、測試時的表現,但這樣與達成商業目標還有一段差距,因此只達到很低的平均測試誤差是不夠的 (雖然已經很有挑戰性)!
但在測試表現已經很好的前提下,要達成這個里程碑可能遇到一些挑戰,明天我們就來看看是哪些挑戰吧。
/images/emoticon/emoticon09.gif

參考資料


上一篇
[Day 08] 使用 fastAPI 部署 YOLOv4 (2/2) — 自行撰寫 Client 進行互動
下一篇
[Day 10] 模型達到商業指標的挑戰 — Test set performance 的殞落
系列文
然後模型就死在 Jupyter Notebook 了 (ಥ﹏ಥ)30

尚未有邦友留言

立即登入留言