丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給奕欣
發(fā)送

0

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

本文作者: 奕欣 2017-05-16 14:25
導(dǎo)語:中國人工智能學(xué)會AIDL第二期【人工智能前沿講習(xí)班】在北京中科院自動化所舉行,來自清華大學(xué)計算機(jī)科學(xué)與技術(shù)系的朱軍副教授做了題為《貝葉斯學(xué)習(xí)前沿進(jìn)展》的分享。

雷鋒網(wǎng)[AI科技評論]按:中國人工智能學(xué)會AIDL第二期【人工智能前沿講習(xí)班】在北京中科院自動化所舉行,主題為【機(jī)器學(xué)習(xí)前沿】。周志華教授擔(dān)任學(xué)術(shù)主任,前來授課的嘉賓均為中國機(jī)器學(xué)習(xí)界一流專家、資深科研人員和企業(yè)精英,包括:耿新、郭天佑、劉鐵巖、王立威、葉杰平、于劍、余揚、張長水、鄭宇、朱軍。

來自清華大學(xué)計算機(jī)科學(xué)與技術(shù)系的朱軍副教授做了題為《貝葉斯學(xué)習(xí)前沿進(jìn)展》的開場分享課,總時長為兩個小時,內(nèi)容主要分為三大部分:貝葉斯基本理論、模型和算法;可擴(kuò)展的貝葉斯方法;深度生成模型。本文乃三大內(nèi)容中的第二及第三部分,由雷鋒網(wǎng)AI科技評論編輯。

傳送門: 清華大學(xué)計算機(jī)科學(xué)與技術(shù)系朱軍教授:機(jī)器學(xué)習(xí)里的貝葉斯基本理論、模型和算法

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

朱軍

清華大學(xué)計算機(jī)系長聘副教授、智能技術(shù)與系統(tǒng)國家重點實驗室副主任、深度學(xué)習(xí)技術(shù)與應(yīng)用國家工程實驗室副主任、國家萬人計劃青年拔尖人才、中國自然科學(xué)基金優(yōu)秀青年基金獲得者、中國計算機(jī)學(xué)會青年科學(xué)家、IEEE AI's 10 to Watch入選者。

以下是根據(jù)朱軍副教授現(xiàn)場分享整理的文字報告,雷鋒網(wǎng)[AI科技評論]做編輯整理。

第二部分 可擴(kuò)展的貝葉斯方法

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

我們先看一下這個經(jīng)典的貝葉斯定理,它有一個很好的性質(zhì)是序列更新的,這對于處理流式數(shù)據(jù)非常適合。比如:用B1,…,Bt表示第一個時刻到第t個時刻的數(shù)據(jù)集,我們可以得到一個遞推公式:假設(shè)已經(jīng)算出來了第t-1時刻的后驗分布,那么下一個時刻t的后驗分布正比于第t-1時刻的后驗分布乘上新來數(shù)據(jù)集Bt的似然函數(shù),這個迭代過程實際上是把上一時刻的后驗作為當(dāng)前時刻的先驗分布了。這是非常漂亮的遞推公式,可以實時處理流式數(shù)據(jù)。

但它有一個前提是你可以算出來每個時刻的后驗分布。這對于簡單的模型是可行的,比如:線性動態(tài)系統(tǒng)。但是,對于一般的模型,每一步都很難算出精確的后驗分布,所以這個更新公式并不好算。需要一些好的算法。

在線變分貝葉斯(OVB)

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

最近,在算法上大家做了很多的工作,有一個叫在線(流式)變分貝葉斯的算法,采用的是我們前面所提到的變分近似的思想實現(xiàn)在線貝葉斯推理。假設(shè)有一個算法A,它的輸入是一個數(shù)據(jù)集和先驗,輸出是一個近似的后驗分布。在第一個時刻可以用第一個數(shù)據(jù)值加上先驗來更新,得到一個近似的后驗。在接下來一個新的數(shù)據(jù)集,可以用t-1時刻的近似后驗來做新的先驗,隨著時間的推移你會得到t+1、t+2……時刻的后驗分布,這就是流式計算的方法。

分布式貝葉斯更新(Distributed Bayesian Updating)

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

