Skip to Content

什麼是機器學習工作流程?

機器學習工作流程是開發、訓練、評估和部署機器學習模型的系統化流程。它包含一系列步驟,引導從業人員完成機器學習專案的整個生命週期,從問題定義到解決方案部署。 

為什麼機器學習工作流程很重要?

機器學習工作流程有助於: 

  • 清晰度和專注力:定義明確的工作流程有助於明確定義專案目標、角色和責任,讓所有團隊成員都能協調並專注於達成預期和預期的成果。
  • 效率與生產力:結構化工作流程提供系統化的方法,以處理複雜的機器學習專案。這樣可以提高效率和生產力,因為它有助於組織任務、管理資源,並有效追蹤進度。
  • 品質保證:使用結構化的工作流程可協助您有系統地執行機器學習流程的每個階段,這有助於在專案生命週期的早期發現並解決潛在問題。
  • 再現性和擴充性:定義明確的工作流程記錄了開發過程中採取的所有步驟,使複製結果變得更容易,並提供框架,讓您可以適應和重新使用未來專案。
  • 風險管理:機器學習工作流程透過在專案生命週期的早期發現潛在風險和不確定性來改善風險管理,使您能夠實施主動緩解策略,從而降低專案故障的機會。

什麼是機器學習工作流程的典型步驟?

典型的機器學習工作流程包含以下階段:

問題定義,在這裡您可以清楚定義要解決的問題,並建立專案目標。此步驟涉及了解業務背景、識別相關資料來源,以及定義關鍵績效指標。

資料收集與預處理,您可在此收集來自不同來源的必要資料並進行預處理,以確保資料乾淨、一致,並準備好進行分析。此步驟可能涉及資料清理、功能工程和資料轉換等任務。

探索性資料分析(EDA),您可以在此探索資料,以獲得深度資訊,並識別模式、趨勢和關係。EDA 有助於了解資料的特性,並就功能選擇、模型選擇和資料預先處理策略做出決策。

模型選擇與訓練,您可以根據問題需求與資料特性選擇適當的機器學習演算法與技術,使用準備好的資料訓練所選的模型,並使用適當的評估指標來評估其效能。

模型評估和調校,您可以在此使用驗證技術,如交叉驗證和超參數調校方法來評估訓練模型的效能,以優化模型的效能。

模型部署與監控,在生產環境中部署經過訓練的模型,將其整合到現有系統中,在現實情境中監控模型效能,並根據需要進行更新,以確保持續有效。

讓我們更深入探討每個階段。 

定義問題

若要定義問題:

1. 了解您的業務目標

定義問題的第一步是了解更廣泛的業務目標。這意味著與利害關係人密切合作,找出您想透過機器學習處理的關鍵業務挑戰或機會。

2. 擬定問題陳述

基於這些業務目標,設計出清晰簡明的問題陳述。本聲明應說明需要預測、分類或優化的內容,以及它如何與您的整體業務目標保持一致。它還應考慮資料可用性、可行性和潛在影響等因素。

3. 定義成功標準

建立可衡量的成功標準或關鍵績效指標(KPI),供您用來評估機器學習解決方案的效能。它們應該與問題陳述和預期的業務成果保持一致。

4. 識別資料需求和限制

識別解決問題的資料要求,包括資料類型(結構化或非結構化)、來源、品質考量,以及與資料使用相關的任何監管或道德限制。事先了解資料限制,將有助於您設定實際的期望,並規劃資料擷取和預先處理策略。

5. 風險評估

進行初步風險評估,找出與問題定義相關的潛在風險和挑戰。這包括與資料品質、模型複雜度、可解讀性、法規遵循和業務影響相關的風險。在專案初期制定風險緩解策略,有助於主動應對這些挑戰。

6. 記錄問題定義

最後,記錄問題定義,包括問題陳述、成功標準、資料需求、範圍、限制和風險評估結果。這份文件將成為所有利害關係人的參考,並協助確保機器學習工作流程的一致性。

資料收集

為機器學習專案收集相關資料是重要步驟,可大幅影響模型的效能與成果。 

以下是收集資料的逐步流程,以及確保資料可靠性和品質的秘訣:

1. 定義目標

清楚定義機器學習專案的目標。了解您想回答的問題和想解決的問題。這將引導您努力收集資料,以收集最相關的資訊。

2. 識別資料來源

