SDAE的結構如上圖所示,和AE不同的是,

SDAE的結構如上圖所示,和AE不同的是,Xo?可以看做輸入數據Xc?加入噪聲或者做了一些隨機處理后的結果(比如可以把Xc?中的數據隨機置30%或全零)。所以SDAE做的就是試圖處理這些corrupted data或clean data。SDAE可以轉化為以下優化問題:

3 Probabilistic Graphical Model

這一章主要介紹概率圖模型,也是為后面的內容做知識鋪墊的,概率圖模型的相關資料有不少,因此這里不過多敘述。文章主要介紹的是有向貝葉斯網(Bayesian Networks),如LDA等模型。LDA可以拓展出更多的topic model,如推薦系統中的協同話題回歸(CTR)。

4 Bayesian Deep Learning

在這個部分,作者列舉了一些BDL模型在推薦、控制等領域的應用,我們可以看到,眾多當前實用的模型都可以統一到BDL這個大框架之下:

4.1 A Brief History of Bayesian Neural Networks and Bayesian Deep Learning

和BDL很相似的是BNN(Bayesian neural networks),這是一個相當古老的課題,然而BNN只是本文BDL框架下的一個子集——BNN相當于只有perception部分的BDL。

4.2 General Framework

如下圖是文章提出的基本框架,紅色部分是感知模塊,藍色部分是任務模塊。紅色部分通常使用各種概率式的神經網絡模型,而藍色部分可以是貝葉斯網絡,DBN,甚至是隨機過程,這些模型會以概率圖的形式表示出來。

在這個基本框架中往往有三種變量:perception variablesΩp?(圖中的X、W),hinge variables Ω?(圖中的H)和task variables Ωt? (圖中的A,B,C)?。通常來說,紅色橫線和hinge variables之間的鏈接是獨立的。因此,對于回歸到BDL框架下的模型,我們都可以找到這樣的結構——兩個模塊,三種變量。
BDL可以對這兩個部分之間信息交換的uncertainty進行建模,這個問題等價研究 Ω?? 的uncertainty(在公式中的體現是條件方差)。方差的不同假設有以下幾種:Zero-Variance (ZV,沒有不確定性,方差為零),Hyper-Variance (HV,方差大小由超參數決定),Learnable Variance (LV,使用可學習參數表示),顯然,靈活性上有LV>HV>ZV。

4.3 Perception Component

通常來說,這一部分應該采用BNN等模型,當然我們可以使用一些更加靈活的模型,比如RBM,VAE,以及近來比較火的GAN等。文章提到了以下幾個例子:

Restricted Boltzman Machine:RBM是一種特殊的BNN,主要特點有:(1)訓練時不需要反向傳播的過程;(2)隱神經元是binary的。RBM的具體結構如下:

RBM通過Contrastive Divergence進行訓練(而不是反向傳播),訓練結束后通過邊緣化其他neurons就能求出vh。

Probabilistic Generalized SDAE:我們將2.2提到的SDAE加以改進,如果假設clear input Xo和corrupted input Xc?都是可以觀察的,便可以定義如下的Probabilistic SDAE:

Variational Autoencoders:VAE的基本想法就是通過學習參數最大化ELBO,VAE也有諸多變種,比如IWAE(Importance weighted Autoencoders),Variational RNN等。

Natural-Parameter Networks:與確定性輸入的vanilla NN不同,NPN將一個分布作為輸入(和VAE只有中間層的output是分布不同)。當然除了高斯分布,其他指數族也可也當做NPN的輸入,如Gamma、泊松等。

4.4 Task-Specific Component

這一個模塊的主要目的是將概率先驗融合進BDL模型中(很自然的我們可以用PGM來表示),這個模塊可以是Bayesian Network,雙向推斷網絡,甚至是隨機過程。

Bayesian Networks貝葉斯網是最常見的task-specific component。除了LDA,另一個例子是PMF(Probabilistic Matrix Factorization),原理是使用BN去對users,items和評分的條件依賴性建模。以下是PMF假設的生成過程:

Bidirectional Inference Networks:Deep Bayesian Network不止關注“淺相關”和線性結構,還會關注隨機變量的非線性相關和模型的非線性結構。BIN是其中的一個例子。

Stochastic Processes:隨機過程也可以作為Task-component,比如說用維納過程模擬離散布朗運動,用泊松過程模擬處理語音識別的任務等。隨機過程可以被看做一種動態貝葉斯網(DBN)。

5 Concerte BDL Models and Applications

上一章討論完構成BDL的基本模型結構,我們自然希望能夠把這一套大一統的框架運用在一些實際的問題上。因此,這一章主要討論了BDL的各種應用場景,包括推薦系統,控制問題等。在這里我們默認任務模塊使用vanilla Bayesian networks作為這個部分的模型。

5.1 Supervised Bayesian Deep Learning for Recommender Systems

Collaborative Deep Learning。文章在這個部分提出Collaborative Deep Learning(CDL)來處理推薦系統的問題,這種方法連接了content information(一般使用深度學習方法處理)和rating matrix(一般使用協同過濾)。

使用4.3.2提到的Probabilistic SDAE,CDL模型的生成過程如下:

為了效率,我們可以設置趨向正無窮,這個時候,CDL的圖模型就可以用下圖來表示了:

紅色虛線框中的就是SDAE(圖上是L=2的情況),右邊是degenerated CDL,我們可以看到,degenerated CDL只有SDAE的encoder部分。根據我們之前定義過的,V就是hinge variable,而R,U是task variables,其他的是perception variables。