貝葉斯公式還有另外一個好的性質(zhì),適合多個機(jī)器的分布式計算。比如,假設(shè)現(xiàn)在有100臺機(jī)器,每個機(jī)器有1%的數(shù)據(jù)。我們先并行的在每個機(jī)器上處理這1%的數(shù)據(jù)得到100個局部后驗分布;然后,再把它們集成在一起,就會得到我們想要的精確后驗分布。同樣,這是非常漂亮的性質(zhì)。

但是,它存在同樣的挑戰(zhàn):對于一般的貝葉斯模型,我們得不到局部后驗分布的解析解。為了處理這個困難,我們會考慮用一個近似的算法去做,再集合在一起。

它的適用范圍非常廣泛,這里有一套公式,具體的細(xì)節(jié)我不說了,如果感興趣的話,大家可以研究一下:如果這個算法輸出的是一個指數(shù)族分布,你集成在一起還是指數(shù)族分布,只要把參數(shù)變化一下就行了,這是它的最大好處。

我們組也在這些方面做了一些工作,包括:在線/隨機(jī)算法和分布式算法等;大家也可以閱讀我在演講開頭提及的綜述文章,以供參考。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

我現(xiàn)在給大家介紹一個在線學(xué)習(xí)的例子。我們考慮用貝葉斯模型做在線的分類。這是一個有監(jiān)督的學(xué)習(xí)任務(wù),因此會有一個損失函數(shù)。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

我們先看一下在線學(xué)習(xí)的基本過程。假設(shè)有一個初始的模型,我可以用它對新來的數(shù)據(jù)做預(yù)測,判斷它屬于哪類。預(yù)測完之后會有兩個結(jié)論,一個是預(yù)測準(zhǔn)確了,另外一個是預(yù)測錯了。

  • 如果預(yù)測準(zhǔn)確的話,我們可以不做任何事情,這個模型已經(jīng)比較好了。

  • 如果預(yù)測錯了的話,我們可以把當(dāng)前的模型送到學(xué)習(xí)算法里面做一次更新。

這是很基本的一個在線學(xué)習(xí)的框架。

Online Passive—Aggressive Updates

其中,有一個很經(jīng)典的具體算法,叫Online Passive—Aggressive Learning,它是針對SVM提出的在線學(xué)習(xí)算法。因為SVM是學(xué)一個特定的模型,假設(shè)當(dāng)前的模型參數(shù)是Wt,新數(shù)據(jù)出現(xiàn)后會做一個判斷,結(jié)果可能是正確的或錯誤的。如果判斷正確就是說你的模型足夠好,那么可以采用Passive Update的策略,所謂的消極是指:我不更新,直接把這個模型拷貝到下一個時刻;還有另外一種情況,如果判斷錯了,就采取一個激進(jìn)(Aggressive)的方法,比如:剛才的模型不夠好,我就做一個投影,投影到好的模型的區(qū)域里,得到一個新的模型。這是兩種操作,每一個數(shù)據(jù)都進(jìn)行判斷,再選擇Passive或是Aggressive的策略,然后不斷地迭代,這種很簡單的策略實際上還有一些好的性質(zhì),實際應(yīng)用的效果也挺好。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

現(xiàn)在,我們可以做一個很簡單的類比,把上述更新過程擴(kuò)展到貝葉斯模型,在線地學(xué)習(xí)貝葉斯SVM,每個時刻都學(xué)到所有模型的一個后驗分布。這個想法實際上和前面的更新過程基本上是一樣的,差別在于我們更新的是后驗分布。假設(shè)當(dāng)前的后驗分布是 qt(W),新來的數(shù)據(jù)可以用一個準(zhǔn)則判斷它到底是正確還是錯誤,同樣對應(yīng)到兩種情況,如果正確的話,表明當(dāng)前的后驗分布足夠好了,我可以不去更新,實際操作時如果有似然函數(shù),我可以用貝葉斯定理做一次更新,不會影響這個結(jié)果。當(dāng)我們犯錯誤的時候,可以做一個Aggressive的更新,得到新的分布。

在錯誤發(fā)生時,我們可以做硬約束或是允許一定錯誤的軟約束,來優(yōu)化這個錯誤率。理論分析我這里就不細(xì)說了。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這種在線貝葉斯學(xué)習(xí)的最大好處時它可以處理隱含變量(數(shù)據(jù)中沒有觀察到的變量),挖掘數(shù)據(jù)中的隱含結(jié)構(gòu)。在這種情況下,只需要對前面講的在線更新的過程稍加擴(kuò)展即可,基本流程保持不變。