決定在哪裡可以找到您需要的資料。資料來源會因專案性質而異,但常見來源包括: 

  • Kaggle、UCI Machine Learning Repository 和政府資料庫等網站。 

  • API:許多組織提供 API 以程式化方式存取資料。

  • 網路刮除:使用漂亮的湯品或刮除等工具從網站擷取資料。

  • 內部資料庫:如適用,請使用儲存在您組織資料庫中的資料。

  • 調查或訪談:透過調查或訪談,直接向使用者或領域專家收集資料。

3. 評估資料品質

在收集資料之前,請評估其品質,以確保其適用於您的專案。請考量下列因素:

  • 準確度:資料是否沒有錯誤或不一致之處?

  • 完整性:資料集是否涵蓋所有必要的變數和記錄?

  • 一致性:資料值在不同來源或期間內是否一致?

  • 關聯性:資料是否包含達成您的目標所需的資訊?

  • 及時性:資料是否是最新且與您的分析相關?

  • 資料收集方法:您是否已根據資料來源選擇適當的資料收集方法?

4. 記錄資料來源和處理步驟

維護資料來源、收集方法、預處理步驟,以及任何資料轉換的全面文件。這份文件對於透明度、再現性與協作至關重要。

5. 反覆運算

資料收集是一個反覆的過程。當您分析資料並優化模型時,您可能需要對現有資料集進行額外的資料或調整。持續評估資料的關聯性與品質,以提升機器學習模型的準確度與效能。

資料預處理

資料預先處理是準備原始資料,以用於機器學習和資料科學專案分析的過程。它涉及清理、轉換和組織資料,以確保資料適合建模和分析。它還有助於資料品質、功能工程、模型效能和資料相容性。 

以下是資料預先處理的一些關鍵面向,以及處理遺失資料、異常值和資料正常化的指示:

1. 處理遺失資料

首先,找出資料集中遺漏值的欄或功能。然後,根據缺失資料的性質,選擇適當的插補方法,例如平均值、中位數、模式,或使用預測模型來填寫缺失值。如果遺失值過多或無法可靠插補,請考慮捨棄資料遺失的列或欄。對於類別功能,請考慮新增一個類別以表示遺失值,或使用模式插補等技術來計算類別變數。

2. 處理異常值

若要處理離群值:

  • 使用箱形圖、Z 分數或 IQR(四分位距)等統計方法,以識別數值資料中的異常值。
  • 從資料集中移除極端異常值。
  • 用最接近的非異常值取代極端值,以加蓋極端值。
  • 應用對數、平方根或 Box-Cox 等轉換,使資料更常分配,並減少離群值的影響。
  • 請諮詢領域專家,以驗證可能代表資料真正異常或錯誤的異常值。

3. 資料標準化

資料標準化的步驟為:

a. 標準化(Z 分數標準化):將數值特徵轉換為 0 的平均值和 1 的標準差。它有助於將功能擴展到類似的範圍,使其可比擬。

b. 最小-最大擴展:將功能擴展到特定範圍,通常在 0 到 1 之間,以保持資料點之間的相對關係。

c. 強大的擴展功能:使用強而有力的擴展技術,如:RobustScaler 可根據中位數和四分位距來擴展資料,從而降低對離群值的敏感度。

功能工程

功能工程涉及將原始資料轉換為更適合建模的格式。它專注於建立新的功能、選擇重要功能,以及改變現有功能,以提升機器學習模型的效能。功能工程對於模型的準確度、減少過度裝配,以及強化模型的概括能力非常重要。

以下是一些常見功能工程技術的說明和範例:

單熱編碼

單熱編碼可將類別變數轉換成數值格式,並輸入機器學習演算法。它為每個類別建立二進位欄,其中 1 表示該類別的存在,另外 0 表示存在。舉例來說,請考慮使用 "Red"、"Green" 和 "Blue" 等類別的 "Color" 功能。單次編碼後,此功能會轉換成三個二進位功能:"Is_Red,"Is_Green," 和 "Is_Blue,",其中每個功能都代表該顏色的存在。

功能擴展

功能擴充讓數值功能達到類似的規模或範圍。它有助於演算法更快速融合,並防止規模較大的功能在訓練期間佔據主導地位。常見的擴展技術包括上述標準化和最低-最高 

降低維度

維度縮減技術可降低功能數量,同時保留大部分相關資訊。這有助於降低計算複雜性、改善模型效能,並避免尺寸化。

