機器學習專案規劃

規劃機器學習專案與規劃一般軟體工程專案不同。機器學習專案的性質並非線性,且不確定度不大。這需要疊代方法和實驗精神。

專案不確定性

初期規劃可能很難,因為在開始專案時,最佳做法通常並不是最明確的做法。這種本質上存在的不確定性,使得預估時間難度變得困難。

近期的 Kaggle 競賽展現了機器學習專案的不確定性。在競賽的前幾週,有 350 個團隊參與了。部分團隊將基準預測品質從 35% 提高到 65%。在接下來的兩週中,解決問題的團隊數量從 350 個增加至 1400 個。然而,最佳模型的預測品質只會達到 68%。

圖 3 顯示了大量作業的大量增加,但模型品質僅有大幅成長,說明機器學習開發的不確定性。

圖片顯示團隊數量在兩週內從 350 增加到 1400,但模型品質只提升了 3%。

圖 3:在兩週時間內,解決問題的團隊數量增加了 4 個因素,但模型品質幾乎不變,突顯您在預估機器學習解決方案的成果時相當困難。

換句話說,超過 1000 個團隊 (每個團隊都會實驗各種資料轉換、架構和超參數) 都只有產生預測品質達 68% 的模型。

產業的一個範例說明瞭機器學習專案的非線性性,其中輸出內容與輸入內容不成比例。兩個團隊花了幾個月的時間,將模型的預測品質提高至 90%。不過,為了在實際工作環境準備模型,模型的預測品質達到 99.9%,但多了幾個團隊超過五年的時間。

這些範例突顯出,可用於實際工作環境的機器學習是探索過程,同時需要科學和工程思維。

實驗方法

在大多數情況下,機器學習開發比較像是進行實驗,而不是在執行傳統軟體工程。機器學習需要測試不同的功能、試用多種架構,然後恰當調整超參數。就理論上,實驗不保證會成功。因此,建議您使用實驗架構進行規劃。

接著我們來看看典型的軟體工程計畫,瞭解這與機器學習專案計畫有何不同。

規劃軟體工程專案

在一般的軟體工程計畫中,您需要定義需求、概述元件、預估工作,以及排定工作時程。有明確的解決路徑舉例來說,工程師通常知道要完成建構符合設計規格的應用程式,他們必須完成多少工作。

預測完成工作所需時間時,他們可以依據類似專案來估算工作。雖然難以預測的依附元件或需求不斷改變,但往往會遇到困難,但有時可能難以預估,而有清楚的解決方案路徑。

相反地,機器學習專案通常不會有單一的成功途徑。

規劃機器學習專案

在大多數的機器學習專案中,只要在試驗和錯誤過程中嘗試多種做法,就能找到最佳解決方案。通常在嘗試解決問題之前,您通常不會知道問題的最佳解決方案。舉例來說,最佳解決方案的架構可能是簡單的線性模型、類神經網路,也可能是決策樹。唯有嘗試各種方法,才能發現最佳解決方案。

這種模稜兩可的做法讓規劃工作變得更加困難。如先前所述,預測機器學習專案所需的工作並不容易唯有嘗試解決問題,才能更瞭解解決方案可能需要的時間和資源。

以下建議策略來規劃機器學習工作:

  • 找出工作的時間。請明確設定時間範圍來完成工作,或嘗試特定解決方案。舉例來說,您可能想分配兩週的時間,決定是否能存取正確的資料。如果您取得資料,那麼再考慮再指定兩週,看看簡單的模型是否指出機器學習解決方案是否可行。如果簡易模型失敗,您可以將該模型另外指定兩週來試用類神經網路。在每個時間範圍結束時,您將可擁有更多資訊,判斷是否要繼續對問題套用資源。

  • 縮小專案需求範圍。如果機器學習解決方案看起來很不錯,但並非您產品或服務的重要功能,請界定其需求。例如,當您規劃下一季的工作時,可能會計劃嘗試十分簡單的解決方案。在後續幾季中,您可能會計劃不斷改進解決方案。許多團隊是透過長期下來的流程逐步改進機器學習解決方案,這是許多團隊成功取得具影響力的機器學習解決方案的方式。

  • Intern 或 Noogler 新進專案。指導實習生或 Noogler 新成員嘗試機器學習解決方案專案結束後,您就會更清楚機器學習解決方案需要投入的心力,也或許具有潛力的研究方法,或者是否該將資源放在其他地方。

不論採用哪種策略,都一定要盡快失敗。嘗試以最低的費用嘗試,但可能要最高的報酬率最高。如果這個方法有效 您就會找到一個很好的解決方案如果要求不存在,您就沒有浪費許多時間和資源。

隨著團隊累積經驗和接觸實驗的機會,他們可以更準確地預估實驗可能需要的努力,讓規劃更加準確。不過,實驗的結果幾乎總是不明,因此無法事先預估需要的實驗數量才能找出最佳解決方案。

以實驗思維規劃方法有助於團隊順利邁向成功。當執行方法可能會死去,而不是被我們也放棄,團隊成員就會瞭解這是尋找機器學習解決方案程序中不可或缺的一部分。更重要的是,與相關人員討論機器學習開發過程中的不確定性,您就能設定更實際的期望。

注意事項

學習規劃多種機器學習方法都需要時間和經驗。您的專案計畫可能需要經常更新。當您的團隊透過多種方法進行實驗時,不妨將這項工具視為持續演變的動態文件。只要專注於下列關鍵構想,就能提高成功機率:

  • 評估每種做法的費用和成功機率。
  • 嘗試一系列的方法。
  • 請找出汲取的經驗教訓,並逐一嘗試改善系統。
  • 規劃失敗計畫。

有時早期做法有助於取得突破性進展。有人可能會發現資料產生管道或訓練驗證分割的錯誤。仔細規劃和詳盡的說明文件,可讓您更順利找到可以及早解決業務問題的模型。