這里講一個話題模型的例子。比如:我明天要出差,現(xiàn)在想訂一個賓館,那么我可能會打開網(wǎng)站去看它的評論和打分;現(xiàn)在,這方面的數(shù)據(jù)有很多。假設(shè)我們拿到了很多評論文檔數(shù)據(jù),我們可以做兩件事情,一個是挖掘大家關(guān)心的主題是哪些,另一個是看看某個具體的評論是傾向于正面還是負(fù)面,這實際上是做一個判別。這就可以用我剛才所講的在線貝葉斯學(xué)習(xí)來實現(xiàn)。

具體過程我就不講了。這里給大家看一個效果,橫軸是時間,縱軸是分類的正確率(F1值)。這里列出來多個算法,大家顯然能看出來,基于在線貝葉斯學(xué)習(xí)的算法要比使用批處理的方法大約有100倍的性能提升,同時,分類的精度沒有下降(甚至可能有提升)。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這里邊道理是什么呢?實際上,大數(shù)據(jù)里邊通常有很多冗余,在做模型更新的時候沒必要把所有的數(shù)據(jù)都處理一遍,尤其當(dāng)你的數(shù)據(jù)集特別大的時候完全沒有必要,現(xiàn)在大家訓(xùn)練的深度學(xué)習(xí)也是一樣,最常用的方法是用隨機(jī)梯度,思想是一樣的。我們沒必要把上萬張圖片掃描一遍,再更新模型的權(quán)重,少量圖片其實就足夠了。由于每次計算的數(shù)據(jù)量非常少,因此,總體時間上有很大優(yōu)勢。

分布式后采樣

我們前面講貝葉斯方法本身有一個很好的性質(zhì)做分布式計算,但是,難點在于我們怎么去做計算。我們在這方面做了一個工作,是基于MCMC蒙特卡洛采樣的,發(fā)表在NIPS 2014。它的基本思路是,我們把數(shù)據(jù)劃分到多個機(jī)器,先采用MCMC的方法去估算局部后驗分布(的一些統(tǒng)計量),然后采用期望傳播(EP)的框架在多個機(jī)器之間傳遞信息,把采樣的樣本聚集合在一起,以解決近似后驗分布的問題。這個算法收斂之后,每個局部的分布實際上就是我們想要的全局分布。這個算法支持同步更新、異步更新以及去中心化的更新方式,配置非常靈活。

 清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

第三部分 深度生成模型(Deep Generative Models)

我接下來講一些大家可能都很關(guān)心的深度學(xué)習(xí)。我主要介紹一些深度生成模型,包括無監(jiān)督和半監(jiān)督學(xué)習(xí)的模型。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

通常情況下,大家做深度學(xué)習(xí)時,用的更多的是所謂的判別式深度學(xué)習(xí),比如深度卷積網(wǎng)絡(luò),它的目的是學(xué)習(xí)一個從輸入到輸出的影射函數(shù),在測試時,判斷測試樣本屬于哪個類。這種網(wǎng)絡(luò)已經(jīng)在人臉識別、語音識別或者自然語言(處理)的很多任務(wù)中應(yīng)用。當(dāng)然,在實際做的時候,還要注意一些細(xì)節(jié),包括一些保護(hù)模型、避免過擬合的機(jī)制。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

深度卷積網(wǎng)絡(luò)已經(jīng)被廣泛應(yīng)用,包括發(fā)展出來的一些變種的網(wǎng)絡(luò)結(jié)構(gòu)。最近,這種網(wǎng)絡(luò)也用于強(qiáng)化學(xué)習(xí),比如AlphaGo。細(xì)節(jié)這里就不說了,我今天想和大家分享一下,除了這種判別式學(xué)習(xí),深度學(xué)習(xí)實際上還有許多問題值得我們關(guān)注。

簡單來說,深度學(xué)習(xí)現(xiàn)在的應(yīng)用場景有以下三點。大模型;大數(shù)據(jù);大集群。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

首先,現(xiàn)在的模型比較大,主要體現(xiàn)在它有很多參數(shù)。這是2012年的一個例子,它大概有10億個參數(shù)。其次,訓(xùn)練數(shù)據(jù)比較多,當(dāng)時的訓(xùn)練使用了1000萬的圖片。最后,需要很大的計算資源,我可以用CPU或者GPU集群來運算,這幾乎成了現(xiàn)在做深度學(xué)習(xí)的標(biāo)配。 

