深度學習之後的下一個人工智慧研究方向是什麼?

riogarfield


概率理論為理解學習,建立合理的智能系統提供了數學框架。在此演講中,Uber 首席科學家、劍橋大學教授 Zoubin Ghahramani 回顧了概率學 AI 領域的基礎,然後重點介紹了該領域的研究前沿,涉及到了貝葉斯深度學習、概率編程、貝葉斯優化、數據科學中的 AI 等主題。他認為,在深度學習革命之後,下一個前進的方向會是概率機器學習。

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

如今人工智能與機器學習的發展令人振奮。這幾年,我們在遊戲中取得了各種突破,例如玩 Atari 遊戲、圍棋、撲克。更重要的是,如今這個時代對應用機器學習與人工智能非常感興趣,例如語音識別、計算機視覺、推薦系統、自動駕駛等。

當我們思考人工智能時,會想到我們當前處於什麼狀態?離我們想要的人工智能還有多遠?我們是否有解決未來挑戰的理論基礎?為了解決賦有挑戰性的 AI 任務,我們需要關於感知、學習、推理與決策的理論。這也是我們建立 AI 系統的方式。

深度學習的火熱與缺陷

如今深度學習是最為最為火熱的學習方法。很多人,特別是剛進入 AI 領域不久的人會認為深度學習可以解決所有問題,是建立智能系統的有力工具。所以,什麼是深度學習系統?

深度學習就是神經網絡,而神經網絡是帶有許多參數的可調非線性函數。上圖中,參數θ是神經網絡的權重。神經網絡是特別有趣的函數,因為輸入 x 和參數θ都是非線性的。現在神經網絡所做的是,通過一個函數組合從輸入 x 到輸出 y 表示這一函數,也就是神經網絡中的層。總結來說,神經網絡的核心是非線性函數+基礎統計+基礎優化。

深度學習可以說是神經網絡的重新包裝。現代深度學習系統非常類似於 80 、90 年代流行的神經網絡模型,也有一些重要的變化:

1. 新的架構與算法上的創新(例如多層網絡、ReLU、dropput、LSTM 等);

2. 非常重要的是我們當前有非常大的數據集;

3. 非常大規模的計算資源(GPU、雲);

4. 更好的軟件工具(Theano、Torch、TensorFlow),更方便的建立神經網絡;

5. 還有產業越來越大的投資也媒體關注;

以上使得越來越多的人進入到 AI 領域,發展也越來越快。因此,深度學習領域可以說去的了非常大的發展,也對人工智能非常重要。

但深度學習系統也有缺陷。雖然這些系統在許多基準任務上有非常好的表現,但它們也有缺陷:

1. 需要大量數據,例如總需要數百萬的樣本(data hungry);

2. 需要大量計算資源來訓練以及部署深度學習系統;

3. 表徵不確定性的能力極差;

4. 融合先驗知識與符號表徵對深度學習非常重要,這也是許多人在研究的;

5. 易受對抗樣本的影響;

6. 過於繁瑣的優化:非凸的,找到最好的架構選擇,學習流程,初始化等;

7. 深度學習是難以解釋的黑箱,缺乏透明度,難以令人信任,使得深度學習難以部署到一些非常重要的任務上。

這些事深度學習的挑戰,也是研究員們想要戰勝的難題。

模型的概率視角

儘管深度學習非常流行,但接下來我們需要考慮的是機器學習下一步的發展是什麼。因此,我們需要將機器學習視為概率建模問題。在機器學習中,模型表述了從某個系統中能觀察到的所有數據,也就是說模型不僅可以描述所有我們收集到的某種數據,同時它還能描述那些沒收集到的同類數據。

概率是推理不確定性的數學,正如微積分是推理變化率的數學。概率語言模型能夠捕捉複雜的推理,發現未知,無需監督即可揭開數據的結構。並且,概率可使得專家通過先驗信念的形式把知識注入到 AI 系統。

如果當我們對世界的某種數據建模時,我們需要預測那些沒觀察到的數據以及它們之間的不確定性,因此我們可以使用數學中概率論描述這種不確定性並完成「模型」的構建。

在使用概率論描述模型中的不確定性後,貝葉斯概率能允許我們推斷未知量,並調整模型以從數據中學習。Zoubin Ghahramani FRS 表示機器學習中的很多問題都能歸結到這一個貝葉斯框架內,或者至少需要歸結到這一框架。

