在如今機器學習的浪潮中,機器學習相關的崗位日益增多,而運籌優化的崗位卻相對較少。這是今年我秋招過程中看到的現象。企業越來越希望候選人不僅能建模求解,還能理解如何用數據驅動優化。需要我們有一個完整的技術棧。那么我們就來看看OR與ML的關系,探索一下兩者結合的方向,以便認清后續發展道路。
首先,ML和OR并非替代關系,而是互補協同的兩種決策科學工具。
ML擅長預測:從歷史數據中學習模式;OR擅長決策:在資源約束下尋找最優解或可行解。
1.ML for OR
1.1 ML不直接做決策,而是提升OR模型的輸入質量。
這里有一個很重要的概念Predict-then-Optimize,指的是先用ML模型預測不確定性參數,再講預測值帶入優化模型求解。
這其中會有一些潛在的風險,首先就是目標錯配,這是指ML模型通常以MAE/MSE為目標訓練,但這些誤差對決策的影響可能不對稱。比如:高估了需求導致庫存積壓、低估了需求導致缺貨,這兩者代價在實際應用總是不同的,但是如果我們使用MAE/MSE為目標進行訓練,將會把兩者一視同仁。也就是說,我們想直接將決策風險(也就是上面說的高估了多少還是低估了多少)作為損失函數。但是,通過Predict-then-Optimize的流程:
輸入數據 → ML 模型 → 預測值 → 優化模型 → 決策 → 實際成本
會發現這當中的優化模型,也就是我們通常可能調用求解器求解的數學模型(這就是OR的部分),是一個“黑箱算子”,通常不可導,那么對于我們的ML來說就沒法進行它的核心算法——反向傳播。
為了解決這個問題,有學者提出了SPO(Smart Predict-then-Optimize),這是一個框架,他的核心思想就是訓練的損失應該與最終決策的代價掛鉤。將決策風險定義為:使用預測值求解后的成本與使用真實值求解的成本之差。訓練目標是最小化這個決策風險。可以通過次梯度、平滑近似等方式來近似梯度。
此外還可以使用可導的近似模型、不依賴中間梯度的強化學習等方式來解決這個問題。
上面說的不可導性與黑箱性也是潛在風險之一。
還有就是誤差放大的潛在風險。對于解空間敏感的OR問題,小的預測誤差可能導致完全不同的最優解。需要引入敏感性分析,評估預測誤差對解的影響。
1.2 OR求解器集成ML技術,加速求解過程。
學習策略分支:使用ML模型預測哪個變量分支最有希望,替代部分強分支調用;
節點選擇策略:學習哪種策略(深度優先、最佳有限、最佳估計)更適合當前問題結構;
啟發式參數自動調優;割平面選擇等等。
2.OR for ML
用運籌優化(OR)來提升機器學習(ML)性能。
最優實驗設計:建模為子集選擇問題;
神經網絡剪枝與結構搜索:保留哪些連接可以建模為0-1變量,使用OR壓縮模型;
強化學習中嵌入求解器;可解釋機器學習中的規則生成等等。
3.End-to-End Learning for Optimization
跳過顯式建模,直接用神經網絡學習從輸入到最優解的映射。在這個過程中,輸出可能違反問題的約束,因此需要結合OR使用。我認為當前最好的做法是:用端到端ML模型生成候選解,再用 OR 模型校正或排序。
4.未來方向
我們做運籌優化的最擔心的就是未來ML取代傳統的OR。但是從目前來看是不會的,兩者將會進行深度融合,會有ML for OR,也會有OR for ML。首先,OR的優勢是不可替代的,給出能夠滿足硬約束的最優解、解釋性強等等。其次,ML是由局限性的,無法保證約束滿足、解釋性差(黑箱性)、泛化能力依賴于數據分布等等。
結合我做的來說一下吧,在一些控制策略(紅綠燈)中我會用OR的數學規劃和元啟發式算法得到這個問題的baseline,然后在環境突然發生改變(救護車來到)時,使用RL實現動態調整。在智能駕駛的場景中,自動駕駛需要感知和規劃的協同,對環境的感知需要ML,對路徑和時間的精確規劃需要OR。