技術(shù)講解概率機器學(xué)習(xí)——深度學(xué)習(xí)革命之后 AI 道路
2018-08-13 來源:raincent

Zoubin Ghahramani 是英國皇家學(xué)會會士,劍橋大學(xué)信息工程系教授,Uber 首席科學(xué)家,英國國家數(shù)據(jù)科學(xué)研究所圖靈研究所劍橋主任。Zoubin Ghahramani 教授曾工作或?qū)W習(xí)于賓夕法尼亞大學(xué)、MIT、多倫多大學(xué)、倫敦大學(xué)學(xué)院蓋茨比組、卡耐基梅隆大學(xué)。他的研究聚焦于機器學(xué)習(xí) / 人工智能概率方法,在這些主題上已經(jīng)發(fā)表了超過 250 篇論文。他曾是 Geometric Intelligence(被 Uber 收購,成為了 Uber AI Labs)的聯(lián)合創(chuàng)始人,指導(dǎo)眾多人工智能與機器學(xué)習(xí)公司。2015 年,因其對機器學(xué)習(xí)的貢獻,被選為英國皇家學(xué)會會士。

如今人工智能與機器學(xué)習(xí)的發(fā)展令人振奮。這幾年,我們在游戲中取得了各種突破,例如玩 Atari 游戲、圍棋、撲克。更重要的是,如今這個時代對應(yīng)用機器學(xué)習(xí)與人工智能非常感興趣,例如語音識別、計算機視覺、推薦系統(tǒng)、自動駕駛等。
當(dāng)我們思考人工智能時,會想到我們當(dāng)前處于什么狀態(tài)?離我們想要的人工智能還有多遠?我們是否有解決未來挑戰(zhàn)的理論基礎(chǔ)?為了解決賦有挑戰(zhàn)性的 AI 任務(wù),我們需要關(guān)于感知、學(xué)習(xí)、推理與決策的理論。這也是我們建立 AI 系統(tǒng)的方式。
深度學(xué)習(xí)的火熱與缺陷

如今深度學(xué)習(xí)是最為最為火熱的學(xué)習(xí)方法。很多人,特別是剛進入 AI 領(lǐng)域不久的人會認(rèn)為深度學(xué)習(xí)可以解決所有問題,是建立智能系統(tǒng)的有力工具。所以,什么是深度學(xué)習(xí)系統(tǒng)?

深度學(xué)習(xí)就是神經(jīng)網(wǎng)絡(luò),而神經(jīng)網(wǎng)絡(luò)是帶有許多參數(shù)的可調(diào)非線性函數(shù)。上圖中,參數(shù)θ是神經(jīng)網(wǎng)絡(luò)的權(quán)重。神經(jīng)網(wǎng)絡(luò)是特別有趣的函數(shù),因為輸入 x 和參數(shù)θ都是非線性的,F(xiàn)在神經(jīng)網(wǎng)絡(luò)所做的是,通過一個函數(shù)組合從輸入 x 到輸出 y 表示這一函數(shù),也就是神經(jīng)網(wǎng)絡(luò)中的層?偨Y(jié)來說,神經(jīng)網(wǎng)絡(luò)的核心是非線性函數(shù) + 基礎(chǔ)統(tǒng)計 + 基礎(chǔ)優(yōu)化。

深度學(xué)習(xí)可以說是神經(jīng)網(wǎng)絡(luò)的重新包裝,F(xiàn)代深度學(xué)習(xí)系統(tǒng)非常類似于 80 、90 年代流行的神經(jīng)網(wǎng)絡(luò)模型,也有一些重要的變化:
1. 新的架構(gòu)與算法上的創(chuàng)新(例如多層網(wǎng)絡(luò)、ReLU、dropput、LSTM 等);
2. 非常重要的是我們當(dāng)前有非常大的數(shù)據(jù)集;
3. 非常大規(guī)模的計算資源(GPU、云);
4. 更好的軟件工具(Theano、Torch、TensorFlow),更方便的建立神經(jīng)網(wǎng)絡(luò);
5. 還有產(chǎn)業(yè)越來越大的投資也媒體關(guān)注;
以上使得越來越多的人進入到 AI 領(lǐng)域,發(fā)展也越來越快。因此,深度學(xué)習(xí)領(lǐng)域可以說去的了非常大的發(fā)展,也對人工智能非常重要。