過擬合

在這種場景下,往往有一個誤解:如果有大數(shù)據(jù),過擬合就不再是問題了。實際上,我們說,大數(shù)據(jù)情況下過擬合可能變得更嚴(yán)重。

具體來說,對于一個機(jī)器學(xué)習(xí)算法,我們實際上不是在關(guān)心數(shù)據(jù)的個數(shù)有多大,10萬也好,100萬也罷;我們更關(guān)心的是,這個數(shù)據(jù)里包含的信息有多少,給我們模型訓(xùn)練所帶來的統(tǒng)計信息有多大。數(shù)據(jù)量多會給我們帶來很大的處理負(fù)擔(dān)。

這有一個研究結(jié)果,它衡量了當(dāng)數(shù)據(jù)大小增加時,數(shù)據(jù)中的相關(guān)信息(relevant information)是如何增加的。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

該圖呈現(xiàn)了常見的三個情況:

  • 第一個是水平線:數(shù)據(jù)增加時,信息沒有增加。這個場景很容易理解,如果你的數(shù)據(jù)是周期性的、不斷重復(fù)的,當(dāng)你知道一個周期的數(shù)據(jù)之后,基本上覆蓋了全部的信息,那么再增加更多周期,對訓(xùn)練模型沒有太大幫助。

  • 再一個是Log N的曲線:當(dāng)數(shù)據(jù)的產(chǎn)生過程可以用有限的參數(shù)刻畫時,信息量大概是Log N的速度增加。

  • 還有更快一些的曲線,N0.5,它描述的是更復(fù)雜的情況,數(shù)據(jù)不能用有限闡述的模型刻畫,這種情況下信息量也會更多。

總體上,這三種情況下的信息增加速度都遠(yuǎn)低于線性,充分反映了數(shù)據(jù)中存在很多冗余。所以,在這種大數(shù)據(jù)下,過擬合是一個更值得關(guān)注的問題。

另外,深度學(xué)習(xí)還有其他的問題,比如:不夠魯棒。對于一個訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),正常情況下識別精度很高,但如果對輸入圖片加一些少量干擾(人甚至識別不出來),可能同一個圖像卻完全識別錯了。我們也可以隨意地用樣本誤導(dǎo)它,比如:通過添加噪聲,可以誘導(dǎo)一個網(wǎng)絡(luò)把特定圖像識別成指定的類別。這種特性對于關(guān)鍵領(lǐng)域的應(yīng)用是非常危險的。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

Dropout

因此,對深度學(xué)習(xí)來說,避免過擬合,增加魯棒性是本質(zhì)的問題。Dropout就是一個非常簡單,但很有效的避免過擬合的策略。它是一個隨機(jī)策略:我們在訓(xùn)練網(wǎng)絡(luò)時,每次迭代都隨機(jī)丟掉一些節(jié)點(或權(quán)重)的更新。這種方法對結(jié)果的提升是比較顯著的。

Dropout剛提出時,大家并不清楚如何解釋它。后來,大家在類似的框架下來解釋dropout,包括我們自己在SVM方面的工作。最新的進(jìn)展是Gal和Ghahramani去年的工作,把dropout理解成貝葉斯推理的近似,這也體現(xiàn)了貝葉斯方法在保護(hù)模型,避免過擬合方面的效用。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

Dropout只是一個例子。事實上,貝葉斯和深度學(xué)習(xí)之間還存在很多的關(guān)聯(lián),甚至互補(bǔ)的關(guān)系,如果能夠?qū)⒍哂袡C(jī)融合,將更好地推動人工智能的發(fā)展。

這里有一個很好的貝葉斯的最新進(jìn)展。2015年Science的一篇封面文章介紹了貝葉斯程序?qū)W習(xí)(BPL),它本質(zhì)上是一個多層的貝葉斯生成模型,具有層次的結(jié)構(gòu),因此,也可以看成是一個深度模型。它和深度學(xué)習(xí)不一樣的地方在于,每一層的隨機(jī)過程都有清晰的定義,比較容易解釋,比如說:在刻畫手寫體字?jǐn)?shù)生成的過程是,最上層是一些基本筆畫,然后,通過隨機(jī)采樣會組合出一些部件(parts),再按照一定的規(guī)則組合在一起,形成字符的基本框架;最后是按照一定的噪聲模型,生成所觀察的具體數(shù)據(jù)。

