當前位置:
首頁 > 新聞 > 詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

選自arXiv

機器之心編譯


2017 年 5 月,清華大學朱軍教授在機器之心 GMIS 2017 大會現場詳解了他們開發的貝葉斯深度學習 GPU 庫珠算。近日,清華大學公開了珠算相關論文,機器之心對此此論文進行了摘要介紹。

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

近年來,深度學習領域出現了重大進展(LeCun et al., 2015)及諸多成功應用,比如語音識別(Hinton et al., 2012),計算機視覺(Krizhevsky et al., 2012),語言處理(Sutskever et al., 2014),計算機遊戲(Silver et al., 2016)。我們從實踐中獲得了一條很好的經驗:一個深度構建的模型可通過高級優化演算法(比如隨機梯度下降)、大型訓練集(比如 ImageNet)和強大的算力(比如 GPU)被很好地訓練。儘管深度神經網路的強大表現使其成為了解決諸多複雜擬合問題的首要選擇(尤其是在涉及從輸入空間到輸出空間的映射問題上,比如分類與回歸),其給出的結果通常是點估計(point estimates)。由於物理世界的隨機性、不完整性信息以及測量雜訊,這種確定性的方法無法解釋不確定性,而不確定性正是一個學習性機器(比如數據、估計、推斷、預測和決策)全部的核心。確定性的神經網路已被證明在對抗性攻擊面前非常脆弱(Szegedy et al., 2013; Nguyen et al., 2015)(部分原因是由於缺乏不確定性建模),這也就限制了在表徵不確定性異常重要的場景中的應用,比如自動駕駛(Bojarski et al., 2016)和醫療健康(Miotto et al., 2017)。另一方面,從概率的視角切入機器學習可以帶來一個有強大數學理論基礎的不確定性處理方法,即貝葉斯方法(Ghahramani, 2015)。貝葉斯方法同樣也給出了一個看似很理論的方法從而把結構化偏差(Lake et al., 2015)和領域知識整合為先驗或後驗約束(Mei et al., 2014),進而通過小數據訓練樣本達成有效的學習。因此深度學習和貝葉斯的結合非常有優勢,事實上近年來它已獲得極大關注(Gal, 2016)。

此外,大多數成功的深度學習研究都是基於需要大量帶標註數據的監督學習任務,這個領域的研究員正在把注意力逐漸轉向無監督學習,這將是人工智慧的長期目標。我們通常使用概率模型和貝葉斯方法對完全無監督學習或半監督學習中的無標註數據建模。最近,深度生成模型的受歡迎程度再次證明了組合深度神經網路和概率模型的潛在價值,這個組合已經在圖像生成 (Kingma and Welling, 2013; Goodfellow et al., 2014; Radford et al., 2015),半監督分類問題 (Kingma et al., 2014; Salimans et al., 2016) 和單一例子學習中取得了令人矚目的成果 (Rezende et al., 2016)。

我們把這種結合貝葉斯方法和深度學習各自優勢的新研究方向稱為貝葉斯深度學習(Bayesian Deep Learning /BDL)。BDL 的組成包括了傳統的貝葉斯方法,以概率推斷(probabilistic inference)為主的深度學習方法,以及它們的交叉。BDL 的一個獨有的特性是,隨機變數間的確定性變換可以利用典型的深度神經網路表達的參數化公式從數據中自動學習 (Johnson et al., 2016),而在傳統的貝葉斯方法中,變換通常是一個簡單的解析形式,比如指數函數或者內積。貝葉斯深度學習的一個關鍵挑戰是後驗推斷(posterior inference),通常對於這樣的模型來說是很難處理的,需要複雜的近似方法。雖然利用變分推斷和蒙特卡羅方法已經取得了很多進展 (Zhu et al., 2017),對於開發者來說還是很難上手。此外,雖然變分推斷和蒙特卡羅方法有其一般形式,對於一個有經驗的研究員來說,為一個特定的模型尋找方程並實現所有的細節仍然是很困難的,過程中很容易出現錯誤,並需要花費大量時間調試。

在這篇論文中,我們提出了珠算平台:一個貝葉斯深度學習的概率編程庫。我們在 TensorFlow 上建立了珠算平台 (Abadi et al., 2016),利用它的計算圖能使建模過程變得靈活。研究者可以利用珠算強大的擬合能力和多 GPU 訓練進行深度學習,同時可以用概率模型為複雜世界建模,開發無標註數據,根據貝葉斯推斷的原則處理不確定性。我們將提供一些運行中的案例展示用珠算編程的直觀性,包括貝葉斯 logistic 回歸、變分自編碼器、深度 Sigmoid 信度網路以及貝葉斯循環網路。你可以從我們的代碼庫中找到更多的例子 https://github.com/thu-ml/zhusuan。珠算和其它概率編程庫最大的不同在於其靈活性,這得益於其是建立在深度學習範式的軟體庫,以及關鍵的模型重用的處理方式。論文中還給出了珠算和兩個相關度很高的研究 Edward (Tran et al., 2016) 和 PyMC3 (Salvatier et al., 2016) 的更多的細節對比。

論文:ZhuSuan: A Library for Bayesian Deep Learning

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

論文鏈接:https://arxiv.org/abs/1709.05870

本論文介紹了珠算,一種用於貝葉斯深度學習的 Python 概率編程庫,它結合了貝葉斯方法和深度學習的優勢。珠算構建在 TensorFlow 之上,與目前主要面向神經網路和監督任務的深度學習庫不同,珠算的特點是深入到貝葉斯推斷中,從而支持各類概率模型,包括傳統分層貝葉斯模型以及最近的深度生成模型。我們運行了一些示例來介紹珠算的概率編程能力,其中包括 logistic 回歸、變分自編碼器、深度 sigmoid 信念網路和貝葉斯循環神經網路。

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 1. 貝葉斯網路

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 2. BLR:(a)概率圖展示;(b)珠算編程

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 3. VAE:(a)概率圖展示;(b)珠算編程

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 4.DSBN:(a)概率圖展示;(b)珠算編程

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 5. 貝葉斯 RNN

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

表 1. 珠算的變分推斷。相關參考文獻是 SGVB(Kingma & Welling,2013),REINFORCE(Williams,1992,Mnih & Gregor,2014),IWAE(Burda 等人,2015),VIMCO(Mnih & Rezende,2016)以及 RWS(Bornschein & Bengio,2014)

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 6. VAE 的變分後驗:(a)概率圖展示;(b)珠算編程

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 7. DSBN 的變分後驗:(a)概率圖展示;(b)珠算編程

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

圖 8. 珠算 HMC 與 TensorFlow 優化器對比

詳解珠算:清華大學開源的貝葉斯深度學習庫(論文公布)

表 2. 珠算與其他 Python 概率編程庫的比較

結論

珠算是一個基於 TensorFlow 的貝葉斯深度學習 Python 概率編程庫。它通過深度學習風格的基元和演算法為貝葉斯理論和深度學習之間架起了橋樑,讓構建概率模型和應用貝葉斯推斷方法成為可能。在論文中,有很多示例都說明了珠算的實用性。目前,珠算已經在 GitHub 上開源,我們希望以此為加快貝葉斯深度學習的發展貢獻一份力量。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

Waymo與英特爾聯手研發無人駕駛晶元,欲實現全場景 L5 自動駕駛
周志華:關於人工智慧的探討
深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD
治療癌症的Waston步履艱難,IBM 能否依靠人工智慧成功轉型?

TAG:機器之心 |