功能擷取

功能擷取涉及使用數學轉換、領域知識或文字處理技術,從現有功能中建立新的功能。產生多項多項式組合功能,以擷取資料中非線性的關係,就是一個例子。另一個例子是使用 TF-IDF、文字內嵌或字袋表示等方法將文字資料轉換為數字功能。 

型號選擇

為特定任務選擇合適的機器學習模式,是機器學習工作流程的關鍵步驟。它涉及到各種因素,例如問題的性質、可用資料、所需的模型特性(例如可解讀性、準確性)和計算資源。 

以下是選擇模型過程中的關鍵步驟和考量事項:

1. 了解問題

首先,確定問題是分類、迴歸、叢集還是其他類型的任務。您需要了解功能、目標變數、資料大小、資料分配,以及資料中任何固有的模式或複雜度。

2. 選擇候選人模式 

利用領域專業知識,找出常見且適合領域內類似任務的模型。其中的一個重要部分是考量不同類型的機器學習模型,例如線性模型、樹狀模型、支援向量機器(SVM)、神經網路、集合方法等,以問題類型和資料特性為基礎。

3. 評估模型的複雜性和可解讀性

考慮模型的複雜性及其在資料中擷取複雜關係的能力。更複雜的模型,如深度學習神經網路,可能提供更高的預測精準度,但運算成本高昂,且容易過度擬合。根據應用程式和利害關係人的需求,決定模型的可解讀性是否至關重要。線性迴歸或決策樹等簡易模型,比起深度神經網路等複雜的黑箱模型,可更輕易解讀。

4. 考慮績效指標

對於分類任務,請根據類別不平衡和業務目標,考慮準確度、精確度、召回、F1-score、ROC-AUC 等指標。對於迴歸任務,您可以使用平均方差(MSE)、平均絕對誤差(MAE)、R-方差等指標來評估模型效能。使用適當的驗證技術,例如交叉驗證、訓練測試分割或時間式驗證(針對時間序列資料),以完整評估模型效能。

5. 比較和驗證模型

從簡單的基準模型開始,建立效能基準。使用適當的訓練/驗證資料集來訓練多個應徵者模式,並使用所選的指標來評估他們的績效。使用網格搜尋、隨機搜尋或貝氏最佳化等技術微調模型的超參數,以提升效能。

6. 選擇最佳模型

考量模型複雜度、可解讀性、運算資源和效能指標之間的權衡,然後評估保留測試資料集上表現最佳的模型,以確保其在看不見資料上的廣義能力。

7. 迭代與精煉

模型選擇通常是反覆的過程。如果您選擇的模型不符合期望的標準,可以精簡功能工程、超參數或嘗試不同的演算法,直到達到令人滿意的結果。

模型訓練

訓練機器學習模型涉及將所選的演算法與訓練資料相配合,以學習資料中的模式和關係。此流程包含將資料分割為訓練與驗證組、最佳化模型參數,以及評估模型的效能。 

讓我們仔細看看這些步驟:

1. 資料分割

將資料集分成訓練和驗證/測試組。典型的拆分比率為 70-30 或 80-20 以進行訓練/驗證,確保驗證組合代表資料的實際分佈。

2. 選擇演算法

根據您的問題類型(分類、迴歸、叢集)和資料特性,選擇適當的機器學習演算法或演算法組合來訓練模型。

3. 實現模型

初始化所選模型的參數,以建立其實例。舉例來說,在 Python with Scikit-Learn 中,你可能會使用下列程式碼:

從 sklearn.linear_model 匯入 LogisticRegression

模型 = LogisticRegression()

4. 訓練模型

使用 .fit()方法根據訓練資料調整模型。此步驟涉及學習資料中的模式和關係。

5. 優化模型參數

執行超參數調校,以最佳化模型的效能。常見的技術包括網格搜尋、隨機搜尋或貝氏最佳化。

6. 模型評估

使用驗證/測試集評估訓練模型的效能。計算相關指標,如準確度、精確度、召回、F1-score(分類用)或平均平方誤差。

7. 最終車型選擇

一旦對模型在驗證集上的效能感到滿意,請使用整個訓練資料集(包括驗證資料)重新訓練最終模型,以在部署前最大化學習成效。

模型部署

選擇並訓練模型後,即可開始部署。 

部署步驟包括:

1. 模型序列化