這是一個典型的主觀貝葉斯模型,通過對手寫體字符生成過程的相對精細(xì)的描述,構(gòu)造了一個有意義的層次化結(jié)構(gòu),這樣的好處是可以實現(xiàn)小樣本下的學(xué)習(xí)——通過主觀先驗知識彌補(bǔ)數(shù)據(jù)上的不足。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這個文章展示的是單示例學(xué)習(xí)(one-shot learning):只給模型一個有標(biāo)注的訓(xùn)練數(shù)據(jù),讓它識別其他沒有識別的數(shù)據(jù)。實驗結(jié)果是非常好的,BPL遠(yuǎn)好于一般的深度學(xué)習(xí)網(wǎng)絡(luò)以及針對 one-shot learning做過改進(jìn)的深度網(wǎng)絡(luò)。同時,BPL的結(jié)果比人做的錯誤率還要低。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這是一個很好但也很極端的例子。它把主觀貝葉斯的想法發(fā)揮到了極致,它的先驗分布是基于對問題的深入理解而構(gòu)建的。雖然在特定任務(wù)上表現(xiàn)很好,但問題是與特定領(lǐng)域的結(jié)合太強(qiáng),如果換到另外一個領(lǐng)域,整個BPL要重新設(shè)計。

實際上,深度學(xué)習(xí)和貝葉斯可以看成一個譜(spectrum)的兩個極端?;跀?shù)據(jù)驅(qū)動的深度學(xué)習(xí)需要大量的標(biāo)注數(shù)據(jù)來訓(xùn)練網(wǎng)絡(luò);而貝葉斯方法通過引入知識,加上小的訓(xùn)練樣本也可以達(dá)到很好的效果。大家可以想想,兩者的中間是什么?事實上,越來越多的人在思考,我們能不能朝中間靠攏一些?處在中間的模型應(yīng)該具有兩方面的優(yōu)點:

  • 能夠利用深度學(xué)習(xí)的長處,對復(fù)雜特性進(jìn)行建模和擬合,利用數(shù)據(jù)驅(qū)動的方式進(jìn)行訓(xùn)練;

  • 能夠融合貝葉斯方法的優(yōu)點,刻畫數(shù)據(jù)中存在不確定性,以及小樣本學(xué)習(xí)等。

我們把融合了二者優(yōu)點的方法稱為貝葉斯深度學(xué)習(xí)。

在深度學(xué)習(xí)中應(yīng)用貝葉斯方法

事實上,已經(jīng)有不少工作將貝葉斯方法用在深度學(xué)習(xí)上。早在神經(jīng)網(wǎng)絡(luò)時期,MacKay、Neal等人已經(jīng)開始用貝葉斯來保護(hù)網(wǎng)絡(luò)避免過擬合。后來,也有了一些深入分析。近期的結(jié)果也有不少,其中一個是用非參數(shù)化貝葉斯來學(xué)深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),并且獲得了2010年的AISTATS最佳論文獎。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

接下來,我們來看一下一類重要的,最近進(jìn)展很快的貝葉斯深度學(xué)習(xí)模型——深度生成模型。

它們和判別式模型不一樣,其主要目標(biāo)是構(gòu)建一個能夠刻畫數(shù)據(jù)分布的模型,通過逼近數(shù)據(jù)的真實分布,提取數(shù)據(jù)中的結(jié)構(gòu)。有了這個模型之后,我們可以對它做采樣,產(chǎn)生新的樣本,比如:這是一個手寫體的數(shù)據(jù)集,是從真實分布里采樣得到的。我們學(xué)完生成模型之后,可以得到一個逼近真實分布的模型。我對這個模型再次采樣后會得到一些新的樣本(一些在訓(xùn)練數(shù)據(jù)里面沒有出現(xiàn)過的樣本)。

為什么我們要用生成模型

生成模型有很多用處。首先,是生成新的樣本,即:創(chuàng)作,在學(xué)習(xí)完之后,可以“舉一反三”。其次,可以充分利用無監(jiān)督數(shù)據(jù)進(jìn)行學(xué)習(xí),挖掘數(shù)據(jù)中的結(jié)構(gòu)規(guī)律。再次,可以做半監(jiān)督學(xué)習(xí),融合一小部分有標(biāo)注的數(shù)據(jù)和一大部分未標(biāo)注的數(shù)據(jù)。最后,可以做有條件的生成,比如:從文本到語言的生成、從一種語言到另外一種語言的生成、從圖片到文本的生成等。