那么我們應該如何訓練這個模型呢?直觀來看,由于現在所有參數都被我們當做隨機變量,我們可以使用純采樣方法,比如EM或MCMC,然而這種計算量往往是巨大的。因此,我們使用一個EM-style算法去獲得MAP估計。先定性地看成功的標準,我們希望最大化后驗概率,可以等價為最大化確定λu1??,λv,λw,λs,λn??的joint likelihood。

注意,當λs趨向無窮時,訓練CDL的概率圖模型就退化為了訓練下圖的神經網絡模型:兩個網絡有相同的加了噪音的輸入,而輸出是不同的。

有了優化的目標,參數該如何去更新呢?和巧妙的EM算法的思路類似,我們通過迭代的方法去逐步找到一個局部最優解:

當我們估計好參數,預測新的評分就容易了,我們只需要求期望即可,也就是根據如下公式計算:

Bayesian Collaborative Deep Learning:除了這種模型,我們可以對上面提到的CDL進行另外一種擴展。這里我們不用MAP估計,而是sampling-based算法。主要過程如下:

當λs趨向正無窮并使用adaptive rejection Metropolis sampling時,對W+采樣就相當于BP的貝葉斯泛化版本。

Marginalized Collaborative Deep Learning:在SDAE的訓練中,不同訓練的epoch使用不同的corrupted input,因此訓練過程中需要遍歷所有的epochs,Marginalized SDAE做出了改進:通過邊緣化corrupted input直接得到閉式解。

Collaborative Deep Ranking:除了關注精確的評分,我們也可以直接關注items的排名,比如CDR算法:

這個時候我們需要優化的log-likelihood就會成為:

Collaborative Variational Autoencoders:另外,我們可以將感知模塊的Probabilistic SDAE換成VAE,則生成過程如下:

總之,推薦系統問題往往涉及高維數據(文本、圖像)處理以及條件關系推斷(用戶物品關系等),CDL這類模型使用BDL的框架,能發揮很重要的作用。當然其他監督學習的任務也可以參考推薦系統的應用使用CDL的方法。

5.2 Unsupervised Bayesian Deep Learning for Topic Models

這一小節過渡到非監督問題中,在這類問題中我們不再追求 “match” 我們的目標,而更多是 “describe” 我們的研究對象。

Relational Stacked Denoising Autoencoders as Topic Models (RSDAE):在RSDAE中我們希望能在關系圖的限制下學到一組topics(或者叫潛因子)。RSDAE能“原生地”集成潛在因素的層次結構和可用的關系信息。其圖模型的形式和生成過程如下:

同樣的,我們最大化后驗概率,也就是最大化各種參數的joint log-likelihood:

訓練的時候我們依然使用EM-style的算法去找MAP估計,并求得一個局部最優解(當然也可以使用一些帶skip的方法嘗試跳出局部最優),具體如下:

Deep Poisson Factor Analysis with Sigmoid Belief Networks:泊松過程適合對于非負計數相關的過程建模,考慮到這個特性,我們可以嘗試把Poisson factor analysis(PFA)用于非負矩陣分解。這里我們以文本中的topic問題作為例子,通過取不同的先驗我們可以有多種不同的模型。

比如說,我們可以通過采用基于sigmoid belief networks(SBN)的深度先驗,構成DeepPFA模型。DeepPFA的生成過程具體如下:

這個模型訓練的方式是用Bayesian Conditional Density Filtering(BCDF),這是MCMC的一種online版本;也可以使用Stochastic Gradient Thermostats(SGT),屬于hybrid Monto Carlo類的采樣方法。

Deep Poisson Factor Analysis with Restricted Boltzmann Machine:我們也可以將DeepPFA中的SBN換成RBM模型達到相似的效果。

可以看到,在基于BDL的話題模型中,感知模塊用于推斷文本的topic hierarchy,而任務模塊用于對詞匯與話題的生產過程,詞匯-話題關系,文本內在關系建模

5.3 Bayesian Deep Representation Learning for Control

前面兩小節主要談論BDL在監督學習與無監督學習的應用,這一節主要關注另外一個領域:representation learning。用控制問題為例。

Stochastic Optimal Control:在這一節,我們考慮一個未知動態系統的隨機最優控制問題,在BDL的框架下解決的具體過程如下:

BDL-Based Representation Learning for Control:為了能夠優化上述問題,有三個關鍵的部分,具體如下:

Learning Using Stochastic Gradient Variational Bayes:該模型的損失函數是如下這種形式:

在控制的問題中,我們通常希望能夠從原始輸入中獲取語義信息,并在系統狀態空間中保持局部線性。而BDL的框架正好適用這一點,兩個組件分別能完成不同的工作:感知模塊可以捕獲 live video,而任務模塊可以推斷動態系統的狀態。

5.4 Bayesian Deep Learning for Other Applications

除了上面提到的,BDL還有其他諸多運用場景:鏈路預測、自然語言處理、計算機視覺、語音、時間序列預測等。比如,在鏈路預測中,可以將GCN作為感知模塊,將stochastic blockmodel作為任務處理模塊等。

6 Conclusion and Future Research

現實中很多任務都會涉及兩個方面:感知高維數據(圖像、信號等)和隨機變量的概率推斷。貝葉斯深度學習(BDL)正是應對這種問題的方案:結合了神經網絡(NN)和概率圖模型(PGM)的長處。而廣泛的應用使得BDL能夠成為非常有價值的研究對象,目前這類模型仍然有著眾多可以挖掘的地方。

文章轉自微信公眾號@算法進階

上一篇:

一文概覽NLP算法(Python)

下一篇:

深度學習在股市的應用概述
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費