但深度學(xué)習(xí)系統(tǒng)也有缺陷。雖然這些系統(tǒng)在許多基準(zhǔn)任務(wù)上有非常好的表現(xiàn),但它們也有缺陷:
1. 需要大量數(shù)據(jù),例如總需要數(shù)百萬的樣本(data hungry);
2. 需要大量計算資源來訓(xùn)練以及部署深度學(xué)習(xí)系統(tǒng);
3. 表征不確定性的能力極差;
4. 融合先驗知識與符號表征對深度學(xué)習(xí)非常重要,這也是許多人在研究的;
5. 易受對抗樣本的影響;
6. 過于繁瑣的優(yōu)化:非凸的,找到最好的架構(gòu)選擇,學(xué)習(xí)流程,初始化等;
7. 深度學(xué)習(xí)是難以解釋的黑箱,缺乏透明度,難以令人信任,使得深度學(xué)習(xí)難以部署到一些非常重要的任務(wù)上。
這些事深度學(xué)習(xí)的挑戰(zhàn),也是研究員們想要戰(zhàn)勝的難題。
模型的概率視角
盡管深度學(xué)習(xí)非常流行,但接下來我們需要考慮的是機器學(xué)習(xí)下一步的發(fā)展是什么。因此,我們需要將機器學(xué)習(xí)視為概率建模問題。在機器學(xué)習(xí)中,模型表述了從某個系統(tǒng)中能觀察到的所有數(shù)據(jù),也就是說模型不僅可以描述所有我們收集到的某種數(shù)據(jù),同時它還能描述那些沒收集到的同類數(shù)據(jù)。
概率是推理不確定性的數(shù)學(xué),正如微積分是推理變化率的數(shù)學(xué)。概率語言模型能夠捕捉復(fù)雜的推理,發(fā)現(xiàn)未知,無需監(jiān)督即可揭開數(shù)據(jù)的結(jié)構(gòu)。并且,概率可使得專家通過先驗信念的形式把知識注入到 AI 系統(tǒng)。
如果當(dāng)我們對世界的某種數(shù)據(jù)建模時,我們需要預(yù)測那些沒觀察到的數(shù)據(jù)以及它們之間的不確定性,因此我們可以使用數(shù)學(xué)中概率論描述這種不確定性并完成「模型」的構(gòu)建。

在使用概率論描述模型中的不確定性后,貝葉斯概率能允許我們推斷未知量,并調(diào)整模型以從數(shù)據(jù)中學(xué)習(xí)。Zoubin Ghahramani FRS 表示機器學(xué)習(xí)中的很多問題都能歸結(jié)到這一個貝葉斯框架內(nèi),或者至少需要歸結(jié)到這一框架。
為了進一步解釋貝葉斯推斷,Zoubin 進一步解釋了貝葉斯法則。簡單而言,貝葉斯法則可以描述為「執(zhí)果索因」,即知道某個事件發(fā)生了后,求得該事件最可能是在什么情況下發(fā)生的。在 ML 中,貝葉斯法則會告訴我們?nèi)绾胃聦ξ粗澜缁蚣僭O(shè)(hypothesis)的知識與信念,且更新假設(shè)或信念的信息從我們已知的觀察或數(shù)據(jù)(data)中獲取。
如下所示若需要在給定數(shù)據(jù)的條件下判斷假設(shè)存在的可能性,我們只需要根據(jù)該貝葉斯法則就能求出。