為了進一步解釋貝葉斯推斷,Zoubin 進一步解釋了貝葉斯法則。簡單而言,貝葉斯法則可以描述為「執果索因」,即知道某個事件發生了後,求得該事件最可能是在什麼情況下發生的。在 ML 中,貝葉斯法則會告訴我們如何更新對未知世界或假設(hypothesis)的知識與信念,且更新假設或信念的信息從我們已知的觀察或數據(data)中獲取。

如下所示若需要在給定數據的條件下判斷假設存在的可能性,我們只需要根據該貝葉斯法則就能求出。

在貝葉斯法法則中,總體數據是未知的,也就是說我們需要使用概率分佈表徵這種不確定性。在觀察到數據之前,我們有先驗概率 P(hypothesis),它表示我們事先認為任意一個假設及其所出現的概率。此外,對於任意一個假設,我們需要評估根據它能觀察到數據的概率,即 P(data|hypothesis)。這與似然度非常相似,當我們乘上這兩個概率項,並通過除上所有可能的假設來做歸一化,我們就可以得到後驗概率 P(hypothesis|data)。

這是一種通用的法則來根據數據更新我們對假設的信念,這一個法則同樣告訴我們該如何執行學習過程。學習其實就是將先驗知識遷移到後驗知識,如果我們獲得更多的數據,那麼僅僅只是反覆對當前的狀態應用這一個法則以更新獲得新的後驗知識。

若將基本貝葉斯法則應用到機器學習中,我們就可以得到以下三個非常基礎的方程,即學習、預測和模型對比。此外,值得注意的是,貝葉斯法則並不是最基本的公理,它是由由概率的加法原則與乘法原則組合而成。

其中學習即給定數據與模型預測最可能的參數θ,這樣在確定了參數θ後就能確定整個模型,學習後的系統也就確定了。為了計算後驗概率 P(θ|D, m),根據貝葉斯法則需要使用θ的先驗概率 P(θ|m) 和似然度 P(D|θ, m)。預測即在給定數據 D 和模型 m 的情況下預測出現樣本 x 的概率,它可以用一個積分或數學期望表示。

你可能會想,當前深度學習如此成功,基本上任何複雜任務都只需要套入這種端到端的方法就能取得不錯的效果,那麼我們還需要概率與貝葉斯法則嗎?還是說貝葉斯法則只是 18 世紀的老舊研究而跟不上當前 21 世紀的深度方法?Zoubin 非常推崇為任務與模型引入概率,它展示了以下一些原因來說明為什麼概率對於機器學習非常重要。

首先我們希望系統能校準模型與預測不確定性,因為我們希望系統明確地知道它到底不知道什麼。例如在自動駕駛中,當系統遇到了和以前都不一樣或者不合理的場景,我們希望系統能給出回答表示它不知道怎麼處理,而不是如同當前深度模型那樣給出一個錯誤的回答。此外,概率框架同樣允許我們實現非常優雅的模型複雜度控制或者結構搜索。這表明基於貝葉斯概率,我們都不再需要正則化或其它防止過擬合的方法,因為它能自動調整和控制模型複雜度。

對於 AI 來說,我們希望構建的系統能執行合理的決策。這表明我們希望系統能通過連貫的方式根據數據更新信念,並且根據效用論最大化效用來做出合理與理性的決策。同樣,我們需要將先驗知識嵌入到學習系統中,並且隨著我們獲得越來越多的數據,先驗知識應該以連續和魯棒的方式得到更新。

此外,對於 AI 系統來說非常重要的就是基於小數據集進行訓練與推斷。在實際生活中,很多任務都只有非常少量的數據,深度學習明顯並不能解決這樣的問題,因為模型複雜度過高或過低分別會導致過擬合或性能不佳等問題。貝葉斯概率能利用先驗知識,從而只需要更少的數據就能推斷出合理的決策。

下面 Zoubin 具體介紹了一些將概率引入到 AI 所需要的概率論基礎,首先即如何表徵 AI 系統中的信念。我們希望以數值的方式表示智能體某個信念的強度,也希望能使用某些數學運算對這些信念做一些操作。

