譯者 | 朱先忠
審校 | 孫淑娟
如今,資料科學被廣泛用於創建數位孿生(Digital Twins)-數位孿生是現實世界實體系統或製程的數位對應物,可用於輸入行為、監控、維護、規劃等的模擬和預測。雖然諸如認知客戶服務機器人這類數位孿生在日常應用中很常見,但在本文中,我將透過舉例說明行業中的兩種不同類型的數位孿生,來比較用於建模這兩種不同類型孿生的數據科學技術。
本文討論的數字孿生的兩個廣泛使用的數據科學領域如下:
a)診斷和預測分析:在這種分析方法中,給定一系列輸入,由數位孿生來診斷原因或預測系統的未來行為。基於物聯網的機器學習模型用於創建智慧機器和工廠。透過此模型,可即時分析感測器的輸入,以診斷、預測並在未來問題和故障發生之前預防它們。
b)規定性分析(Prescriptive Analytics):這種分析方法對整個網路進行模擬,以便在給定一組要遵守的變數和約束條件的情況下,從在大量候選方案中確定最佳或可行的解決方案,通常目標是最大限度地實現規定的業務目標,如吞吐量、利用率、產出等。這些最佳化問題被廣泛應用於供應鏈計劃和調度領域,例如當物流供應商為其資源(車輛、人員)創建一個時間表,以便最大限度地準時交貨;也例如當製造商創建一個計劃,以便優化機器和操作員的使用,從而實現最大限度的OTIF(On Time In Full,即「按時按量」)交貨。這裡使用的資料科學技術是具有約束條件的數學最佳化,此演算法使用功能強大的求解器來解決複雜的決策驅動問題。
總之,ML模型根據歷史記錄資料來預測給定輸入功能集的可能結果,而最佳化模型可以幫助您決定,如果預測結果發生,您應該如何規劃解決/緩解/利用它,因為您的企業有幾個可能相互競爭的目標,您可以選擇用有限的資源來實現這些目標。
資料科學的這兩個領域在共享一些工具(如Python函式庫)的同時,調動具有完全不同技能的資料科學家-他們通常需要不同的思考方式和商業問題建模方法。因此,讓我們嘗試了解和比較所涉及的方法,以方便在一個領域經驗豐富的資料科學家能夠理解並交叉利用可能適用於另一個領域的技能和技術。
為了進行比較,讓我們考慮一個基於ML的生產根本原因分析(RCA:Root Cause Analysis)過程的孿生模型,其目的是診斷成品或製造過程中發現的缺陷或異常的根本原因。這將有助於部門經理根據工具的預測排除最可能的根本原因,最終確定問題並實施CAPA(Corrective & Preventive actions:糾正和預防措施),快速且無需花費太多人力即可瀏覽所有機器維護記錄、操作員歷史記錄、流程SOP(Standard Operating Procedure:標準作業程序)、物聯網感測器輸入等。目標是最小化機器停機時間、生產損失並提高資源利用率。
從技術上講,這可以被認為是一個多類別分類問題。在該問題中,假設存在一定的缺陷,那麼模型會試圖預測一組可能的根本原因標籤中每一個標籤的機率,例如機器相關、操作員相關、製程說明相關、原材料相關或其他方面的相關性,以及在這些一級分類標籤下屬的例如機器校準、機器維護、操作員技能、操作員培訓等細粒度原因。儘管這種情況的最佳解決方案需要評估若干個複雜的ML模型,但為了強調本文的目的,讓我們作一下簡化——假設這是一個多項式邏輯回歸問題(原因將在下一節中明確)。
為了進行比較,我們不妨考慮一個生產計畫流程的最佳化孿生模型,它產生一個時間表,根據機器、操作員、流程步驟、持續時間、原材料到達時間表、到期日期等,試圖最大化目標,如產量或收入。這樣的自動化時間表有助於組織快速調整資源,以應對來自市場的新機會(如新冠肺炎引起的藥物需求),或透過改變其原材料、供應商、物流供應商和客戶/市場組合,最大限度地減少不可預見事件(如最近的供應鏈瓶頸)的影響。
在建模任何業務問題的基本層面上,開發此類數位孿生需要考慮以下因素:
A、輸入特徵或維度
B、輸入資料— —這些維度的值
C、輸入到輸出的轉換規則
D、輸出或目標
接下來,讓我們更深入地分析和比較機器學習( ML)和約束條件下最佳化模型中的這些因素:
A、輸入特徵:這些是系統中的資料維度,既適用於ML,也適用於最佳化。對於試圖診斷生產過程中問題的ML模型而言,需要考慮的特徵可能包括:物聯網輸入、機器維護歷史資料、操作員技能和訓練資訊、原料品質資訊、遵循的SOP(標準作業程序:Standard Operating Procedure)等內容。
同樣,在約束條件下的最佳化環境中,需要考慮的特徵會包括:設備可用性、操作員可用性、原材料可用性、工作時間、生產率、技能等製定最佳生產計劃所需的典型特徵。
B、輸入資料:這是上述兩種方法以明顯不同的方式使用特徵值的地方。其中,ML模型需要大量的歷史資料用於訓練。然而,在將資料提供給模型之前,通常需要進行與資料準備、管理和標準化相關的大量工作。需要注意的是,歷史記錄是實際發生的事件的記錄(例如機器故障或導致輸出不足的操作員技能問題),但通常不是這些特徵所能獲得的所有可能值的簡單組合。換言之,事務歷史記錄會包含更多的那些頻繁發生的場景下的記錄,而其他一些場景中的記錄相對較少——可能很少包含很少發生的場景。訓練模型的目標是,使之能夠學習特徵和輸出標籤之間的關係,並且能夠預測準確的標籤——即使是在針對訓練資料中存在很少甚至不存在特徵值或特徵值組合的情況下。
另一方面,對於最佳化方法而言,特徵值通常保留為其實際的數據,例如,天數、批次、截止日期、按日期列出的原材料可用性、維護計劃、機器轉換時間、工藝步驟、操作員技能等。與ML模型的關鍵區別在於,輸入資料處理需要將主資料特徵值(例如,天數、技能、機器、操作員、流程類型等)的每種可能的有效組合產生索引表,從而形成可行解決方案的一部分。例如,操作員A在一週的第一天使用機器M1,以S1的技能等級執行流程的步驟1,或操作員B在第二天使用M1的機器,以S2的技能等級執行步驟1;甚至對於操作員、機器、技能等級、日期等的每一種可能的組合,而不考慮這些組合是否在過去實際發生過。這將導致提供給優化引擎的輸入資料記錄集非常大。最佳化模型的目標是在最大化(或最小化)目標方程式的同時,選擇符合所給定限制的特定特徵值組合。
C、輸入到輸出的轉換規則:這也是兩種方法的一個顯著差異。雖然ML和最佳化模型都基於高等數學理論,但與ML相比,在最佳化方法中對複雜的業務問題進行數學建模和程式設計通常需要付出更多的努力,這將在下面的介紹中體現出來。
原因在於,在ML中,借助於類似scikit-learn這樣的開源函式庫,Pytorch或Tensorflow等框架乃至雲端服務提供者的ML/深度學習模型,將輸入轉換為輸出的規則完全交給模型來查找,其中也包括為了導出最佳規則(權重、偏差、激活函數等)而進行損失校正方面的任務。資料科學家的主要責任是確保輸入特徵及其值的品質和完整性。
而對於最佳化方法來說,並非如此,因為輸入如何相互作用並轉換為輸出的規則必須透過使用詳細的方程式進行編寫,然後提供給Gurobi、CPLEX等求解器,以便找到最佳或可行的解決方案。此外,將業務問題表述為數學方程式需要深入了解建模過程中的相互關係,並需要資料科學家與業務分析師密切合作。
下面,讓我們透過針對問題RCA(根本原因分析)應用程式的邏輯迴歸模型示意圖來說明這一點:
##邏輯迴歸ML模型注意,在這種情況下,根據輸入資料來產生結果的規則(Zᵢ)計算任務留給模型來推演,而資料科學家通常忙於使用定義良好的混淆矩陣、RMSE等度量技術以可視化方式來實現精度預測。 我們可以將此與透過最佳化方法產生生產計劃的方式進行比較:#(I)第一步是定義封裝計畫流程的業務規則(限制)。
以下是一個生產計劃的範例:首先,我們定義一些輸入變數(其中一些可以是決策變量,用於驅動目標):以及一些係數:
在這種情況下,一些約束(規則)可以使用以下方式來實作:
a)在計畫中,特定批次只能啟動一次。
其中,對於每批產品,Bt是批次總數,Pr是產品總數,D是計劃中的天數:
b)一個產品每天只能在一個操作員或機器上啟動一次。
對於每個產品的每一天,其中Op是所有操作員的集合,Mc是所有機器的集合:
c)批次(所有產品)花費的總時間不應超過當天操作員和機器的可用小時數。
對於每個操作員而言,存在以下約束:
#對於每台機器的每一天而言,存在如下約束:
d)如果操作員在計畫的前5天內處理一批產品,則必須將同一產品的所有其他批次分配給同一操作員。這可以保持運營商的連續性和生產力。
對於每個操作員和每個產品,每天d(從第6天起)存在如下約束:
以上是需要在程式中編寫的數百個限制條件中的一小部分,以便將實際生產調度場景的業務規則形成數學方程式。請注意,這些限制是線性方程式(或更具體地說,是混合整數方程式)。然而,它們與邏輯迴歸ML模型的複雜度差異還是非常明顯的。
(II)一旦確定了限制條件,就需要定義輸出目標。 這是一個關鍵步驟,可能是一個複雜的過程,如下一節所述。
(III)最後,將輸入決策變數、限制條件和目標傳送給求解器,以獲得解決方案(時間表)。
描述基於最佳化方法的數位孿生的示意圖如下:
最佳化模型
D、輸出或目標:對於ML模型,根據問題的類型(分類、迴歸、聚類),可以很好地建立輸出和度量其準確性的指標。雖然我不會在本文中深入探討這些問題,但鑑於現有的大量信息,值得注意的是,可以高度自動化地評估各種模型的輸出,例如領先的CSP(AWS Sagemaker、Azure ML等)的輸出。
評估最佳化模型是否產生正確的輸出更具挑戰性。最佳化模型透過嘗試最大化或最小化稱為“目標”的計算表達式來工作。與限制條件一樣,目標部分是由資料科學家根據業務試圖實現的目標進行設計的。更具體地說,這是透過將獎勵條件和罰款條件附加到決策變數來實現的,優化器試圖將其總和最大化。對於現實世界的問題,需要多次迭代才能找到不同目標的正確權重,以便在有時相互矛盾的目標之間找到良好的平衡。
為了進一步說明上述生產調度範例,我們不妨設計以下兩個這樣的目標:
a)時間表應預先加載;應盡快安排批次,計劃中剩餘的產能應在計劃的最後。為此,我們可以為一個批次附加一天罰款,該批次在計劃中的每一天都會逐漸增加。
b)另一方面,我們也希望對同一產品的批次進行分組,以便資源(操作員和機器)部分得到最佳利用,前提是批次滿足交貨期限,並且組在一次運行中不超過機器容量。因此,我們定義了一個Batch_group_bonus,如果將批次安排在較大的群組中而不是安排在較小的群組中,它將提供更高的獎金(因此在下面的表達式中為指數)。需要注意的是,這有時可能會與之前的目標交叉,因為今天可能開始的一些批次將與幾天后可用的更多批次一起開始,這可能會導致在計劃的早期留下一些未充分利用的資源。
根據求解器的工作方式,實際實作方法中往往需要一個批次組決策變數。但是,這表達出如下一個概念:
求解器將最大化目標,即有:
目標=Batch_group_bonus Day_penalty
目標的上述兩個組成部分中,哪一個對時間表的給定日期影響更大取決於權重W₁,W₂以及時間表的日期,因為在時間表的後期,天數懲罰值將逐漸變大(i值越高)。如果天數懲罰值在某一點上大於Batch_group_bonus,則規劃解算器會發現不安排批次是明智的;因此,即使計劃中還有資源容量,也會招致零懲罰,從而安排並招致淨負懲罰,從而使目標最大化。這些問題需要由資料科學家來進行故障排除和解決。
基於上述討論可以推測出,一般來說,最佳化專案比ML專案要花費更多的精力。在開發過程的幾乎每個階段,最佳化都需要大量的資料科學工作。具體總結如下:
a)輸入資料處理:在ML和最佳化中,這都是由資料科學家完成的。 ML資料處理需要選擇相關的特徵、標準化、離散化等。對於文本等非結構化數據,它可以包括基於NLP的方法,如特徵提取、標記化等。目前,存在基於多種語言的庫,可用於特徵統計分析以及PCA等降維方法。
在最佳化中,每個業務和計劃都存在需要納入模型的細微差別。最佳化問題不處理歷史數據,而是將每一個可能的數據變化和已識別的特徵組合成決策變數和限制必須依賴的索引。雖然與ML不同,但資料處理需要大量的開發工作。
b)模型開發:如上所述,最佳化方案的模型製定需要資料科學家和業務分析師的大量努力來製定約束條件和目標。求解器運行數學演算法,雖然它的任務是同時求解數百個甚至數千個方程式以找到解決方案,但它沒有業務背景。
在ML中,模型訓練是高度自動化的,演算法會打包為開源函式庫API,或是由雲端服務供應商打包。高度複雜、經過預先訓練的神經網路模型是基於業務特定數據,將訓練任務簡化為最後幾層。 AWS Sagemaker Autopilot或Azure AutoML等工具甚至可以自動化輸入資料處理、特徵選擇、訓練和評估不同模型和輸出產生的整個過程。
c)測試與輸出處理:在ML中,可以用最少的處理來利用模型的輸出。它通常很容易理解(例如,不同標籤的機率),儘管可能需要一些努力來引入其他方面,例如結果的可解釋性。輸出和錯誤視覺化也可能需要付出一些努力,但與輸入處理相比,這些努力並不多。
在這裡,最佳化問題也需要迭代的手動測試,並藉助規劃專家的訓練有素的眼睛進行驗證,以評估進度。雖然求解器試圖最大化目標,但從進度品質的角度來看,這本身通常沒有什麼意義。與ML不同,不能說高於或低於閾值的目標值包含正確或錯誤的計劃。當發現一個時間表不符合業務目標時,問題可能與限制、決策變數或目標函數有關,需要仔細分析,以找出大型複雜時間表中異常的原因。
此外,需要考慮的是將求解器的輸出解釋為人類可讀格式所需的開發。求解器輸入決策變量,這些變數是計劃中實際物理實體的索引值,例如批次組索引、批次優先索引、操作員和機器索引,並傳回已選取的值。需要進行反向處理,將這些索引值從各自的資料幀轉換為連貫的時間表,該時間表可以由專家直觀地呈現和分析。
d)最後,即使在操作階段,與訓練階段相比,ML模型產生觀測預測所需的計算和時間要少得多。然而,每次都是從頭開始建立時間表,每次運行都需要相同的資源。
下圖是ML和最佳化專案各階段相對工作量的粗略說明:
ML與最佳化相對工作量比較示意圖
機器學習和最佳化解決了企業的互補問題;因此,ML模型的輸出與最佳化相互促進,反之亦然。 AI/ML應用程序,如物聯網預測維護和故障檢測、AR/VR遠端維護和前面提及的生產過程RCA構成製造商的互聯工廠策略的一部分。
優化應用程式構成了供應鏈規劃的基礎,可以認為是將業務策略與營運連結起來。它們有助於組織應對和計劃不可預見的事件。例如,如果在生產線中偵測到問題,RCA(根本原因分析:Root Cause Analysis)工具將有助於生產線經理快速縮小可能的原因範圍,並採取必要的措施。然而,這有時可能會導致機器意外停機或操作指令的重新指派。因此,可能需要用可用的縮減後產能來重新產生生產計劃。
可以將ML專案的經驗應用於最佳化專案中;反之亦然。例如,對於最佳化輸出至關重要的目標函數,有時業務部門在數學建模方面的定義不如約束好,約束是必須遵守的規則,因此通常是眾所周知的。舉例來說,業務目標如下:
a)在遵守交貨期限的同時,應盡可能提早按照優先順序安排批次。
b)時間表應預先載入;應安排盡可能小的時間間隔和低的資源使用率。
c)批次應分組,以有效利用容量。
d)對高價值產品具有較高技能水平的操作員最好分配此類批次。
這其中的一些目標可能存在需要適當平衡的相互競爭的優先級關係,這導致資料科學家在編寫複雜的影響因素組合(如獎金和罰款)時,通常通過似乎適用於最常見的規劃場景的嘗試和錯誤來完成;但有時在出現缺陷時,邏輯上很難理解和維護。由於最佳化求解器通常使用第三方產品,因此,其程式碼對於建立要偵錯的模型的資料科學家來說通常是不可用的。這樣一來,不可能看到在調度生成過程中的任何特定點上,某些獎金和罰款取了什麼值,而正是這些值使其行為正常,這使得編寫令人信服的目標表達式非常重要。
因此,上述辦法有助於採用獎金和罰款的標準化,這是一種廣泛使用的ML做法。然後,可以使用配置參數或其他方式,以受控的方式縮放標準化值,以便控制每個因素的影響、它們彼此之間的關係以及其中每個因素中的前一個和後一個的值。
總之,機器學習和約束最佳化都是解決組織和日常生活中不同問題的高階數學方法。它們都可用於部署實體設備、流程或網路資源的數位孿生。雖然這兩種類型的應用程式都遵循相似的高階開發流程,但ML專案可以利用函式庫和雲端本地演算法中提供的高度自動化,而最佳化需要業務和資料科學家的密切合作以充分實現對複雜的規劃過程的建模。一般來說,最佳化類別專案需要更多的開發工作,並且是資源密集的。在實際開發中,ML和優化工具在企業中往往需要協同工作,這兩種技術對資料科學家來說都很有用。
朱先忠,51CTO社群編輯,51CTO專家部落格、講師,濰坊一所大學電腦教師,自由程式設計界老兵一枚。
原文標題:#Digital Twin Modeling Using Machine Learning and Constrained Optimization##Digital Twin Modeling Using Machine Learning and Constrained Optimization,作者:Partha Sarkar
###以上是基於機器學習和約束優化的數位孿生建模的詳細內容。更多資訊請關注PHP中文網其他相關文章!