在貝葉斯法法則中,總體數(shù)據(jù)是未知的,也就是說我們需要使用概率分布表征這種不確定性。在觀察到數(shù)據(jù)之前,我們有先驗概率 P(hypothesis),它表示我們事先認(rèn)為任意一個假設(shè)及其所出現(xiàn)的概率。此外,對于任意一個假設(shè),我們需要評估根據(jù)它能觀察到數(shù)據(jù)的概率,即 P(data|hypothesis)。這與似然度非常相似,當(dāng)我們乘上這兩個概率項,并通過除上所有可能的假設(shè)來做歸一化,我們就可以得到后驗概率P(hypothesis|data)。
這是一種通用的法則來根據(jù)數(shù)據(jù)更新我們對假設(shè)的信念,這一個法則同樣告訴我們該如何執(zhí)行學(xué)習(xí)過程。學(xué)習(xí)其實就是將先驗知識遷移到后驗知識,如果我們獲得更多的數(shù)據(jù),那么僅僅只是反復(fù)對當(dāng)前的狀態(tài)應(yīng)用這一個法則以更新獲得新的后驗知識。
若將基本貝葉斯法則應(yīng)用到機器學(xué)習(xí)中,我們就可以得到以下三個非;A(chǔ)的方程,即學(xué)習(xí)、預(yù)測和模型對比。此外,值得注意的是,貝葉斯法則并不是最基本的公理,它是由由概率的加法原則與乘法原則組合而成。

其中學(xué)習(xí)即給定數(shù)據(jù)與模型預(yù)測最可能的參數(shù)θ,這樣在確定了參數(shù)θ后就能確定整個模型,學(xué)習(xí)后的系統(tǒng)也就確定了。為了計算后驗概率 P(θ|D, m),根據(jù)貝葉斯法則需要使用θ的先驗概率 P(θ|m) 和似然度 P(D|θ, m)。預(yù)測即在給定數(shù)據(jù) D 和模型 m 的情況下預(yù)測出現(xiàn)樣本 x 的概率,它可以用一個積分或數(shù)學(xué)期望表示。
你可能會想,當(dāng)前深度學(xué)習(xí)如此成功,基本上任何復(fù)雜任務(wù)都只需要套入這種端到端的方法就能取得不錯的效果,那么我們還需要概率與貝葉斯法則嗎?還是說貝葉斯法則只是 18 世紀(jì)的老舊研究而跟不上當(dāng)前 21 世紀(jì)的深度方法?Zoubin 非常推崇為任務(wù)與模型引入概率,它展示了以下一些原因來說明為什么概率對于機器學(xué)習(xí)非常重要。

首先我們希望系統(tǒng)能校準(zhǔn)模型與預(yù)測不確定性,因為我們希望系統(tǒng)明確地知道它到底不知道什么。例如在自動駕駛中,當(dāng)系統(tǒng)遇到了和以前都不一樣或者不合理的場景,我們希望系統(tǒng)能給出回答表示它不知道怎么處理,而不是如同當(dāng)前深度模型那樣給出一個錯誤的回答。此外,概率框架同樣允許我們實現(xiàn)非常優(yōu)雅的模型復(fù)雜度控制或者結(jié)構(gòu)搜索。這表明基于貝葉斯概率,我們都不再需要正則化或其它防止過擬合的方法,因為它能自動調(diào)整和控制模型復(fù)雜度。
對于 AI 來說,我們希望構(gòu)建的系統(tǒng)能執(zhí)行合理的決策。這表明我們希望系統(tǒng)能通過連貫的方式根據(jù)數(shù)據(jù)更新信念,并且根據(jù)效用論最大化效用來做出合理與理性的決策。同樣,我們需要將先驗知識嵌入到學(xué)習(xí)系統(tǒng)中,并且隨著我們獲得越來越多的數(shù)據(jù),先驗知識應(yīng)該以連續(xù)和魯棒的方式得到更新。
此外,對于 AI 系統(tǒng)來說非常重要的就是基于小數(shù)據(jù)集進行訓(xùn)練與推斷。在實際生活中,很多任務(wù)都只有非常少量的數(shù)據(jù),深度學(xué)習(xí)明顯并不能解決這樣的問題,因為模型復(fù)雜度過高或過低分別會導(dǎo)致過擬合或性能不佳等問題。貝葉斯概率能利用先驗知識,從而只需要更少的數(shù)據(jù)就能推斷出合理的決策。
下面 Zoubin 具體介紹了一些將概率引入到 AI 所需要的概率論基礎(chǔ),首先即如何表征 AI 系統(tǒng)中的信念。我們希望以數(shù)值的方式表示智能體某個信念的強度,也希望能使用某些數(shù)學(xué)運算對這些信念做一些操作。

