實驗有助於提高專案的可行性。它們是可測試且可重現的假設。執行實驗時,目標是評估各種模型架構和功能,持續不斷地進行改善。進行實驗時,建議您執行下列操作:
判斷基準成效。請先建立「基準」指標。基準的作用是評估對照實驗的成效。
在某些情況下,目前的非機器學習解決方案可提供第一個基準指標。如果目前沒有解決方案,請建立採用簡單架構和幾項功能的機器學習模型,並使用其指標做為基準。
進行小幅變更。一次只進行一項小幅變更,例如對超參數、架構或功能進行一項小幅變更。如果變更內容改善了模型,則該模型的指標將成為新的基準,與未來實驗進行比較。
以下列舉只有一項小幅調整的實驗:
- 並納入「X」X特徵。
- 請在第一個隱藏層使用 0.5 捨棄功能
- 系統會運用 Y 功能的記錄檔轉換。
- 請將學習率變更為 0.001
記錄實驗進度。您可能需要進行大量實驗相較於基準,實驗的預測品質不彰 (或中立) 品質低落,依然能有效追蹤。它們會指出哪些方法無法運作。由於進度通常不是線性,因此除了要提高基準品質的進度之外,也要凸顯所有發現無效的方法,務必表明您使用的是非線性問題。
由於實際資料集上的每個完整訓練可能需要數小時 (或數天) 的時間,因此建議您同時執行多項獨立實驗,以便快速探索空間。隨著不斷疊代,您可能會想更接近實際工作環境,達到實際工作環境所需的品質。
實驗結果中的雜訊
請注意,您可能會在實驗結果中遇到雜訊,而非模型或資料變更,因而難以判斷您所做的修改是否確實改善了模型。以下是可能在實驗結果中產生雜訊的實例:
資料重組:資料提供給模型的順序會影響模型的效能。
變數初始化:模型變數的初始化方式也可能會影響模型的效能。
非同步平行處理:如果使用非同步平行處理模型進行訓練,模型不同部分的更新順序也可能會影響模型的效能。
小型的評估集:如果評估集太小,可能無法代表模型的整體效能,導致模型品質產生不平均的變化。
多次進行實驗有助於確認實驗結果,
配合實驗做法保持一致
您的團隊應該要能清楚瞭解「實驗」是什麼,並具有一套定義的做法和構件。建議您查看當中包含下列資訊的說明文件:
構件。實驗有哪些構件?在大多數情況下,實驗是可重現的經過測試的假設,通常透過記錄中繼資料 (如功能和超參數) 顯示實驗之間的變化,以及它們如何影響模型品質。
編寫程式碼的做法。每個人都會使用自己的實驗環境嗎?在共用程式庫中,所有使用者的工作成果會有多大 (或簡單)?
重現及追蹤問題:可重現性有哪些標準?例如,團隊應使用相同的資料管道和版本管理做法 還是只顯示圖表?系統會如何儲存實驗資料:做為 SQL 查詢或模型快照?我們會在哪裡記錄每項實驗的記錄:在文件、試算表或 CMS 中用來管理實驗的記錄?
預測錯誤
現實生活中沒有完美的模型,系統會如何處理錯誤預測?請盡早開始思考如何處理。
最佳做法策略可以鼓勵使用者正確標示錯誤的預測結果。例如,郵件應用程式會記錄使用者移至垃圾郵件資料夾的郵件和反向郵件,藉此擷取分類錯誤的電子郵件。您可以擷取使用者的實際標籤,藉此為資料收集和重新訓練模型設計自動化意見回饋迴圈。
請注意,雖然使用者介面內嵌的問卷調查會擷取使用者的意見回饋,但資料通常具有質化性質,因此無法納入重新訓練的資料中。
導入端對端解決方案
在您的團隊對模型進行實驗時,建議您從最終管線的階段著手 (如果有足夠的資源)。
建立管道的不同部分 (例如取用資料及重新訓練模型) 可更輕鬆地將最終模型移至實際工作環境。舉例來說,取得用於擷取資料及執行預測作業的端對端管道,可以幫助團隊開始將模型整合至產品,並開始執行早期使用者測試。
解決專案停滯問題
專案進度可能就會出現。也許您的團隊一直在執行出色的實驗,但數週都沒有成功改善模型。這時該怎麼做呢?以下是一些可行的方法:
策略。您可能需要重構問題。花時間進入實驗階段後,您可能需要更瞭解問題、資料和可能的解決方案。深入瞭解相關領域後 您就能更準確地構思問題
舉例來說,假設您一開始想使用線性迴歸來預測數值,遺憾的是,資料不足以訓練可營利的線性迴歸模型。或許進一步分析,預測範例是否高於或低於特定值,就能找出問題解決方式。這可讓您將問題重新置中為二元分類。
如果進度比預期慢,請勿放棄。解決問題的唯一方法可能是隨著時間逐漸增加。如前文所述,逐週的進度不會相同。通常,要產生可用於實際工作環境的模型版本,通常需要耗費大量時間。模型改善項目可能會不規律且無法預測,進度緩慢的一段時間可能是改善幅度的高峰,或是反過來。
技術。將時間用來診斷及分析錯誤的預測結果。在某些情況下,您可以隔離幾項錯誤的預測,並診斷模型在這些情況下的行為,藉此找出問題。例如,您可能會找到架構或資料的問題。在其他情況下,取得更多資料會有所幫助。您可能會獲得較明確的信號,指出您採取了正確的做法,或者可能產生更多雜訊,指出方法中的其他問題。
如果您在處理需要人工加上標籤的資料集的問題,可能很難取得已加上標籤的資料集以便用於模型評估。尋找可用資源,取得評估所需的資料集。
問題可能沒有解。為方法排定時間,如果您在時間範圍內尚未取得進展,請停止執行。不過,如果您提出的問題非常有力,則可能需要解決問題。