組織構建一個可行的、可靠的、敏捷的機器學習模型來簡化操作和支持其業務計劃需要耐心、準備以及毅力。
各種組織都在為各行業中的眾多應用實施人工智能項目。這些應用包括預測分析、模式識別系統、自主系統、會話系統、超個性化活動和目標驅動系統。每一個項目都有一個共同點:它們都基于對業務問題的理解,并且數據和機器學習算法必須應用于解決問題,從而構建一個能夠滿足項目需求的機器學習模型。
部署和管理機器學習項目通常遵循相同的模式。然而,現有的應用程序開發方法并不適用,因為人工智能項目是由數據驅動的,而不是編程代碼。學習來源于數據,因此正確的機器學習方法源于以數據為中心的需求,并產生專注于數據發現、清理、培訓、模型構建和迭代階段的項目。
對于許多組織來說,機器學習模型開發是一項新活動,但是在某種程度上已經建立了以數據為中心的項目構建方法。
大約25年前,一個由五家供應商組成的聯盟開發了跨行業的數據挖掘標準流程(CRISP-DM),該流程專注于數據挖掘項目中各種數據密集型步驟的連續迭代方法。該方法從業務理解和數據理解之間的迭代循環開始。接下來是數據準備和數據建模之間的迭代循環的切換,然后是評估階段,它將結果分解到部署和業務理解。這種循環的、迭代的循環導致了連續的數據建模、準備和評估。
但跨行業的數據挖掘標準流程(CRISP-DM)的進一步開發似乎已經停滯在近20年前完全生產的1.0版本上,而在15年前還發布其第二個版本。IBM公司和微軟公司對這種方法進行了更新和迭代,以生成它們自己的變體,這些變體為數據處理和建模之間的迭代循環添加了更多細節,并提供了在此過程中產生的工件和可交付成果的更多細節。
此外,這種方法由于并不敏捷或不適用于人工智能和機器學習項目而受到質疑。因此需要增強諸如人工智能的認知項目管理之類的方法,以滿足人工智能特定的要求,并且可以在具有現有敏捷開發團隊和數據組織的組織中實施這些方法。
這些方法論以及大型公司及其數據科學團隊的學習,因此采用了一種更強大、更靈活的分步方法來進行機器學習模型開發,以滿足認知項目的特定需求。
步驟1.了解并識別業務問題(并定義成功)
任何機器學習項目的第一階段都是發展對業務需求的理解。在解決問題之前,組織需要知道要解決的問題。
首先,與項目所有者合作,并確保組織了解項目的目標和要求。目的是將這些知識轉換為適合機器學習項目的定義,并制定實現該項目目標的初步計劃。需要回答的關鍵問題包括:
•需要認知解決方案的業務目標是什么?
•解決方案的哪些部分是認知的,哪些并沒有認知?
•是否解決了所有必要的技術、業務和部署問題?
•項目定義的“成功”標準是什么?
•項目如何在迭代沖刺階段進行?
•是否對透明度、可解釋性或減少偏見有特殊要求?
•道德方面的考慮是什么?
•精度和混淆矩陣值可接受的參數是什么?
•對模型的預期輸入和預期輸出是什么?
•要解決的問題的特征是什么?這是分類、回歸還是聚類問題?
•什么是“啟發式”:解決不需要機器學習的問題的快速方法?模型需要比啟發式方法好多少?
•如何衡量模型的收益?
盡管在第一個步驟中有很多問題要回答,但是回答甚至嘗試回答這些問題將會顯著增加整個項目成功的機會。
設定具體、可量化的目標將有助于從機器學習項目中實現可測量的投資回報率,而不是簡單地將其作為一個概念證明來實現,稍后將被擱置一邊。其目標應該與組織業務目標相關,而不僅僅是機器學習。雖然機器學習特定的度量(例如精度、準確性、召回率和均方誤差)可以包含在指標中,但更具體的業務相關關鍵績效指標(KPI)更好。
步驟2. 理解和識別數據
一旦對業務需求有了深刻的了解并獲得了計劃的批準,就可以開始建立機器學習模型了,是嗎?這種想法是錯誤的。建立業務案例并不意味著組織擁有創建機器學習模型所需的數據。
機器學習模型是通過對訓練數據進行學習和概括而構建的,然后將獲取的知識應用于從未見過的新數據中進行預測并實現其目的。數據不足將會阻止組織構建模型,而僅訪問數據是不夠的。有用的數據必須是干凈的并且處于良好的狀態。
確定組織的數據需求,并確定數據是否適合機器學習項目。組織的重點應放在數據識別、初始收集、需求、質量識別、見解和潛在的值得進一步研究的方面。以下是一些需要考慮的關鍵問題:
•訓練模型所需的數據源在哪里?
•機器學習項目需要多少數據?
•當前培訓數據的數量是多少?質量如何?
•如何拆分測試集數據和訓練集數據?
•對于監督學習任務,是否可以標記這些數據?
•可以使用預訓練的模型嗎?
•操作和培訓數據位于何處?
•在邊緣設備上或更難以到達的地方訪問實時數據是否有特殊需求?
回答這些重要問題有助于組織處理數據的數量和質量,并了解使模型正常工作所需的數據類型。
此外,組織需要了解模型如何在實際數據上運行。例如,該模型是否可以離線使用,以批處理模式對異步輸入和處理的數據進行操作,還是可以實時使用并在高性能要求下運行以提供即時結果?這些信息還將確定所需的數據類型和數據訪問要求。
組織還要確定模型是否將在迭代中訓練,定期或實時部署其版本。實時訓練對數據提出了許多要求,這些要求在某些設置中可能不可行。
在人工智能項目的這一階段,了解真實世界數據和培訓數據以及測試數據和培訓數據之間是否存在任何差異,以及組織將采取何種方法來驗證和評估模型的性能,這一點也很重要。
步驟3.收集并準備數據
一旦正確地識別了數據,組織就需要對這些數據進行格式化,以便可以使用它來訓練其模型。重點是構建用于建模操作的數據集所必需的以數據為中心的活動。數據準備任務包括數據收集、清理、聚合、擴充、標記、規范化和轉換以及結構化、非結構化和半結構化數據的任何其他活動。
•數據準備、收集和清理過程中的程序包
•從各種來源收集數據。
•跨不同數據源標準化格式。
•替換不正確的數據。
•增強和擴充數據。
•添加更多具有預先計算數量的維度,并根據需要匯總信息。
•使用第三方數據增強數據。
• “倍增”基于圖像的數據集,如果這些數據集不足以進行培訓。
•刪除無關的信息和重復數據。
•從培訓中刪除無關的數據以改善結果。
•減少噪音并消除歧義。
•考慮匿名化數據。
•標準化數據以使其進入格式化范圍。
•來自大型數據集的樣本數據。
•選擇可標識最重要尺寸的特征,并在必要時使用多種技術減小尺寸。
•將數據分為訓練、測試和驗證集。
數據準備和清理任務會花費大量時間。對機器學習開發人員和數據科學家的調查表明,數據收集和準備步驟最多可占用機器學習項目80%的時間。俗話說“垃圾進、垃圾出”。由于機器學習模型需要從數據中學習,因此花費在準備和清理上的時間是值得的。
步驟4.確定模型的特征并訓練模型
一旦數據處于可用狀態,并且組織知道要解決的問題,就到了組織希望做出的下一步:訓練模型,以通過應用范圍從已準備好的高質量數據中學習技術和算法。
這一階段需要模型技術的選擇和應用,模型訓練、模型超參數設置和調整、模型驗證、集成模型開發和測試、算法選擇以及模型優化。為此,需要執行以下操作:
•根據學習目標和數據要求選擇正確的算法。
•配置和調整超參數以獲得最佳性能,并確定獲得最佳超參數的迭代方法。
•確定提供最佳結果的功能。
•確定是否需要模型可解釋性。
•開發集成模型以提高性能。
•測試不同型號的性能。
•確定模型的運行和部署要求。
然后可以評估結果模型以確定其是否滿足業務和運營要求。
步驟5.評估模型的性能并建立基準
從人工智能的角度來看,評估包括模型度量評估、混淆矩陣計算、KPI、模型性能度量,模型質量度量以及模型是否可以滿足已建立的業務目標的最終確定。在模型評估過程中,應該執行以下操作:
•使用驗證方法和驗證數據集評估模型。
•確定分類問題的混淆矩陣值。
•確定k-折疊交叉驗證的方法(如果使用該方法)。
•進一步調整超參數以獲得最佳性能。
•將機器學習模型與基準模型或啟發式模型進行比較。
模型評估可以視為機器學習的“質量保證”。根據指標和要求對模型性能進行充分評估,可以確定模型在現實世界中的工作方式。
步驟6.實驗并調整運行中的模型
當組織確信機器學習模型可以在現實世界中工作時,那么是時候看看它在現實世界中的實際運行了,也稱之為“可操作性”模型:
•部署模型以持續測量和監視其性能。
•制定基準,以可用來衡量模型的未來迭代。
•不斷迭代模型的不同方面,以提高整體性能。
模型的操作化可能包括在云計算環境中,邊緣、內部部署或封閉環境中或封閉的受控組中的部署方案。在運營方面的考慮因素包括模型版本控制和迭代、模型部署、模型監視以及開發和生產環境中的模型分段。根據需求,模型的操作范圍可以從簡單地生成報告到更復雜的多端點部署。
步驟7.實驗和調整模型
即使模型是可運行的,并且組織一直在監視其性能,也還沒有結束。在實施技術時,通常會說成功的秘訣是從小處開始,大處思考,并經常進行迭代。
始終重復該過程并及時進行改進以進行下一次迭代。業務需求不斷發生變化,而技術能力也在不斷變化。實際數據以意想不到的方式變化。所有這些都可能對將模型部署到不同端點或新系統中提出新要求。而結束可能只是一個新的開始,因此最好確定以下內容:
•對模型功能的下一個要求;
•擴大模型培訓以涵蓋更大的能力;
•改善模型的性能和準確性;
•改進模型的運行性能;
•不同部署的操作要求;
•針對“模型漂移”或“數據漂移”的解決方案,這些解決方案可能會由于實際數據的變化而導致性能變化。
組織需要反思在其模型中哪些有效,哪些是正在進行的工作。要在機器學習模型構建中取得成功,最可靠的方法就是不斷地尋找改進和更好的方法來滿足組織不斷發展的業務需求。
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。