若使用 b(x) 表征命題 x 中的信念強度,那么它的取值應(yīng)該在 0 到 1 之間,且只有在系統(tǒng)完全確信 x 會發(fā)生或完全不確信才能取到 1 和 0。此外,b(x|y) 表示在給定 y 可能會出現(xiàn)的信念下,x 會發(fā)生的信念強度。早在 1946 年,Cox Axioms 就寫下了一些如何表示信念的定理。如上所示信念的強度應(yīng)該由一個實數(shù)表示,信念應(yīng)該與常識具有定性的一致性等等。此外,信念函數(shù)還應(yīng)該滿足概率定理,包括概率加法、乘法和貝葉斯法則。
Zoubin 表示信念函數(shù)并不是表示傳統(tǒng)概率論中重復(fù)實驗與頻率等的不確定性,它僅僅表示信念的強度,這對于 AI 系統(tǒng)有非常重要的作用。為了說明這種重要性,他進一步從決策論與博弈論中引入一個觀點以說明如何根據(jù)信念做更好的決策,即 Dutch Book 定理。
根據(jù) Zoubin 在 UberAI 研究院的經(jīng)歷,他發(fā)現(xiàn)很多學(xué)習(xí)與智能過程都依賴于對不確定性的概率表示,例如車主供給與乘客需求關(guān)系的預(yù)測、對交通和城市的建模以及自動駕駛等。盡管 Uber 在處理這些問題時同樣需要使用深度學(xué)習(xí)擬合適當(dāng)?shù)暮瘮?shù),但概率是構(gòu)建能執(zhí)行理性決策的智能體所必需的。
介紹了概率在機器學(xué)習(xí)中的重要性后,Zoubin 在后面重點討論了他在這一領(lǐng)域的研究方向與成果。以下展示了他主要涉及的領(lǐng)域,且都以自動化機器學(xué)習(xí)為中心。之所以在機器學(xué)習(xí)前加上「自動化」,是應(yīng)為他認(rèn)為目前的機器學(xué)習(xí)并不是那么合理,它還能在很多地方變得更加高效與自動化。

貝葉斯深度學(xué)習(xí)
在這一個視頻中,Zoubin 并不會介紹全部領(lǐng)域,他只會重點討論三個方向,即貝葉斯深度學(xué)習(xí)、概率編程和自動化統(tǒng)計學(xué)。首先對于貝葉斯深度學(xué)習(xí),他表示前面很多地方都將深度學(xué)習(xí)與貝葉斯統(tǒng)計立在對立面,但其實它們并不是對立的。深度學(xué)習(xí)旨在構(gòu)建不同類型的模型,而貝葉斯推斷旨在關(guān)注學(xué)習(xí)的方法,它們是可以相互結(jié)合的。
那么到底深度學(xué)習(xí)中的貝葉斯指的是什么呢?如果我們重新思考深度神經(jīng)網(wǎng)絡(luò),一般的方法會根據(jù)損失函數(shù)更新模型的權(quán)重和偏置項,這也就表示參數(shù)上的不確定性。但我們應(yīng)該同時解決結(jié)構(gòu)上的不確定性,例如神經(jīng)網(wǎng)絡(luò)層級的結(jié)構(gòu)或?qū)蛹墧?shù)等。目前結(jié)構(gòu)上的不確定性比較難解決,但參數(shù)上的不確定性要好解決地多。
如下給定一個神經(jīng)網(wǎng)絡(luò),其中 X、y 和θ分別為輸入、輸出和模型參數(shù)。如果從貝葉斯的角度觀察該神經(jīng)網(wǎng)絡(luò),那么先驗概率 P(θ|α) 就是說在沒有觀察到數(shù)據(jù)之前,給定某些超參數(shù)α下神經(jīng)網(wǎng)絡(luò)參數(shù)θ可能是什么。后驗概率 P(θ|α, D) 則表示在觀察到數(shù)據(jù)后,給定某些超參數(shù)α下神經(jīng)網(wǎng)絡(luò)參數(shù)θ的分布應(yīng)該是什么樣的。

