機器學習工作流程

AI Platform 推動機器學習 (以下簡稱 ML) 工作流程的許多部分。本文將說明 ML 的整個流程,讓您具備 AI Platform 服務的背景資訊。

機器學習工作流程

下圖提供機器學習工作流程中各階段的概要總覽。藍底方塊表示 AI Platform 在該處提供代管服務和 API:

機器學習工作流程
機器學習工作流程

如要開發及管理可在實際工作環境使用的模型,您必須完成下列階段:

  • 設定資料來源並準備資料。

  • 開發模型。

  • 根據資料訓練 ML 模型:

    • 訓練模型
    • 評估模型準確率
    • 微調超參數
  • 部署經過訓練的模型。

  • 將預測要求傳送至模型:

    • 線上預測
    • 批次預測
  • 持續監控預測。

  • 管理模型和模型版本。

這些階段具有疊代性質,您可能需要在程序中隨時重新評估及回到前一步驟。

本頁的其餘部分會詳細說明這些階段。

開始之前先評估問題

開始思考如何解決 ML 的問題之前,請先花些時間想想目前要解決的問題。請詢問自己下列問題:

您要解決的是一個定義明確的問題嗎?

使用 ML 來辨識資料模式時,可以採用的方法很多。但重點是,必須定義您試著要從模型中取出的資訊,以及您需要這項資訊的原因。

ML 是問題的最佳解決方案嗎?

受監督的 ML (本說明文件所述的 ML 樣式) 非常適合某些類型的問題。

如果您可以取得用來訓練模型的大量資料時,則應該只考慮使用 ML 來解決問題。資料量多少才夠,並沒有絕對的答案。在模型中,每加入一個特徵 (資料屬性),就會增加正確訓練模型所需的樣本 (資料記錄) 數量。如需特徵工程的相關指南,請參閱 ML 最佳做法的說明。

您還必須考慮將資料集分成三個子集:一個用於訓練、一個用於評估 (或驗證),還有一個用於測試。

研究是否還有其他替代方案,可以提供更簡單、更具體的方式來解決問題。

如何評估模型是否成功?

建立 ML 模型的最大挑戰之一,就是如何知道模型開發階段已經完成。我們很容易無止盡地修改模型,準確率卻提高的不多。開始程序之前,您應該瞭解成功的意義為何。請考慮能滿足您需求的準確度,以及相對應的錯誤程度造成的後果。

設定資料來源並準備資料

您必須能夠存取一組大型的訓練資料,這組資料含有您能夠依據其他屬性 (在 ML 中稱為「特徵」)「推論」(預測) 出來的特徵。

舉例來說,假設您希望模型預測一間房屋的售價。首先要有一組大型資料,這些資料必須說明指定區域內的房屋特性,包括每間房屋的售價。

資料分析

設定資料來源後,您必須分析和瞭解資料,然後準備資料做為訓練程序的輸入內容。例如,您必須執行以下步驟:

  • 彙整多個來源的資料,並合理化成一個資料集。
  • 以視覺化方式呈現資料以找出趨勢。
  • 使用以資料為中心的語言和工具,找出資料模式。
  • 識別資料的特徵。這些特徵可構成您在模型中使用的資料屬性子集。
  • 清理資料,找出資料輸入或量測錯誤造成的任何異常值。

資料預先處理

在預先處理步驟中,您必須將有效且乾淨的資料轉換成最符合模型需求的格式。以下是一些資料預先處理的範例:

  • 將數字資料按照一般規格正規化
  • 將格式化規則套用至資料。例如,從文字特徵移除 HTML 標記。
  • 透過簡化作業減少冗餘資料。例如,將文字特徵轉換成詞袋表示法。
  • 以數字方式表示文字。例如,指派值給類別特徵中的每個可能值。
  • 指派索引鍵值給資料樣本。

GCP 支援資料探索及準備

TensorFlow 有數個預先處理程式庫,可讓您搭配 AI Platform 一起使用,例如 tf.transform

您可以部署自訂預測處理常式 (Beta 版),以確保 AI Platform 在預測時預先處理輸入的方式與訓練期間預先處理資料的方式相同。