最近有很多進(jìn)展,包括比較流行的GAN、VAE等,都是生成模型。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這是對生成模型的一個抽象描述?;究蚣苁且粋€概率模型,可以隨機(jī)采樣。X是我們的觀察變量,在訓(xùn)練集里觀察到一些具體的取值。為了解釋X,生成模型假設(shè)它是由一些隱含的變量產(chǎn)生的,這里用Z表示隱含變量,服從某種分布。從Z生成X的過程可以是隨機(jī)的,比如:p(X|Z),也可以是某種退化的確定性變換X=f(Z)。由于Z的隨機(jī)性,兩種定義都是可以描述X的隨機(jī)性,并對X進(jìn)行采樣。后面會看到一些具體的例子。這里我們先關(guān)注前者。

除了使用有向的貝葉斯網(wǎng)絡(luò)來刻畫,生成模型還可以用無向圖的隨機(jī)場來定義,典型的例子是受限玻爾茲曼機(jī)(RBM)。

這兩類模型都定義了X和Z的聯(lián)合分布。在給定數(shù)據(jù)X的具體值時,我們希望推斷出隱含變量Z的信息,即:后驗分布。這可以通過貝葉斯公式實現(xiàn)。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

下面是一些典型的例子,在機(jī)器學(xué)習(xí)或模式識別的課上可能都講過。最上邊是一個簡單的混合模型,下邊是一個因子分析模型。這些基本模型是構(gòu)建深度生成模型的基本單元。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

深度生成模型

深度生成模型的概念其實很直接,就是,隱含變量Z可以有多層,不同層之間存在連接關(guān)系,這里的連接比深度神經(jīng)網(wǎng)絡(luò)中的要更廣泛,我們即支持確定性的函數(shù)變換(比如:ReLu),也支持隨機(jī)的變換??傮w上,Z是隨機(jī)的,服從某種先驗分布。

在給定觀察樣本時,我們希望反向推斷出來Z的后驗分布。這和一般的神經(jīng)網(wǎng)絡(luò)是完全一樣的,希望Z具有一定的語義,且越高層的Z其語義也高級,以至于能解釋觀察到的現(xiàn)象。 

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這有一個簡單的例子,來說明深度生成模型的定義和靈活性。

這個Z是一個非常簡單的分布:標(biāo)準(zhǔn)高斯。通過隨機(jī)采樣,我們得到一個Z的具體值,然后經(jīng)過一個非線性的網(wǎng)絡(luò)(比如:一個簡單的MLP全連接網(wǎng)絡(luò))變換,我們把該網(wǎng)絡(luò)的輸出定義為刻畫X分布的參數(shù),比如:我們假設(shè)X的兩個維度是獨立的,分布服從高斯分布,那么,MLP的四個輸出神經(jīng)元分布對應(yīng)這兩個高斯分布的均值和方差。

這是一個非常直觀的定義方式,但是,非常有效。我們知道,一個簡單分布的隨機(jī)變量通過函數(shù)變換之后,會得到一個復(fù)雜分布的隨機(jī)變量。這里是使用參數(shù)化的深度神經(jīng)網(wǎng)絡(luò)來定義函數(shù)變換,它的參數(shù)可以通過訓(xùn)練數(shù)據(jù)自動學(xué)習(xí)出來,因此,比人為選擇的特定函數(shù)具有更好的適應(yīng)性。它充分利用了神經(jīng)網(wǎng)絡(luò)強(qiáng)大的函數(shù)擬合能力。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