若使用 b(x) 表徵命題 x 中的信念強度,那麼它的取值應該在 0 到 1 之間,且只有在系統完全確信 x 會發生或完全不確信才能取到 1 和 0。此外,b(x|y) 表示在給定 y 可能會出現的信念下,x 會發生的信念強度。早在 1946 年,Cox Axioms 就寫下了一些如何表示信念的定理。如上所示信念的強度應該由一個實數表示,信念應該與常識具有定性的一致性等等。此外,信念函數還應該滿足概率定理,包括概率加法、乘法和貝葉斯法則。

Zoubin 表示信念函數並不是表示傳統概率論中重複實驗與頻率等的不確定性,它僅僅表示信念的強度,這對於 AI 系統有非常重要的作用。為了說明這種重要性,他進一步從決策論與博弈論中引入一個觀點以說明如何根據信念做更好的決策,即 Dutch Book 定理。

根據 Zoubin 在 UberAI 研究院的經歷,他發現很多學習與智能過程都依賴於對不確定性的概率表示,例如車主供給與乘客需求關係的預測、對交通和城市的建模以及自動駕駛等。儘管 Uber 在處理這些問題時同樣需要使用深度學習擬合適當的函數,但概率是構建能執行理性決策的智能體所必需的。

介紹了概率在機器學習中的重要性後,Zoubin 在後面重點討論了他在這一領域的研究方向與成果。以下展示了他主要涉及的領域,且都以自動化機器學習為中心。之所以在機器學習前加上「自動化」,是應為他認為目前的機器學習並不是那麼合理,它還能在很多地方變得更加高效與自動化。

貝葉斯深度學習

在這一個視頻中,Zoubin 並不會介紹全部領域,他只會重點討論三個方向,即貝葉斯深度學習、概率編程和自動化統計學。首先對於貝葉斯深度學習,他表示前面很多地方都將深度學習與貝葉斯統計立在對立面,但其實它們並不是對立的。深度學習旨在構建不同類型的模型,而貝葉斯推斷旨在關注學習的方法,它們是可以相互結合的。

那麼到底深度學習中的貝葉斯指的是什麼呢?如果我們重新思考深度神經網絡,一般的方法會根據損失函數更新模型的權重和偏置項,這也就表示參數上的不確定性。但我們應該同時解決結構上的不確定性,例如神經網絡層級的結構或層級數等。目前結構上的不確定性比較難解決,但參數上的不確定性要好解決地多。

如下給定一個神經網絡,其中 X、y 和θ分別為輸入、輸出和模型參數。如果從貝葉斯的角度觀察該神經網絡,那麼先驗概率 P(θ|α) 就是說在沒有觀察到數據之前,給定某些超參數α下神經網絡參數θ可能是什麼。後驗概率 P(θ|α, D) 則表示在觀察到數據後,給定某些超參數α下神經網絡參數θ的分佈應該是什麼樣的。

有趣的是,Radford Neal 在 1994 年表示如果從貝葉斯的角度觀察帶有單個隱藏層的神經網絡,那麼當該隱藏層的神經元數量可以無限增長,那麼模型就會收斂到高斯過程,所有權重都會服從高斯分佈。當時很多研究者對這一過程非常感興趣,但是由於神經網絡有非常多的局部極小值且很難優化,因此很多研究者轉而關注能優雅使用凸優化的支持向量機。同時,由於單個隱藏層需要無限的神經元才能近似高斯過程,那麼我們為什麼不直接使用高斯過程呢,這也是當時很多研究者的心聲。

到了現在,Alexander 等研究者在 ICLR 2018 的論文中重新探討了高斯過程與深度神經網絡之間的關係。他們表示在廣義條件下,隨著我們神經網絡架構越來越寬,隱含的隨機函數會收斂為高斯過程,這也就是將 Neal 在 1994 年的研究成果擴展到了深度神經網絡。研究者們嚴格證明了多層有限全連接網絡最終能收斂到高斯過程,其中隱藏層的數量可以是定值,而隱藏層的單元數需要根據層級的增長嚴格地以不同的增長率增加。

如下 Zoubin 表示貝葉斯深度學習可以以多種方式實現,它們的關鍵計算問題是在參數上做貝葉斯推斷,並在給定神經網絡數據的情況下構建所有參數的概率分佈。