此外,請考慮下列 GCP 服務:

  • Cloud Datalab 支援許多資料探索和準備的組成工作。例如,您可以利用 Cloud Datalab 筆記本內嵌的動態圖形,以視覺化方式分析資料。

  • BigQuery 是全代管的資料倉儲服務,允許使用標準 SQL 對即時資料進行隨機分析。

  • Cloud Dataproc 是用來執行 Apache SparkApache Hadoop 叢集的全代管雲端服務。

  • Cloud Dataflow 是全代管服務,能轉換串流 (即時) 模式和批次 (過往) 模式的資料,讓資料多樣化並維持一貫的穩定與明確性。

  • Cloud Dataprep 是智慧型無伺服器的資料服務,針對結構化與非結構化資料提供一目了然的探索、清除及準備功能。

撰寫模型程式碼

使用已建立的機器學習技術或定義新的作業與方法,藉此開發您的模型。

您可以從瀏覽 TensorFlow 入門指南開始學習,然後閱讀 AI Platform 說明文件提供的範例;這些範例是專為與 AI Platform 搭配使用而開發。

訓練、評估及調整模型

AI Platform 提供在雲端訓練和評估模型的必要服務。此外,AI Platform 還提供超參數調整功能,可以最佳化訓練程序。

訓練模型時,您可以將已知目標資料屬性 (特徵) 值的資料提供給模型。執行模型以預測訓練資料的這些目標值,讓模型能調整其設定來更充分配合資料,並藉此提供更準確的目標值預測。

同樣地,評估訓練模型時,您可以將含有目標值的資料提供給模型。比較模型預測的結果與評估資料的實際值,然後使用適合模型的統計技術來評量是否成功。

您還可以變更控制訓練程序使用的作業或設定 (例如要執行的訓練次數),以調整模型。這種技術稱為「超參數調整」

測試模型

訓練期間,將模型套用於已知資料以調整設定,進而改善結果。結果足以滿足應用程式需求時,您應將模型部署到應用程式所使用的任何系統,並進行測試。

如要測試模型,請於最吻合終端應用程式和實際工作環境的基礎架構,使用模型執行資料處理。

使用與訓練和評估所用資料集不同的資料集。理想情況下,您應在每次測試時都使用一組不同資料,這樣才能以模型之前未處理過的資料來測試模型。

您可能還要依模型性質,建立幾組不同的測試資料。例如,您可以使用特定位置或時間點的不同資料集,或拆分樣本以模仿不同的人口統計。

在測試過程中,您可以依據測試結果來調整模型參數和超參數。您可能會發現模型的問題,或模型與應用程式其餘部分互動的問題。

在雲端託管模型

AI Platform 提供將訓練好的 ML 模型上傳至雲端的工具,方便您將預測要求傳送給模型。

為了在 AI Platform 上部署訓練過的模型,您必須使用機器學習架構提供的工具來儲存訓練過的模型。這個程序必須將代表訓練過模型的資訊序列化並儲存到檔案,然後您可以在雲端部署此檔案以執行預測功能。

之後,再將已儲存的模型上傳至 Cloud Storage 值區,並且在 AI Platform 上建立模型資源,然後為已儲存的模型指定 Cloud Storage 路徑。

部署模型時,您也可以提供自訂程式碼 (Beta 版) 來自訂模型處理預測要求的方式。

將預測要求傳送至模型

AI Platform 提供在雲端中要求模型進行預測的必要服務。

有兩種方法可以取得訓練過模型的預測:「線上預測」(有時稱為「HTTP 預測」) 和「批次預測」。在這兩種情況下,您都可以將輸入資料傳遞給在雲端託管的機器學習模型,並取得每個資料樣本的推論。

監控預測服務

持續監控預測作業。AI Platform 提供 API,可檢查執行中的工作。此外,還有各種 GCP 工具支援部署模型的作業,例如 Stackdriver 工具。

管理模型和模型版本

AI Platform 提供各種用於管理模型和版本的介面,其中包括 REST API、gcloud ai-platform 指令列工具及 GCP 主控台。

後續步驟

  • 您可以依入門指南進行以體驗完整的 AI Platform 工作流程。
  • 檢視完整的指南
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
TensorFlow 適用的 AI Platform