機器學習項目如何管理:看板

在前面的文章中我們看到,涉及機器學習、人工智慧的項目,普遍地存在項目管理的困難。然後我介紹了針對這類項目如何設置合理的期望,並且深入分析了機器學習項目的工作內容。既然已經知道如何設置客戶的期望、又知道可以做哪些事來逼近這個期望,那麼圍繞期望和動作進行任務的拆解、管理和可視化應該是順理成章的。

在前一篇文章中我們已經看到,一個機器學習項目涉及的三類九項工作內容當中,只有一項(「自行訓練模型」,上圖右下角標星星的部分)不是傳統的軟體開發任務。只有針對這項工作內容,我們需要新的任務拆解和管理方式,其他部分可以用標準的Scrum方法來處理。

對於「自行訓練模型」過程中的具體任務,可以沿用學校里做實驗的概念,將每次模型訓練記錄為一次「實驗」。每次實驗應該包含兩個部分:

  • 輸入部分,即實驗的初始狀態:數據從哪裡來;如何對原始數據加工;選取哪些參數;如何訓練模型
  • 輸出部分,即實驗的效果:模型是否準確描述訓練集;模型是否overfit訓練集;有多少false positive;有多少false negative

於是我們得到了一張「實驗卡」,上半部分記錄實驗輸入,下半部分記錄實驗輸出。

把若干張實驗卡放在一個看板上,就得到了可視化的實驗管理牆。在項目啟動時,首先制定一部分實驗計劃(以一批實驗卡的形式),記錄每個實驗設計的輸入部分。每做完一個實驗,就在對應的實驗卡上記錄實驗輸出。在項目進展過程中,也可以不斷增加新的實驗卡。項目過程中,做實驗的優先順序由上一篇文章中介紹的「自行訓練模型的流程」來判斷:從一個簡單的模型開始,首先嘗試能降低Bias的實驗,當Bias逼近期望時,再做降低Variance的實驗。

作為項目管理者,對著這樣一面實驗看板牆,需要關注的信息有以下幾個方面:

  • 看產出:實驗效果(Bias-Variance組合)是否逼近預期?接下來應該做哪些實驗?
  • 看計劃:實驗計劃是否完備?是否考慮到各種可能的演算法?是否考慮到各種數據來源?是否考慮到各種數據加工方式?
  • 看進度:做實驗的速度有多快?訓練集獲取是否耗時太長?模型訓練是否耗時太長?是否需要優化訓練演算法?是否需要增加計算資源?是否需要提高數據流水線自動化水平?

用這種方法,我們可以把看似神秘的機器學習項目拆解成獨立、可討論、有價值、可估計工作量、相對較小、可測試(INVEST)的實驗卡,於是我們可以用Scrum方法來管理和度量圍繞這些卡開展的工作。

? 作者保留一切權利,未經許可請勿轉載

推薦閱讀:

TAG:機器學習 | 人工智慧 | 項目管理 |