定義完模型之后,接下來的問題是如何學(xué)習(xí)參數(shù)。根據(jù)前面的介紹,我們的主要目標(biāo)是讓模型分布與數(shù)據(jù)分布盡量接近。因此,需要一個合適的度量,來衡量兩個分布的遠(yuǎn)近。目前,已經(jīng)發(fā)展了多個性質(zhì)較好的準(zhǔn)則學(xué)習(xí)深度生成模型。

  • 最直接常用的方法是最大似然估計(MLE),它適用于定義了數(shù)據(jù)似然函數(shù)的模型。我們后面會有一個典型的例子。

  • 另一種方法是矩匹配(Moment-matching),它實際上歷史比MLE還要早,最早用于估計高斯分布。最近,被用來學(xué)習(xí)深度生成模型,它適用于所有深度生成模型。只要我們能從模型中采樣,就可以通過某種矩匹配的準(zhǔn)則,對模型進(jìn)行優(yōu)化。對于復(fù)雜分布,需要用到核方法。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

  • 另外一種是GAN,它是基于博弈論的思路,定義了一個minimax對抗游戲。其中一個玩家是生成模型G,可以產(chǎn)生一些數(shù)據(jù);另一個玩家是判別模型D。G的目的是“以假亂真”,盡量生成不被D檢測出來的“真實”樣本。D的目的是區(qū)分真實數(shù)據(jù)和虛假數(shù)據(jù)。二者在對抗過程中,不斷學(xué)習(xí)進(jìn)步,最終達(dá)到“均衡”——G分布與真實分布吻合。最近,對GAN的關(guān)注比較多,出現(xiàn)了很多變種。

下面,我們主要介紹MLE的思想,關(guān)于GAN和矩匹配,可以參考其他材料深入了解。

AEVB(Auto-Encoding Variational Bayes)

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

變分推斷是一種常用的對復(fù)雜模型做后驗推斷的工具。為了處理深度生成模型,最近在算法上有一些根本的變化。這里有一個典型的叫AEVB。

深度生成模型的特點在于隱含變量存在復(fù)雜的函數(shù)變換(比如:用神經(jīng)網(wǎng)絡(luò)來刻畫的非線性變換),所以,這種模型的后驗分布p有很多局部概率比較大的點,一般的方法是很難逼近的。AEVB的基本思想是:采用另一個神經(jīng)網(wǎng)絡(luò)定義一個深度產(chǎn)生模型q,來反向逼近目標(biāo)。

這里是一個構(gòu)造從X到Z的變分分布q的例子。我們從數(shù)據(jù)X出發(fā),通過神經(jīng)網(wǎng)絡(luò)變換,其輸出當(dāng)作Z的后驗分布的參數(shù),比如:高斯分布的均值和方差。同樣的,這種定義也是充分利用了神經(jīng)網(wǎng)絡(luò)強(qiáng)大的函數(shù)擬合能力。這個網(wǎng)絡(luò)叫做Q網(wǎng)絡(luò)。相應(yīng)的,生成數(shù)據(jù)的網(wǎng)絡(luò)稱為P網(wǎng)絡(luò)。這網(wǎng)絡(luò)的參數(shù)可以一起優(yōu)化,比如:使用隨機(jī)梯度的方法。

把Q-P網(wǎng)絡(luò)放在一起,我們可以構(gòu)成如下的圖示。它看上去和一個標(biāo)準(zhǔn)的Auto-Encoder是類似的結(jié)構(gòu),差別在于這里的變量是隨機(jī)的,我們要處理的目標(biāo)是概率分布。正因為這種類似,這種方法被稱為Auto-Encoding Variational Bayes (AEVB)。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

上面是AEVB的基本框架,當(dāng)然,在具體做的時候,還有一些細(xì)節(jié),比如:如何計算隨機(jī)梯度?如何控制隨機(jī)梯度的方差?如何自適應(yīng)調(diào)整步長等等。這里就不在一一介紹了。

下面還有一點時間,快速看一些具體的例子。

首先,在AEVB中,Q-P 網(wǎng)絡(luò)一般是對稱的,P怎么生成的,Q網(wǎng)絡(luò)就反過來。但是,實際上非對稱的網(wǎng)絡(luò)可能更適合。我們知道,用于識別的網(wǎng)絡(luò)Q,其主要目的是從底層輸入中逐層抽象,提取高層的特征表示。但是,在提取過程中,我們會丟失細(xì)節(jié)信息。所以,到了高層的Z之后,再反過來生成X,實際上細(xì)節(jié)信息就沒有了,而且沒辦法恢復(fù)。一個簡單的解決思路是打破這種對稱結(jié)構(gòu),讓生產(chǎn)網(wǎng)絡(luò)具有某種機(jī)制,把細(xì)節(jié)信息記下來,在生成新樣本時,可以使用。

