令曉明,范少良,王文強,顧?楠,張凱越
(1.蘭州交通大學 國家綠色鍍膜技術與裝備工程技術研究中心,蘭州 730070;2.蘭州交通大學 光電技術與智能控制教育部重點實驗室,蘭州 730070;3.蘭州交通大學 自動化與電氣工程學院,蘭州 7300070)
貝葉斯分層模型中的推理通過在概率模型中利用貝葉斯定理,計算給定數(shù)據(jù)條件下模型的條件概率,進行模型的估計及對數(shù)據(jù)的預測,依賴于推理算法估計后驗概率。然而,后驗概率因計算開銷巨大難以取得閉合解,在實踐中往往需要近似推理,主要有兩種方法:馬爾科夫鏈蒙特卡羅(MCMC,Markov chain Monte Carlo)和變分推理(VI,variational inference)。多年來,MCMC是近似推理的主流范式,能夠實現(xiàn)對目標分布較為準確的近似,但運算緩慢。VI將高維度推理問題轉化為優(yōu)化問題,實現(xiàn)了更快速的近似計算,憑借其更快的收斂速度及對海量數(shù)據(jù)的強適應性,受到眾多研究者的青睞。
近年來VI領域的研究集中于以下5個方面。
隨 機 變 分 推 理[1]( SVI, Stochastic Variational Inference)及其變體[2]通過引入隨機優(yōu)化方法,分別在大型數(shù)據(jù)集和稀疏情況中取得良好表現(xiàn)。進一步地,Ranganath等人[3]開發(fā)了隨機推理中的自適應學習率的設置方法;坍縮變分推理[4-6](CVI,CollapsedVariational Inference)通過積分消除部分變量,簡化了計算。
文獻[7-9]使用不同的方式建立了保持一定依賴關系的結構,可以描述更豐富的變分族并提升VI的準確性,但會引起計算量的顯著增加。
文獻[10]將原本的變分分布映射為更簡單的分布并從中采樣;文獻[11]對變分目標中難以處理的對象應用蒙特卡羅梯度;文獻[12]通過引入隨機優(yōu)化、蒙特卡羅估計和方差減少技術實現(xiàn)了快速收斂。其他具備“黑盒”性的推理模型還包括層次變分模型 ( HVM, Hierarchical Variational Models)[8]和 變分高斯過程(VGP,Variational Gaussian Process)[13]等。
文獻[14]通過約束變分參數(shù)的后續(xù)迭代,克服了對初始化的敏感性,且能達到更好的局部最優(yōu);文獻[15]通過改造近似計算的目標,在統(tǒng)計和計算特性中取得了較好的平衡。
Stan[16]、PyMC3[17]和 Edward[18]是 3款具有代表性且比較完備的概率編程系統(tǒng),具有直觀、可讀、功能強大的語法,在不同程度上支持VI和MCMC采樣。
大數(shù)據(jù)時代下,鐵路故障、事故信息數(shù)據(jù)量龐大,文本中的非結構化數(shù)據(jù)蘊藏著大量的信息[19]。使用變分推理的主題模型在挖掘文本隱藏信息中具有效率上的獨特優(yōu)勢[20-23]。此外,主題模型還可用于對扣件的識別檢測等[24-27],使用VI可以顯著提升識別效率。
貝葉斯推理將模型框定為具有N個局部隱變量z1:N和觀測變量x1:N的模型,另有控制任意局部上下文的全局隱變量 β。p(·)為概率密度函數(shù),貝葉斯模型中推理的目標是計算后驗密度p(z,β|x)=p(z,β,x)/p(x),其中,p(x)稱為證據(jù),對于許多具有表現(xiàn)力的模型,p(x)難以計算,需要通過其他方法實現(xiàn)對證據(jù)的近似。
VI將近似推理視為一個優(yōu)化問題。(1)引入一個關于隱變量的分布族,該分布族被構造為各分量獨立的平均場形式;(2)以KL(Kullback-Leibler)散度定義變分目標,通過坐標上升算法迭代得到參數(shù)更新方程;(3)若滿足指數(shù)族共軛條件,則能夠獲得更簡單有效的更新形式。但經(jīng)典框架也暴露出許多問題,包括參數(shù)的更新都依賴于其他參數(shù)與觀測變量,無法從無意義的初始化中恢復,優(yōu)化計算的過程方差偏大間接影響收斂速度,易陷入糟糕的局部最優(yōu),依賴于對特定模型的推導等。
2.3.1 SVI概述
SVI使用自然梯度糾正了經(jīng)典梯度可能導致錯誤方向的問題[28],并通過以下3步有效減少了計算量:
(1)引入黎曼測度使對數(shù)規(guī)整器對自然參數(shù)的Hessian矩陣不再在參數(shù)更新方程中出現(xiàn)。
(2)通過引入隨機優(yōu)化,將跟蹤目標轉化為噪聲估計[29]。
(3)從具有n個 局部的某局部隱變量z1:n中采集單樣本zi,i∈ {1,···,n},進而替換z1:n,導出全局變分參數(shù)關于步長的線性更新方式。
2.3.2 主題模型
主題模型是文本挖掘的重要模型,潛在狄利克雷分配模型(LDA,Latent Dirichlet Allocation)是其典型代表。VI是LDA參數(shù)估計的重要方法,SVI可以根據(jù)局部的擬合結果得到中間全局變分參數(shù),并將下一次迭代的全局變分參數(shù)設置為當前參數(shù)的線性組合,從而顯著提升效率。
隨著鐵路系統(tǒng)故障文本信息日漸龐大,基于LDA及其變體的SVI技術將有助于快速分析故障文本數(shù)據(jù),并發(fā)掘熱點問題,對鐵路系統(tǒng)故障的預防和分析提供重要依據(jù)。對于同樣數(shù)量龐大的圖像信息,基于主題詞包模型將圖像量化為圖像—單詞矩陣用于分類,度量空間不同造成的距離偏差可通過引入SVI的自然度量予以糾正,從而更準確地實現(xiàn)基于近義詞分配的鐵路扣件等設備的狀態(tài)檢測。
VI使用KL散度定義變分目標函數(shù),其本質是一個非凸優(yōu)化問題,包含了許多局部最優(yōu)解,所采用的迭代算法難以避免陷入糟糕的局部最優(yōu)解且對初始化參數(shù)選取敏感。
(1)鄰近變分推理(PVI,Proximity Variational Inference)建立在鄰近視角上,認為梯度上升中的每一步是對前一步參數(shù)泰勒展開的有約束最小化[30-31],強制下一個點必須在以前一個點為球心、半徑受控于步長的歐氏球內;(2)算子變分推理(OPVI,Operator Variational Inference)是一種將原變分目標重新設計為算子變分目標的通用框架,基于強化梯度/重參數(shù)化梯度計算梯度期望的蒙特卡羅估計,且使用 Rao-Blackwellization 和控制變量技術來減小方差;(3)變分回火(VT,Variational Tempering)[32]引入了確定性退火,通過在模型中賦予異常值更高的溫度,降低了異常值對全局變分參數(shù)的影響,提升了局部最優(yōu)的魯棒性;(4)信賴域變分推理(TRVI,Trust Region Variational Inference)[33]使用信賴域步長代替 SVI 中的自然梯度步長,有效改善了SVI陷入糟糕局部最優(yōu)解的情況,也降低了對超參數(shù)的敏感性;(5)總體經(jīng)驗貝葉斯[34]明確地將經(jīng)驗總體分布作為貝葉斯分析的一部分,進一步得到碰撞變分推理(bump-VI),將優(yōu)化問題擴展為在尋找最優(yōu)近似后驗分布的同時尋找潛在數(shù)據(jù)集的索引。
更穩(wěn)健的VI算法使得計算量明顯增加。對魯棒性的要求過高會直接導致算法更接近于全局尋優(yōu),削弱VI方法的效率優(yōu)勢。為實現(xiàn)有效的計算,需要避免在錯誤方向上的步進,保持對新加入數(shù)據(jù)點的魯棒性,還要能從淺局部最優(yōu)解中脫離。滿足這些要求的算法在優(yōu)化過程中能夠進一步收集局部的信息,或重新設計推理框架,從而獲得全新的特性,有助于形成更準確、統(tǒng)計性質更好的近似結果。
概率編程語言(PPL,Probabilistic Programming Language)是用于描述帶有概率的生成過程的規(guī)范化語言,其目標是用簡潔的形式描述一個概率模型,并實現(xiàn)自動的學習與推理,用盡量少的代碼實現(xiàn)使用者的想法,顯著減輕VI研究者編寫繁復程序的負擔。
(1)Stan是一種用于指定統(tǒng)計模型的PPL,定義了以特定數(shù)據(jù)和常數(shù)為條件參數(shù)的對數(shù)概率函數(shù),能實現(xiàn)變分貝葉斯、期望傳播和使用近似積分的邊際推斷等算法。Stan比傳統(tǒng)聲明式圖形建模語言更具表現(xiàn)力,可支持使用類型聲明變量、局部變量和條件語句。(2)PyMC3是運行在Python語言中的開源PPL,基于NUTS和HybridMC[35]并與眾多科學計算庫集成,具有強大的表達能力。雖然PyMC3中大多數(shù)面向用戶的功能都是用純Python編寫的,但其利用Theano[36]將模型轉碼為C并編譯為機器代碼,從而提高了性能。(3)Edward對程序的表達方式具有模型對計算圖的表示不變且推理對計算圖的表示不變的特點,使得對復雜模型的建模變得簡單,且所有的計算都只是象征性地記錄在隨機變量上,簡化了在執(zhí)行程序之前的確定性和隨機性操作[37-38],其中,符號表示不需要具體化整個模型,避免了具體化大型模型帶來的不合理的內存消耗[39],因而,具有極高的執(zhí)行效率。
(1)考慮VI的支持性,Edward和 PyMC3都支持較多的VI算法,相較Stan等其他算法匱乏的語言而言是更好的選擇;(2)考慮指定貝葉斯任務的代碼量、語言的自然性和概念的可解釋性,Edward和PyMC3的使用顯著易于Stan,而Edward后續(xù)被集成到TensorFlow中,易用性得到進一步提升;(3)在完成貝葉斯推理任務的速度方面,得益于GPU加速支持,Edward和PyMC3的運算速度更快,而PyMC3并沒有在所有的計算中都使用Theano,導致其效率低于Edward;(4)在所采用算法的魯棒性和API 的穩(wěn)定性方面,Stan 較為穩(wěn)定,它沒有大規(guī)模使用隨機優(yōu)化技術,且不依賴于Theano,保證了執(zhí)行的可靠性。
VI是機器學習領域重要的推理方法,該領域進一步的研究主要集中于以下幾個方面。
近似推理的核心問題是有效性和準確性的矛盾,如何將MCMC與VI結合一直以來都是近似推理研究的核心命題。目前,僅有少數(shù)研究在部分計算環(huán)節(jié)中做出了嘗試,幾乎都是基于特定問題做出的小幅改進,還需進一步探索出明確的VI-MCMC接口,這一方向的研究對于未來VI方法及應用的發(fā)展至關重要。
VI方法的發(fā)展需要突破共軛限制,有學者提出適用于邏輯回歸的變分界[40]。非共軛模型中的推理可以使用Laplace逼近和Delta方法[41],但僅限于連續(xù)變量。Wand[42]等人使用輔助變量、求積和混合近似法對指數(shù)族之外的分布族進行了探索。但非共軛模型是一個廣泛的研究范疇,這些方法尚不足以支撐非共軛模型的推理。基于這一現(xiàn)狀,非共軛條件下的推理或逼近方法將作為VI研究中自動化推理方向的主要命題長期存在。
對于深度學習所表現(xiàn)出的解釋性不足和難以包含先驗知識等缺陷,有學者使用貝葉斯方法,如變分自編碼器(VAE,Variational Auto Encoder)及其變種改善了這些問題。有學者賦予了VAE解釋性較強的先驗模型[43-44],在這些模型中合理使用VI將帶來效率上的飛躍,使得VAE具有更好的生成結果。此外,由于VAE將數(shù)據(jù)強行投射到有限維度的指定分布上,導致生成信息質量不高,而GAN(Generative Adversarial Network)使用神經(jīng)網(wǎng)絡學習該分布,雖然在匹配分布的過程中有可能發(fā)生模型坍縮,但其生成的數(shù)據(jù)質量較高。將VAE與GAN有機結合是一個極具潛力的研究方向。
VI使用KL散度作為分布測度定義變分目標,對VI的一系列研究都是從KL散度開始的。考慮使用 其 他 散 度 如 α 散 度[45]、f散 度[46]、Stein散 度[47-48]、JS散度[49-50]等定義的變分目標可以獲得更緊致的下界或更快的收斂速度,但基于這些散度的推理方法的研究尚不成熟,其計算方法、統(tǒng)計特性等方面的研究尚不全面和深入。
盡管概率編程已取得一定的發(fā)展,但近年來發(fā)展出的眾多推理方法在編程實現(xiàn)上仍存在困難。概率編程庫中可以使用的API接口仍不夠豐富,方差減少技術中的控制變量方法仍依賴于模型的特定設計,不利于算法的快速收斂。
鐵路領域的信息種類繁多、數(shù)目龐大且存在大量非結構化數(shù)據(jù),而數(shù)據(jù)間的關聯(lián)與內在趨勢很難被發(fā)現(xiàn),需要具有較強表達能力的模型和快速的計算方法。使用主題模型與VI是較為理想的選擇,但其準確性和魯棒性都有待提升。除文本外,VI在圖像和語音方面的研究已有進展,但在鐵路領域的應用較少。此外,隨著大規(guī)模貝葉斯網(wǎng)絡被用于解決交通流問題,VI也更能發(fā)揮計算效率上的優(yōu)勢。
近似推理在很大程度上解決了貝葉斯模型中的推理問題,有著廣泛的應用。VI作為近似推理中除MCMC之外的另一方法,具有十分重要的意義,應該更深入地研究其理論、方法與實踐。目前,針對VI方法的研究成果頗豐,在當前的大數(shù)據(jù)時代,有必要進一步研究和擴展計算更快、更穩(wěn)定的方法。VI的實踐包括概率編程和應用,已出現(xiàn)一批性能優(yōu)異且能夠與深度學習相結合的概率編程系統(tǒng),為VI在工業(yè)中的應用打下了良好的基礎。