將經過訓練的模型序列化為適合部署的格式。常見的格式包括 pickle(Python)、PMML(預測模型標記語言)、ONNX(開放式神經網路交換),或根據使用的架構自訂格式。

2. 與生產環境整合

選擇適當的部署環境,例如雲端平台(AWS、Azure、Google Cloud)、地端伺服器或容器化解決方案(Docker、Kubernetes)。使用特定於所選部署環境的框架或程式庫(例如 Flask for web API、TensorFlow Serving 或 PyTorch 服務,以服務模型),將模型整合至生產環境。

3. 可擴充性考量

設計部署架構,以處理各種負載和可擴充性需求。考量並行使用者、批次處理與資源利用等因素。使用雲端自動擴展功能或容器調度工具,根據需求進行動態擴展。考慮將資料中心現代化以擴展 AI。 

4. 即時預測

必要時,確保模型部署支援即時預測。這涉及到設定低延遲端點或服務,以快速處理傳入的預測請求。請考慮運用模型量化、剪除等技術,或根據部署環境使用硬體加速器(例如 GPU、TPU),來最佳化模型推論速度。

5. 監控與效能指標

實施監控解決方案,以追蹤模型在生產中的效能。監控預測延遲、傳輸量、錯誤率和資料漂移(輸入資料分佈隨時間的變化)等指標。為關鍵績效指標設定警示和門檻,以迅速偵測並回應問題。

6. 版本與模型更新

為部署的模型建立版本控制策略,以追蹤變更,並在必要時協助復原。實施流程,根據新資料或改善的演算法來部署模型更新或重新訓練週期。請考慮 A/B 測試等技術,以便在完全部署前比較生產中的模型版本。

7. 安全性與合規性

實施安全措施,以保護部署的模型、資料和端點免於未經授權的存取、攻擊和資料外洩。確保遵循法規要求,例如 GDPR、HIPAA 或與資料隱私和模型部署相關的產業特定標準。

8. 文件記錄與合作

維護已部署模型的詳細文件,包括其架構、API、相依性與配置。促進資料科學家、工程師和利害關係人之間的合作,反覆進行模型改善、解決問題,並納入來自真實世界使用的意見回饋。

結論

您現在已經了解結構化機器學習工作流程的重要組成部分,包括定義問題、資料預先處理、功能工程、模型選擇、訓練和評估等關鍵步驟。 

每個步驟對機器學習專案的整體成功都扮演著關鍵角色。準確定義問題,為開發目標解決方案奠定基礎,而資料預先處理可確保資料品質與分析適用性。功能工程透過從資料中擷取有意義的資訊來增強模型效能。選擇模型時,需要根據複雜度、可解讀性和效能指標等因素選擇最適合的演算法,接著進行全面的訓練、最佳化和評估,以確保模型的強大效能。

透過遵循結構化的工作流程,資料科學家可以提高效率、維持模型完整性,並在整個專案生命週期中做出明智的決策,最終產生更準確、可靠和有影響力的機器學習模型,為組織和利益相關者提供真正的價值。

然而,所有機器學習工作流程的主要挑戰之一是瓶頸。機器學習訓練資料集通常遠遠超過伺服器中的 DRAM 容量。為這些瓶頸做好準備的最佳方式,是透過 AI 和 ML 基礎架構,如 AIRI® 或 FlashStack® 來防止它們。深入了解 Pure Storage 如何協助您加速 AI 和 ML 計畫

03/2024
High-Performance AI for State and Local Government
AI has the potential to transform national, state, and local governments. Here’s how AIRI, AI-ready infrastructure by Pure Storage and NVIDIA, can help.
解決方案簡介
4 頁面
聯繫我們
問題或建議

如對Pure的產品或認證,有任何的疑問或建議,歡迎與我們聯繫!

預約試用

預約現場示範,親眼看看 Pure 如何幫助您將資料轉化為強大的成果。 

聯絡我們:886-2-3725-7989

媒體:pr@purestorage.com

 

Pure Storage總部

34F, Taipei Nanshan Plaza,

No. 100, Songren Road,

Xinyi District,

Taipei City 110016

Taiwan (R.O.C.)

800-379-7873 (一般資訊)

info@purestorage.com

關閉
您的瀏覽器已不受支援!

較舊版的瀏覽器通常存在安全風險。為讓您使用我們網站時得到最佳體驗,請更新為這些最新瀏覽器其中一個。