這里我們做了一個初步嘗試,在生成網(wǎng)絡(luò)上引入可以學(xué)習(xí)的記憶(memory)單元,這個memory是記細(xì)節(jié)信息的。在生成具體圖像時,通過一個有選擇性的模型,得到一個稀疏的權(quán)重向量,對memory中的單元進(jìn)行加權(quán)求和,并且與高層表示結(jié)合在一起,就可以生成底層想要的細(xì)節(jié)信息,基本的結(jié)構(gòu)如下圖所示,多個基本層疊加在一起,可以構(gòu)造一個深度生成模型。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

這個想法很簡單,受到了腦科學(xué)的啟發(fā),它的實際效果很顯著?;旧显诓辉黾泳W(wǎng)絡(luò)參數(shù)的情況下,用memory記得信息得到的恢復(fù)結(jié)果要比不用的好很多,生成質(zhì)量會更好。

深度生成模型最主要的任務(wù)是做樣本生成,從未標(biāo)注數(shù)據(jù)中學(xué)習(xí)。最近,也被用來做半監(jiān)督學(xué)習(xí),其主要目的是利用大量未標(biāo)注數(shù)據(jù),學(xué)習(xí)更好的分類器。這里面有兩個問題需要回答,首先,深度生成模型的識別精度如何?其次,如何將未標(biāo)注和有標(biāo)注數(shù)據(jù)很好地融合在一起?我們課題組做了一些探索,發(fā)現(xiàn)深度生成模型在適當(dāng)訓(xùn)練的情況下,其識別精度可以與判別式神經(jīng)網(wǎng)絡(luò)類似,而且產(chǎn)生新樣本的能力沒有受影響,這在一些困難場景下具有優(yōu)勢,比如:當(dāng)輸入樣本被污染,或者存在缺失數(shù)據(jù)時,可以用生成模型對數(shù)據(jù)進(jìn)行恢復(fù),其識別性能往往不會受到很大影響;相反,判別式的神經(jīng)網(wǎng)絡(luò)是不具備這些能力的,其精度往往惡化嚴(yán)重。在識別任務(wù)中,深度生成模型也可以利用卷積運算以及池化操作等,處理復(fù)雜的圖像。

對于第二個問題,最近也有不少進(jìn)展,包括我們自己的工作,半監(jiān)督的深度生成模型在很多任務(wù)上都獲得了當(dāng)前最好的識別精度。更有趣的是,在半監(jiān)督任務(wù)下,我們可以把類別信息和風(fēng)格(style)信息區(qū)分開,生成特定變化的樣本。例如:在生成的時候,可以先給定一個類,通過變化Style,得到同一個類的不同Style的圖像(如MNIST字符);也可以通過固定Style,變化類別得到不同類別的相同Style的圖像。因此,可以從兩個維度刻畫生成的樣本。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

以上是我想跟大家分享的。我想說的主要觀點是:即使在做深度學(xué)習(xí)或者大數(shù)據(jù)時,經(jīng)典的貝葉斯方法還是非常有用的,而且應(yīng)該得到大家的重視?,F(xiàn)在比較活躍的一個發(fā)展方向。從歷史上看,人工智能的基本原理很大層度上依賴于概率統(tǒng)計。深度學(xué)習(xí)也會一樣。我相信會有越來越多的工作在這方面深入探索。

最后,我們還做了一個事情,值得和大家分享。我們知道,深度神經(jīng)網(wǎng)絡(luò)的快速發(fā)展離不開開源平臺的貢獻(xiàn),比如TensorFlow、Caffe、Theano等等。這些平臺都是支持神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測試,目前仍然缺乏一個有效的平臺,支持貝葉斯深度學(xué)習(xí)、深度生成模型等。如果每個模型都從底層開始實現(xiàn),將會是一個非常痛苦的事情。為了降低深度生成模型的使用和開發(fā)門檻,我們研發(fā)了“珠算”(ZhuSuan)Python庫,已經(jīng)在Github上開源,歡迎大家試用( https://zhusuan.readthedocs.io)。珠算是基于TensorFlow的,充分支持TensorFlow中的各種運算,非常好用,實現(xiàn)一個深度生成模型就像一個普通的神經(jīng)網(wǎng)絡(luò)一樣方便。

以上為朱軍老師的《貝葉斯學(xué)習(xí)前沿進(jìn)展》分享,更多干貨請關(guān)注雷鋒網(wǎng)。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

清華大學(xué)朱軍博士:可擴(kuò)展的貝葉斯方法與深度生成模型

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說