作者 | 蔣寶尚 編輯 | 叢 末 6月6日,,中國計算機學(xué)會(CCF)主辦的中國計算機學(xué)會青年精英大會(CCF YEF)在線上舉行,,在“經(jīng)典流傳的機器學(xué)習(xí)與數(shù)據(jù)挖掘算法”技術(shù)論壇上,明略科技首席科學(xué)家,、明略科學(xué)院院長吳信東,;UCLA 副教授孫怡舟;微軟雷蒙德研究院高級研究科學(xué)家東昱曉,;CCF高級會員,、清華大學(xué)計算機系長聘教授朱軍;CCF高級會員,、中科院計算所研究員沈華偉幾位特邀專家?guī)ьI(lǐng)了大家重溫經(jīng)典,,解讀他們心目中的經(jīng)典機器學(xué)習(xí)與數(shù)據(jù)挖掘算法,并與大家分享了這些算法的起源,、應(yīng)用與影響,。 其中,朱軍教授做了題為《貝葉斯學(xué)習(xí)回顧與展望》報告,,總時長為1個小時左右,,內(nèi)容主要分為五個部分:貝葉斯理論應(yīng)對不確定性、貝葉斯理論和經(jīng)典算法,、可擴展的貝葉斯方法,、珠算編程庫以及應(yīng)用貝葉斯理論的一些例子。 下文是本場報告的文字版,,由 AI 科技評論編輯,。 1 貝葉斯應(yīng)對不確定性為什么要用貝葉斯做機器學(xué)習(xí)或者人工智能?主要因為“不確定性”的存在,。首先是處理對象的不確定性,,例如無人駕駛,其環(huán)境和系統(tǒng)就存在很多我們未知的隨機因素,。 再例如對抗樣本研究(惡意干擾產(chǎn)生的不確定性),,如果在一張圖片中加上少量的噪音,,雖然展示效果對人眼沒有影響,而足以讓人工神經(jīng)網(wǎng)絡(luò)產(chǎn)生誤判,。 另一個不確定性來自模型方面?,F(xiàn)在的模型“體量”越來越大,一個經(jīng)典的模型甚至達到了十億規(guī)模的參數(shù),,而最近,,包含上千億參數(shù)的模型也已經(jīng)出現(xiàn)。 所以模型已經(jīng)足夠大,,訓(xùn)練的重點應(yīng)該在于數(shù)據(jù)量有多少,。如上圖所示,右邊三條曲線刻畫了“有用”信息的增長速度,,其中最快的增長速度為N的1/2次方,。這反映的事實是,有用信息的增長“跟”不上模型體量的增長速度,。這種形式模型的不確定性,,直觀的體現(xiàn)為過擬合的現(xiàn)象。 通常模型給的輸出(例如深度神經(jīng)網(wǎng)絡(luò))往往是一個概率,,研究員通常把此概率解釋成置信度,。而實際上并不能反映不確定性的因素,這種度量也過于樂觀,。 舉例而言,,如上圖,白色區(qū)域是可以觀察到的訓(xùn)練數(shù)據(jù),,右邊灰色是無法觀測到的數(shù)據(jù),,如果用觀察到的數(shù)據(jù)做訓(xùn)練,會得到一個表現(xiàn)(擬合)優(yōu)秀的曲線,。而實際上的預(yù)測的任務(wù)是將曲線外延(延伸到灰色區(qū)域),,也即所預(yù)測的數(shù)據(jù)偏離了訓(xùn)練數(shù)據(jù),這會帶來“很高”的不確定性,。 針對上述不確定性,,傳統(tǒng)模型無法有效應(yīng)對。 2 貝葉斯理論那么面對這一類的不確定性應(yīng)該如何建模,?核心是用概率的方法,,也叫貝葉斯方法。原理很簡單,,如上圖所示,,中間的那個公式就是貝葉斯公式。此公式包含先驗,、似然函數(shù)以及后驗分布,。沒看到數(shù)據(jù)之前,,模型有先驗(π(θ)),有了數(shù)據(jù)之后,,建模得到的是似然模型(P(D|θ)),,有了這兩個因素可以根據(jù)貝葉斯定律計算后驗概率(P(θ|D))。 如果追溯歷史,,最早在1763年就有文章討論貝葉斯理論,,正式發(fā)表則是在貝葉斯去世之后。而目前機器領(lǐng)域內(nèi)有貝葉斯方法和非貝葉斯方法之爭,,總體來說在社區(qū)內(nèi)共處得還算融洽,。2015年nature也發(fā)表了一篇文章《Probabilisticmachine learning and artificial intelligence》詳細闡述了關(guān)于概率的機器學(xué)習(xí)以及人工智能里邊的一些核心的問題、思想等進展,,感興趣的可以去閱讀,。 3 經(jīng)典的貝葉斯方法經(jīng)典的方法從Naive貝葉斯開始,上圖是形式化的描述,。作為一種簡單貝葉斯模型,其假設(shè)給定標(biāo)簽變量(Y)的情況下,,其輸入特征是條件獨立的,。例如,大腦中想象一只鳥,,那么就會聯(lián)想其特征是:飛行,、羽毛、腿等等,。 上述“聯(lián)想”的過程可以用貝葉斯建模,,通過定義聯(lián)合分布,運用貝葉斯公式,,可以得到在給定輸入特征(X)的情況下得到“標(biāo)簽(Y)”的后驗分布(編者注:像不像高數(shù)中的條件概率公式?),,有了后驗分布然后就可以做稱作貝葉斯決策的最優(yōu)決策。 Naive貝葉斯之后非常重要的一種擴展是貝葉斯準(zhǔn)則和圖論的結(jié)合,,也即貝葉斯網(wǎng)絡(luò),。例如食物鏈,上面很多物種之間存在依賴關(guān)系,,這種關(guān)系并不是隨機無規(guī)律的,,其規(guī)律已經(jīng)被生物學(xué)家洞察。所以,,食物鏈的關(guān)系(聯(lián)合分布)就可以用右邊稀疏連接的圖來簡潔刻畫,,圖上的每一個節(jié)點都是隨機變量,線代表了點之間的關(guān)系,,這種點與線之間的結(jié)構(gòu)清晰表達了多個變量的聯(lián)合分布,。這種圖結(jié)構(gòu)的表達方式將指數(shù)級別的參數(shù)需求降到了多項式級別,,同時也將專家的知識納入到模型里。所以,,貝葉斯更像是一種非常強大的建模語言,。 另一個非常重要進展是從完全可觀測(fully observed)到隱變量的模型變化。完全可觀測是指所有隨機變量的取值,,在訓(xùn)練數(shù)據(jù)里都是完全可獲得的,。考慮到實際情況,,并不是如此“完全”,,例如對上圖文檔集合進行分析,用語言模型進行建模時,,會發(fā)現(xiàn)數(shù)據(jù)之間存在復(fù)雜的結(jié)構(gòu)(例如不同類的文章用詞不同),,這些結(jié)構(gòu)在訓(xùn)練集中無法直接觀測,這種無法直接觀測到的變量被稱為隱變量,。 對于上面這個例子,,我們可能會引入一個變量去表示,從而找到某一文檔從哪一個會議中來,,即可能來自SIGIR也可能來自ICML,,對于不同的會議論文,如果用不同的語言模型進行描述的,,就能準(zhǔn)確刻畫它們不同的風(fēng)格,。這種想法可以用上圖右邊所示的概率圖模型進行描述。先對隱變量有一個先驗分布,,然后給定這個隱變量,,再用相應(yīng)的語言模型進行定義X,如此便能進行推斷,。也即給定觀察到的X,,就能找到“它”屬于哪一類的文章。 這里實際上還有一個重要的問題,,即這個參數(shù)從哪來,?例如在語言模型里,它的參數(shù)怎么學(xué)習(xí),? 對于這種有隱變量的模型,,有一個非常經(jīng)典的EM算法,對于不能觀測到的變量(隱變量)添加了E-step,,即進行用概率推斷的方法估計隱變量,,然后基于估計的信息就可以在M-step里更新模型的自由參數(shù)。 針對文本建模,另外一個重要的方法是LDA(LatentDirichlet Allocation),,這個模型有兩層隱變量,,一層是文檔級別的,即對多個主題有多個混合概率,;第二層是對word本身的,,即對每個單詞有一個特定的主題。 另外,,關(guān)于貝葉斯理論還有一個更加普遍的解釋:與機器學(xué)習(xí)里的優(yōu)化問題結(jié)合起來,,將貝葉斯推理過程等價成一個最優(yōu)化的問題,例如最小化一個目標(biāo)函數(shù),,然后添加一些簡單的約束,,在優(yōu)化過程中也可以把先驗信息、數(shù)據(jù)等內(nèi)容考慮進來,。 更加直觀抽象一些,,可以用信息處理的過程進行描述:輸入先驗分布、數(shù)據(jù)的似然,,然后通過某種準(zhǔn)則的信息處理,,得到后驗分布的輸出,其中,,后驗分布包括輸入的所有信息,。這種觀點是一般性的信息處理的準(zhǔn)則,實際上這種準(zhǔn)則可以比較靈活定義,。 這種基于優(yōu)化的解釋,實際上在上世紀(jì)80年代就有統(tǒng)計學(xué)家提出過,,E.T. Jaynes是比較有名的統(tǒng)計學(xué)家,,對我們前面講的優(yōu)化解釋做了一些comments,它給經(jīng)典的貝葉斯提供了一個新穎的解釋,,可以讓貝葉斯方法更廣泛被應(yīng)用,,而且激發(fā)了新的發(fā)展。 基于這種信息處理過程的優(yōu)化思想,,2014年的時候,,我們曾經(jīng)對貝葉斯定理本身做了一個推廣和泛化——正則化的貝葉斯推理(RegBayes)。核心的思想是對后驗分布(q)直接進行性質(zhì)約束,,例如定義后驗分布在某些分類任務(wù)上的性能,。這種靈活的建模框架能夠完成推理與凸正則化所需的post數(shù)據(jù)后驗分布,。當(dāng)凸正則化是誘導(dǎo)從線性算子的后驗分布,,可以用凸分析理論求解RegBayes問題。 在RegBayes的框架指導(dǎo)下,發(fā)展了一系列優(yōu)秀的算法,,包括將最大間隔準(zhǔn)則融入到貝葉斯推理,、將知識(如一階謂詞邏輯表示的知識)融入到貝葉斯推理中等。 4 可擴展貝葉斯機器學(xué)習(xí)當(dāng)前的可擴展的貝葉斯機器學(xué)習(xí)有兩個方向,,一個是在人工智能或者深度學(xué)習(xí)火之前,,針對大數(shù)據(jù)的處理發(fā)方法。 在算法層面,,概率機器學(xué)習(xí)最主要有兩類算法,,一種是變分的方法,其背后也是EM算法的思想,。因為直接計算后驗分布非常困難,,所以變分法的操作手段主要是找“近似”,例如假設(shè)有一個簡化的概率分布q,,這個q在某個分布的子集里面,,然后通過一個最優(yōu)化的問題來找到一個最優(yōu)的逼近。這種方法實際上是將推理的問題和優(yōu)化結(jié)合在一起,,所以就會用到很多的比較先進的優(yōu)化技巧,,可以讓變分方法非常高效。 但是這種方法的天然缺點是:如果子集定義不準(zhǔn)確,,可能會帶來近似誤差,,而且這種誤差實際上消除不掉。 和變分法對應(yīng)的是蒙特卡洛方法,,其采用隨機采樣的思想,,如上圖右邊所示模擬粒子的演化的過程:粒子不斷演化,最終如果模擬時間足夠長的話,,就會收斂到想要的目標(biāo)分布,。這里也有很多挑戰(zhàn),例如模型參數(shù)非常多,,那么它的維度就很高,。 蒙特卡洛方法在理論上可以保證是精確,但是效率是比較低,,體現(xiàn)在兩方面:一是收斂速度比較慢,,二是粒子的利用效率比較低。 所以在大數(shù)據(jù)的場景下,,大概有兩個方面的發(fā)展,,一是從處理Batch到處理Mini-batch,貝葉斯方法在理論上非常適合處理這種“流”數(shù)據(jù)或者是Online推斷,,由于每一步的后驗分布并不能精確的計算,,所以發(fā)展了許多近似方法。 二是從集中計算到分布式。貝葉斯定理本身非常適合分布式,,當(dāng)數(shù)據(jù)分布在多個機器上,,可以對每個局部的數(shù)據(jù)進行后驗推斷,然后再將后驗分布集中起來做簡單運算,,就可以得到整體精確的經(jīng)驗分布,。這種方式在理論上非常漂亮,但是在實際中不可對每一個局部的后驗分布進行精確計算,,因此發(fā)展了很多分布式的近似算法,。 第二個可擴展的貝葉斯機器學(xué)習(xí)方法是處理人工智能相關(guān)問題。這個方向下有兩個主題,,一個是用貝葉斯做深度學(xué)習(xí)(Bayesian Deep Learning),,另一個是用深度學(xué)習(xí)做貝葉斯(Deep BayesianLearning)。 貝葉斯方法和深度學(xué)習(xí)方法的“聯(lián)姻”可以追溯到上世紀(jì)90年代的甚至更早,,當(dāng)時大家主要研究的是如何用貝葉斯方法進行神經(jīng)網(wǎng)絡(luò)的計算,,或者進行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的選擇。當(dāng)時面臨的困難和主要問題是數(shù)據(jù)缺乏和計算能力不足,,所以很多神經(jīng)網(wǎng)絡(luò)訓(xùn)練的深度非常的淺,。 例如David MacKay(其導(dǎo)師是John JHopfield)的博士論文就是用貝葉斯方法進行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的選擇。論文中提到的一個結(jié)論也非常有名,,即做貝葉斯一定程度上可以等價奧卡姆剃刀準(zhǔn)則,。 另一篇博士論文來自R.M. Neal(其導(dǎo)師是Hinton),他在論文中提到的一個非常漂亮的結(jié)論是:如果對神經(jīng)網(wǎng)絡(luò)來做貝葉斯計算,,在一定條件下,,整個的模型會變成高斯過程。這個結(jié)論把機器學(xué)習(xí)和概率論關(guān)聯(lián)在了一起,,從而促進了概率論在機器學(xué)習(xí)中深入的研究,。 當(dāng)然這不是故事的全部,隨著深度神經(jīng)網(wǎng)絡(luò)變得越來越深,,可以到處看到貝葉斯方法的身影,比如Dropout,,讓我們在訓(xùn)練的時候隨機丟掉一些邊或者丟掉一些結(jié)點,,然后在更新的時候不進行更新。 但當(dāng)Hinton最早提出Dropout的時候,,并沒有解釋Dropout如此有效背后的原理,。2016年ICML有一篇文章提到:實際上Dropout是在做近似的貝葉斯計算。同樣基于這種理解,,有一個更準(zhǔn)確估計預(yù)測置信度的方法,,叫MC-Dropout。即通過多次采樣的話,可以得到一個更精確的估計,,但這個估計還是會存在一些誤差,。 另外,在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索層面,,10年前就有學(xué)者研究怎么用貝葉斯的方法生成神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),,當(dāng)時用的技術(shù)叫做非參數(shù)化的貝葉斯,它在理論上是非常優(yōu)雅的隨機過程,,可以隨機刻畫神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的生成的過程,,例如神經(jīng)網(wǎng)絡(luò)的層數(shù),每一層的神經(jīng)元的連接方式等等都可以用隨機過程刻畫,。然后從隨機過程中進行采樣,,每一個樣本就對應(yīng)一個網(wǎng)絡(luò)結(jié)構(gòu)。當(dāng)時的一些例子如上圖,。 上面的幾個例子都是用貝葉斯研究神經(jīng)網(wǎng)絡(luò),,那么如何用深度神經(jīng)網(wǎng)絡(luò)做貝葉斯學(xué)習(xí)呢?如該圖示意,,一些簡單的隨機變量(如均勻分布或標(biāo)準(zhǔn)高斯),,經(jīng)過函數(shù)變換之后得到的隨機變量的分布可能“形式各樣”。所以變換函數(shù)如何獲得是重點,,在機器學(xué)習(xí)中思考的是這個變換函數(shù)能不能學(xué)習(xí)獲得,? 當(dāng)前深度學(xué)習(xí)的方法是將這個函數(shù)定義為一個神經(jīng)網(wǎng)絡(luò),然后賦予變換函數(shù)以神經(jīng)網(wǎng)絡(luò)強大的能力,,然后在用數(shù)據(jù)驅(qū)動神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,。如上圖右所展示,可以將白噪聲(無信息)輸入神經(jīng)網(wǎng)絡(luò)進行變換,,然后得到信息豐富的圖片,。 這種方法現(xiàn)在叫做深度生成模型,例如GAN,、VAE,、基于Flow的模型等等。這類模型在機器學(xué)習(xí)里被研究了很多,,大概可以分成兩類,,一種叫顯式的模型,一種叫隱式的模型,。顯式的模型對數(shù)據(jù)產(chǎn)生的過程有明確的概率函數(shù)刻畫,。隱式的模型不關(guān)心概率函數(shù)長成什么樣子,只關(guān)心樣本變化產(chǎn)生的過程,,例如GAN就是一個典型隱式的模型,。 5 怎么去編程-珠算講完建模和算法,,接下來講如何去編程。如果對貝葉斯計算和概率進行建模,,不光需要關(guān)心映射,,還要關(guān)心數(shù)據(jù)里不確定的因素,所以這對傳統(tǒng)的編程框架有了新的這種要求,。 大在2013~2014年的時候,,機器學(xué)習(xí)領(lǐng)域就在發(fā)展深度的概率編程的框架,我們組也做了“珠算”( 具體操作舉例:首先要對數(shù)據(jù)建模,,define一個model,此model實際上是用貝葉斯網(wǎng)絡(luò)進行描述,,在里面還可以像畫圖一樣添加節(jié)點,,每個節(jié)點可以是隨機的,也可以是神經(jīng)網(wǎng)絡(luò),。最后返回的是一個貝葉斯網(wǎng)絡(luò)的對象,。 珠算里也支持了變分和蒙特卡洛兩大類的方法,包括了現(xiàn)在最主流的推理算法,。珠算里也有很多已經(jīng)實現(xiàn)的模型,,比如像比較經(jīng)典的 topic model、矩陣分解,、貝葉斯高斯過程,、卷積操作等等。 6 貝葉斯建模的應(yīng)用例子上面是MIT做的一個例子,,主要針對小樣本學(xué)習(xí),,當(dāng)時MIT用貝葉斯建模的方法叫Bayesian Program Learning。其內(nèi)涵是一個多層的貝葉斯模型,,能夠用一些基本的部件通過某種組合得到一些更大的部件,,然后再在進行某種關(guān)系的組合,最后去用噪聲渲染模型生成手寫字符,。 所以整個字符生成過程用貝葉斯的方法刻畫了出來,。此模型已經(jīng)引入很強的領(lǐng)域知識,,所以在訓(xùn)練的時對數(shù)據(jù)的依賴就沒那么強,。甚至模型只觀察一個樣類(one-shot),,就可以做到比較精確的分類。當(dāng)時展示的效果也是超過了人類的精度,。 上圖的例子是關(guān)于預(yù)測不確定性的,,最初做這個項目最主要的是想計算預(yù)測的置信度,即用貝葉斯估計預(yù)測的區(qū)間,。最后的效果是預(yù)測的錯誤率也顯著下降,。 上圖例子也是關(guān)于半監(jiān)督學(xué)習(xí)的,針對如何有效地利用未標(biāo)注數(shù)據(jù)得到更好的分類器,。這需要對未標(biāo)注數(shù)據(jù)進行概率建模,,我們當(dāng)時做了一個叫Triple-GAN的工作,在有完整理論加持下,,效果顯著,。 上圖的算法可以在遇到不確定或者是很難的樣類時選擇拒絕。這種“拒絕”的功能傳統(tǒng)算法是做不到的,。貝葉斯加持下的置信度計算可以實現(xiàn)這種功能,。同時,我們可以對“被拒絕”的樣本進行變換,,得到一個新的樣本,,同時提升它的分類精度和置信度。 上圖的例子是報告開始的時候提到的對抗性樣本,,即向真實樣本中添加人眼不可見的噪聲,,導(dǎo)致深度學(xué)習(xí)模型發(fā)生預(yù)測錯誤的樣本。在ICML2018 的一篇論文《 Max-Mahalanobis LinearDiscriminant Analysis Networks》,,我們定義了一種特殊的高斯混合分布MMD,,并且理論性地證明了如果輸入分布是 MMD,那么線性判別分析(LDA)對于對抗樣本有非常好的魯棒性,?;谶@一發(fā)現(xiàn),論文中提出了 MM-LDA 網(wǎng)絡(luò),。簡單而言,,該網(wǎng)絡(luò)將復(fù)雜的輸入數(shù)據(jù)分布映射到服從 MMD 分布的隱藏特征空間,并使用 LDA 做最后的預(yù)測,。 最后總結(jié):我們首先明確了做機器學(xué)習(xí)或做人工智能,,其中有很重要的因素是要考慮不確定性,因為方法不管是怎么開發(fā)出來的,,最終的應(yīng)用的環(huán)境一定是開放的,、未知的環(huán)境。貝葉斯的方法實際上提供了一種非常強大的語言,。貝葉斯實際上代表了一類的思想,,從編程的角度來看,,這實際上是一種編程的范式。 在報告中我也分享了如何用貝葉斯方法處理大數(shù)據(jù),,包括和深度學(xué)習(xí),、深度神經(jīng)網(wǎng)絡(luò)融合的最新的進展。 也提到了珠算這一深度的概率編程的:珠算基本上能夠?qū)崿F(xiàn)了現(xiàn)在最好算法以及一些常用的模型,。 最后講了一些實際的例子,,即用貝葉斯方法到底可以解決什么樣的問題。 招 聘 AI 科技評論希望能夠招聘 科技編輯/記者 一名 辦公地點:北京/深圳 職務(wù):以參與學(xué)術(shù)頂會報道,、人物專訪為主 工作內(nèi)容: 1,、參加各種人工智能學(xué)術(shù)會議,并做會議內(nèi)容報道,; 2,、采訪人工智能領(lǐng)域?qū)W者或研發(fā)人員; 3,、關(guān)注學(xué)術(shù)領(lǐng)域熱點事件,,并及時跟蹤報道。 要求: 1,、熱愛人工智能學(xué)術(shù)研究內(nèi)容,,擅長與學(xué)者或企業(yè)工程人員打交道; 2,、有一定的理工科背景,,對人工智能技術(shù)有所了解者更佳; 3,、英語能力強(工作內(nèi)容涉及大量英文資料),; 4、學(xué)習(xí)能力強,,對人工智能前沿技術(shù)有一定的了解,,并能夠逐漸形成自己的觀點。 感興趣者,,可將簡歷發(fā)送到郵箱:[email protected] |
|