如上早期的貝葉斯深度學習主要在於很多研究者並不希望研究神經網絡。而自 2011 年以後,很多研究者重新開始關注神經網絡中的推斷過程,並嘗試令貝葉斯推斷更快與更簡潔。在上圖中,神經網絡嘗試在給定數據的情況下擬合一些參數,而當沒有數據點的時候,神經網絡那種點估計會出現很大的誤差,因此貝葉斯神經網絡一般在這種情況下能做得更好。

當然,近來也有將深度學習結合高斯過程的研究,例如 17 年 Bradshaw 等人提出的 GPDNN,它結合了深度神經網絡與高斯過程良好的屬性,並對於對抗樣本有非常好的屬性。對於 GPDNN 來說,當我們測試對抗樣本時,它輸出的最高熵類別概率對應於「don't know」。該網絡知道什麼時候給定的樣本是系統無法判斷的,因此 GPDNN 是一種更好的深度架構來表示未見過的潛在數據。

概率編程與自動化統計學

Zoubin 重點展示的第二個方向是概率編程,概率編程讓用戶可以將生成概率模型指定為程序(program),然後將這些模型「編譯(compile)」為推理過程。概率模型本質上也是組合式的,而之前的大部分工作都集中在通過組合隨機變量來構建豐富的概率程序上。

首先對於傳統模型而言,概率性模型開發與推斷算法的推導式非常耗時與容易出錯的,因此我們可以藉助概率編程語言將概率模型表述為能生成數據的計算機程序。例如概率編程語言 Edward,它構建於兩種組合表示的基礎上,即隨機變量和推理。Edward 可以集成到 TensorFlow,它讓我們輕鬆使用從點估計到變分推理和 MCMC 等各種可組合的推理方法來擬合相同的模型。

Zoubin 隨後展示了用概率編程語言所寫的隱馬爾可夫模型,它只需要不到 10 行的代碼就能完成整個模型。他認為概率編程最大的優勢是對科學建模的變革,而 Uber 構建的概率編程語言 Pyro 就是這樣的嘗試。

Pyro 基於 Python 與 PyTorch 之上,專注於變分推理,同時支持可組合推理算法。Pyro 的目標是更加動態(通過使用 PyTorch)和通用(允許遞歸)。

Zoubin 表示直接指定概率模型是笨重的,其執行也容易出錯。概率編程語言(PPL)通過聯合概率與編程語言的表徵力量來解決上述問題。概率程序是一般確定性計算和隨機採樣值的混合,隨機計算表徵了數據的生成性。這一表徵中隱含著概率,且這一規範也是通用的:通過這種方式可以編寫任意的可計算概率模型。Pyro 全部使用 Python 作為基礎語言,清晰而令人熟悉。

Pyro 構建在優秀的 PyTorch 庫之上,後者包括使用非常快速、GPU 加速的張量數學的自動微分。PyTorch 動態構建梯度,使得 Pyro 程序包含隨機控制結構,即 Pyro 程序中的隨機選擇能夠控制其他隨機選擇的出現。隨機控制結構是 PPL 通用的關鍵。因此,Pyro 能夠表徵任意概率模型,同時提供靈活、可擴展到大型數據集的自動優化推斷。

最後,Zoubin 展示了一種自動化統計學。因為現在到處都存在數據,那麼理解數據、構建模型並作決策會有非常大的價值。但是問題是目前沒有那麼多合格的數據科學家,因此可能的方向是開發一種自動從數據中構建模型的方法。

那麼對於構建 AI 系統,我們到底要遵循什麼樣的規則?以下展示了感知、學習、推理和決策制定等 AI 系統應該遵循的原則,我們構建自動 AI 系統也應該遵循這些規則。

如上藉助深度學習、ReLU 激活函數和各種結構,我們的系統能感知到真實世界中的數據。而貝葉斯法則和最大似然等規則可以讓系統以更小的成本學習知識,其它如推理和決策也應該根據概率論、決策論和博弈論等領域的方法完成構建。

對於整個演講的總結,Zoubin 表示概率建模為構建理性的 AI 系統提供了非常好的框架,在這個框架下我們能將現實世界中的不確定表示出來,並從數據中學習。

以上是 Zoubin 演講的簡要內容,前面主要介紹了為什麼概率建模非常重要,後面則講述了他所關注領域,包括貝葉斯深度學習、概率編程和自動化模型構建等。


分享到:


相關文章: