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