利用概率學(xué)實(shí)現(xiàn)組合優(yōu)化層,新研究構(gòu)建Julia開(kāi)源包InferOpt.jl
?從概率學(xué)的角度實(shí)現(xiàn) CO 層,有助于構(gòu)建近似微分和結(jié)構(gòu)化損失函數(shù)。
機(jī)器學(xué)習(xí) (ML) 和組合優(yōu)化 (CO) 是現(xiàn)代工業(yè)流程的兩個(gè)重要組成部分。ML 方法能從嘈雜的數(shù)據(jù)中提取有意義的信息,而 CO 可以在高維受限環(huán)境中做出決策。在許多情況下,我們希望將這兩種工具結(jié)合使用,例如從數(shù)據(jù)中生成預(yù)測(cè),然后使用這些預(yù)測(cè)做出優(yōu)化決策。因此,混合 ML-CO pipeline 成為一個(gè)新興的研究方向。
然而這里存在兩個(gè)問(wèn)題。首先,CO 問(wèn)題的解通常表現(xiàn)為其目標(biāo)參數(shù)的分段常函數(shù),而 ML pipeline 通常使用隨機(jī)梯度下降進(jìn)行訓(xùn)練,因此斜率是非常關(guān)鍵的。其次,標(biāo)準(zhǔn)的 ML 損失在組合環(huán)境中效果不佳。
此外,組合優(yōu)化層(CO 層)往往缺乏良好的實(shí)現(xiàn)。近日一項(xiàng)新研究從概率學(xué)的角度提出了實(shí)現(xiàn) CO 層的方法,有助于近似微分和結(jié)構(gòu)化損失的構(gòu)建。
論文地址:https://arxiv.org/abs/2207.13513
基于這種思路,該研究提出了一個(gè)開(kāi)源的 Julia 包——InferOpt.jl,它的功能包括:
- 允許將任何具有線性目標(biāo)函數(shù)的 CO oracle 轉(zhuǎn)換為可微層;
- 定義損失函數(shù)來(lái)訓(xùn)練包含可微層的 pipeline。
?InferOpt.jl 開(kāi)源包地址:https://github.com/axelparmentier/inferopt.jl
InferOpt.jl 適用于任意優(yōu)化算法,并且與 Julia 的 ML 生態(tài)系統(tǒng)完全兼容。研究團(tuán)隊(duì)使用視頻游戲的地圖尋路問(wèn)題來(lái)展示它的能力。
推理問(wèn)題的關(guān)鍵是預(yù)測(cè)給定輸入的輸出,這需要了解每個(gè) ML 層的參數(shù)。而學(xué)習(xí)問(wèn)題旨在找到在推理過(guò)程中導(dǎo)致「良好」輸出的參數(shù)。如下等式 (1) 所示,現(xiàn)有的「CO oracle」代表可以解決優(yōu)化問(wèn)題的算法,包括基于求解器和手工的算法。
而層的定義是指我們可以使用自動(dòng)微分 (AD) 計(jì)算有意義的導(dǎo)數(shù),但現(xiàn)有 CO oracle 很少與 AD 兼容,并且導(dǎo)數(shù)幾乎處處為零,沒(méi)有可利用的斜率信息。?
因此,此前 CO oracle 還不是層,該研究的重點(diǎn)就是利用概率學(xué)的知識(shí)將其變成一個(gè)層。現(xiàn)代 ML 庫(kù)提供了豐富的基本構(gòu)建塊,允許用戶組裝和訓(xùn)練復(fù)雜的 pipeline。該研究試圖利用這些庫(kù)來(lái)創(chuàng)建混合 ML-CO pipeline,并主要解決了兩個(gè)問(wèn)題:
- 將 CO oracle 轉(zhuǎn)換為可用層;
- 找到合適的 ML 損失函數(shù),避免忽略潛在的優(yōu)化問(wèn)題。
? 感興趣的讀者可以閱讀論文原文,了解更多研究細(xì)節(jié)。?