有趣的是,Radford Neal 在 1994 年表示如果從貝葉斯的角度觀察帶有單個隱藏層的神經(jīng)網(wǎng)絡(luò),那么當(dāng)該隱藏層的神經(jīng)元數(shù)量可以無限增長,那么模型就會收斂到高斯過程,所有權(quán)重都會服從高斯分布。當(dāng)時很多研究者對這一過程非常感興趣,但是由于神經(jīng)網(wǎng)絡(luò)有非常多的局部極小值且很難優(yōu)化,因此很多研究者轉(zhuǎn)而關(guān)注能優(yōu)雅使用凸優(yōu)化的支持向量機。同時,由于單個隱藏層需要無限的神經(jīng)元才能近似高斯過程,那么我們?yōu)槭裁床恢苯邮褂酶咚惯^程呢,這也是當(dāng)時很多研究者的心聲。
到了現(xiàn)在,Alexander 等研究者在 ICLR 2018 的論文中重新探討了高斯過程與深度神經(jīng)網(wǎng)絡(luò)之間的關(guān)系。他們表示在廣義條件下,隨著我們神經(jīng)網(wǎng)絡(luò)架構(gòu)越來越寬,隱含的隨機函數(shù)會收斂為高斯過程,這也就是將 Neal 在 1994 年的研究成果擴展到了深度神經(jīng)網(wǎng)絡(luò)。研究者們嚴(yán)格證明了多層有限全連接網(wǎng)絡(luò)最終能收斂到高斯過程,其中隱藏層的數(shù)量可以是定值,而隱藏層的單元數(shù)需要根據(jù)層級的增長嚴(yán)格地以不同的增長率增加。
如下 Zoubin 表示貝葉斯深度學(xué)習(xí)可以以多種方式實現(xiàn),它們的關(guān)鍵計算問題是在參數(shù)上做貝葉斯推斷,并在給定神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)的情況下構(gòu)建所有參數(shù)的概率分布。

如上早期的貝葉斯深度學(xué)習(xí)主要在于很多研究者并不希望研究神經(jīng)網(wǎng)絡(luò)。而自 2011 年以后,很多研究者重新開始關(guān)注神經(jīng)網(wǎng)絡(luò)中的推斷過程,并嘗試令貝葉斯推斷更快與更簡潔。在上圖中,神經(jīng)網(wǎng)絡(luò)嘗試在給定數(shù)據(jù)的情況下擬合一些參數(shù),而當(dāng)沒有數(shù)據(jù)點的時候,神經(jīng)網(wǎng)絡(luò)那種點估計會出現(xiàn)很大的誤差,因此貝葉斯神經(jīng)網(wǎng)絡(luò)一般在這種情況下能做得更好。
當(dāng)然,近來也有將深度學(xué)習(xí)結(jié)合高斯過程的研究,例如 17 年 Bradshaw 等人提出的 GPDNN,它結(jié)合了深度神經(jīng)網(wǎng)絡(luò)與高斯過程良好的屬性,并對于對抗樣本有非常好的屬性。對于 GPDNN 來說,當(dāng)我們測試對抗樣本時,它輸出的最高熵類別概率對應(yīng)于「don't know」。該網(wǎng)絡(luò)知道什么時候給定的樣本是系統(tǒng)無法判斷的,因此 GPDNN 是一種更好的深度架構(gòu)來表示未見過的潛在數(shù)據(jù)。
概率編程與自動化統(tǒng)計學(xué)
Zoubin 重點展示的第二個方向是概率編程,概率編程讓用戶可以將生成概率模型指定為程序(program),然后將這些模型「編譯(compile)」為推理過程。概率模型本質(zhì)上也是組合式的,而之前的大部分工作都集中在通過組合隨機變量來構(gòu)建豐富的概率程序上。
首先對于傳統(tǒng)模型而言,概率性模型開發(fā)與推斷算法的推導(dǎo)式非常耗時與容易出錯的,因此我們可以借助概率編程語言將概率模型表述為能生成數(shù)據(jù)的計算機程序。例如概率編程語言 Edward,它構(gòu)建于兩種組合表示的基礎(chǔ)上,即隨機變量和推理。Edward 可以集成到 TensorFlow,它讓我們輕松使用從點估計到變分推理和 MCMC 等各種可組合的推理方法來擬合相同的模型。

Zoubin 隨后展示了用概率編程語言所寫的隱馬爾可夫模型,它只需要不到 10 行的代碼就能完成整個模型。他認(rèn)為概率編程最大的優(yōu)勢是對科學(xué)建模的變革,而 Uber 構(gòu)建的概率編程語言 Pyro 就是這樣的嘗試。
Pyro 基于 Python 與 PyTorch 之上,專注于變分推理,同時支持可組合推理算法。Pyro 的目標(biāo)是更加動態(tài)(通過使用 PyTorch)和通用(允許遞歸)。
Zoubin 表示直接指定概率模型是笨重的,其執(zhí)行也容易出錯。概率編程語言(PPL)通過聯(lián)合概率與編程語言的表征力量來解決上述問題。概率程序是一般確定性計算和隨機采樣值的混合,隨機計算表征了數(shù)據(jù)的生成性。這一表征中隱含著概率,且這一規(guī)范也是通用的:通過這種方式可以編寫任意的可計算概率模型。Pyro 全部使用 Python 作為基礎(chǔ)語言,清晰而令人熟悉。

Pyro 構(gòu)建在優(yōu)秀的 PyTorch 庫之上,后者包括使用非?焖、GPU 加速的張量數(shù)學(xué)的自動微分。PyTorch 動態(tài)構(gòu)建梯度,使得 Pyro 程序包含隨機控制結(jié)構(gòu),即 Pyro 程序中的隨機選擇能夠控制其他隨機選擇的出現(xiàn)。隨機控制結(jié)構(gòu)是 PPL 通用的關(guān)鍵。因此,Pyro 能夠表征任意概率模型,同時提供靈活、可擴展到大型數(shù)據(jù)集的自動優(yōu)化推斷。
最后,Zoubin 展示了一種自動化統(tǒng)計學(xué)。因為現(xiàn)在到處都存在數(shù)據(jù),那么理解數(shù)據(jù)、構(gòu)建模型并作決策會有非常大的價值。但是問題是目前沒有那么多合格的數(shù)據(jù)科學(xué)家,因此可能的方向是開發(fā)一種自動從數(shù)據(jù)中構(gòu)建模型的方法。
那么對于構(gòu)建 AI 系統(tǒng),我們到底要遵循什么樣的規(guī)則?以下展示了感知、學(xué)習(xí)、推理和決策制定等 AI 系統(tǒng)應(yīng)該遵循的原則,我們構(gòu)建自動 AI 系統(tǒng)也應(yīng)該遵循這些規(guī)則。

如上借助深度學(xué)習(xí)、ReLU 激活函數(shù)和各種結(jié)構(gòu),我們的系統(tǒng)能感知到真實世界中的數(shù)據(jù)。而貝葉斯法則和最大似然等規(guī)則可以讓系統(tǒng)以更小的成本學(xué)習(xí)知識,其它如推理和決策也應(yīng)該根據(jù)概率論、決策論和博弈論等領(lǐng)域的方法完成構(gòu)建。
對于整個演講的總結(jié),Zoubin 表示概率建模為構(gòu)建理性的 AI 系統(tǒng)提供了非常好的框架,在這個框架下我們能將現(xiàn)實世界中的不確定表示出來,并從數(shù)據(jù)中學(xué)習(xí)。

以上是 Zoubin 演講的簡要內(nèi)容,前面主要介紹了為什么概率建模非常重要,后面則講述了他所關(guān)注領(lǐng)域,包括貝葉斯深度學(xué)習(xí)、概率編程和自動化模型構(gòu)建等。
標(biāo)簽: 代碼 媒體 搜索 網(wǎng)絡(luò)
版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。