什麼是貝葉斯深度學習?

人工智慧近期的進展顯示,透過構建多層的深度網路,利用大量資料進行學習,可以獲得性能的顯著提升。目前,以神經網路為主的深度學習技術已經在眾多領域獲得應用,包括影象識別、人臉識別、自然語言處理等。但是,深度神經網路模型也面臨多方面的挑戰,其預測結果往往過於樂觀,即“不知道自己不知道”。例如,對於分類的神經網路,模型的輸出通常是一個“歸一化”的向量(機率),使用者常把此機率解釋成“置信度”,但實際上它並不能客觀地反映不確定性。給定“貓”和“狗”兩類訓練資料,學習一個分類器,左邊為“貓”類,右邊為“狗”類。對於一個“無窮遠”的測試資料,該分類器會非常“確信”地分為“狗”(或者“貓”)。但實際上,該測試資料已經遠離訓練集,具有“很高”的不確定性。為了讓人工智慧系統明確邊界,“知道自己不知道”,需要合理地處理不確定性。不確定性一般分為兩個方面:

偶然不確定性(aleatoric uncertainty)或資料不確定性。在真實環境下,由於隨機噪聲、資訊缺失等因素,資料存在普遍的不確定性,例如,開放環境下的無人駕駛車輛在路測時會面臨路況、交通、行人等各種未知的隨機因素。在某些情況下,甚至會出現惡意的噪聲,例如,在一張圖片中加上少量的對抗噪聲,雖然人眼無法察覺視覺效果上的區別,但足以讓主流的深度神經網路產生誤判。

認知不確定性(epistemic uncertainty)或模型不確定性。現在的模型“體量”越來越大,引數數量動輒達到千萬或上億,近期甚至出現千億引數的模型(如GPT-3)。對於超大模型,我們需要關注一個問題:訓練資料中的有用資訊是否足夠支援學習一個最優的模型?研究結果表明,資料集中“有用”資訊的增長速度通常是遠低於線性的。因此,有用資訊的增長可能“跟”不上模型體量的增長速度。在這種情況下,會出現多個模型在訓練集上表現無異,但在測試集上可能差別很大的現象。認知不確定性描述的是我們對真實模型的“無知”程度,在給定足夠多資料時,是可以被消除的。但偶然不確定性是資料中固有的,不會隨著資料集增大而減弱。

貝葉斯機器學習為處理不確定性提供了一套嚴謹的工具。其核心是貝葉斯定理(也稱貝葉斯公式)。與傳統深度學習僅關注單個模型不同,貝葉斯學習考慮了無窮多個可以擬合訓練資料的模型,並基於此做出更精確的不確定性建模。具體來說,貝葉斯公式基於先驗分佈和似然函式推匯出後驗分佈。先驗分佈是指在沒看到資料之前,對模型不確定性的機率刻畫;而似然函式則提供了一個對資料不確定性進行建模和推斷的途徑。貝葉斯公式充分結合先驗分佈和經驗資料,綜合得到模型的後驗分佈。

貝葉斯定理可以看作是一種資訊處理系統,如上圖所示,其輸入為先驗分佈和資料似然,輸出為模型的後驗分佈。當我們選擇最小化KL散度時,該準則等價於貝葉斯公式。這種基於資訊理論的解釋可以讓貝葉斯方法更廣泛地得到應用,例如:正則化貝葉斯(RegBayes)透過對一個特定的目標函式進行最最佳化,並結合適當的約束,得到更加符合學習任務的“後驗分佈”。RegBayes指導發展了一系列新演算法,包括將最大間隔準則與貝葉斯推斷融合、將專家知識(如一階謂詞邏輯表示的知識)融入到貝葉斯推斷中等。

貝葉斯學習模型

傳統的貝葉斯模型一般結構比較簡單,變數之間的依賴關係比較明確。結合深度神經網路的進展,貝葉斯深度學習致力於將貝葉斯不確定性建模與深度神經網路的函式擬合能力相結合,充分發揮二者的互補優勢,彌補單一深度神經網路存在的一些侷限。

貝葉斯方法和神經網路的“聯姻”由來已久,至少可以追溯到上世紀90年代。當時面臨的困難和主要問題是資料缺乏和計算能力有限,很多神經網路的結構非常淺,深度模型很容易過擬合。早期探索的主要目的是希望對神經網路進行貝葉斯計算,或者利用貝葉斯方法選擇合適的網路結構,克服過擬合,這種模型被稱為貝葉斯神經網路(Bayesian neural networks)。其在預測時對後驗分佈的“無窮”多個模型進行“平均”。

在深度學習時代,隨著神經網路變得越來越深,仍然可以到處看到貝葉斯方法的身影。例如,Dropout是一種簡單有效的訓練技巧,在每輪迭代時,隨機丟掉一些權重,對保留的權重進行更新,這種策略被證明是行之有效的。但在辛頓最早提出Dropout的時候,並沒有解釋Dropout背後的原理。後來的研究發現,Dropout實際上是一個近似的貝葉斯神經網路。基於這種理解,可以透過多次取樣,推匯出更準確估計預測置信度的方法,稱為MC-Dropout。

神經網路的結構搜尋是近期很受關注的一個方向。10年前就有學者研究如何用貝葉斯方法隨機生成神經網路的結構。具體地,該方法透過定義一個非引數化貝葉斯先驗,刻畫深度神經網路的結構(包括神經網路的層數、每一層神經元的個數、相鄰層神經元之間的連線方式,甚至每個神經元的響應型別等),給定有限的訓練資料,透過貝葉斯公式推斷出後驗分佈,該後驗分佈描述了適合訓練資料的各種可能的神經網路結構。當然,該方法也不完美,當時受限於算力和演算法,只能學習相對淺層的網路結構。近期的一些研究進展在一定程度上克服了這個問題。

除了將貝葉斯方法用於深度神經網路,貝葉斯深度學習還包括另外一個重要的內容——將深度神經網路當作強大的函式擬合器,用於貝葉斯模型。這方面的工作也稱為深度貝葉斯學習(Deep Bayesian Learning),近期的典型研究進展為深度生成模型:一個簡單的隱變數(如均勻分佈或標準高斯分佈)經過適當的函式變換之後,可以建模複雜的資料分佈。在實際應用中,我們能拿到的是訓練資料,因此,需要“逆向工程”得到對應的變換函式。當我們不清楚變換函式的形式時,可以利用深度神經網路來定義一個可行解的集合,透過無監督訓練得到(近似)最優的網路。這種方法被證明非常有效,可以將簡單隨機變數輸入神經網路進行變換,然後得到資訊豐富的圖片,在表示學習和半監督學習等領域也有廣泛的應用。

機器學習領域對深度生成模型有深入、系統的研究,可分為顯式模型和隱式模型兩類。顯式的模型對資料產生的過程有明確的機率函式刻畫,典型的例子包括變分自編碼器(VAE)和基於可逆變換的流(flow)模型。隱式的模型不關心機率密度函式的形式,只關心樣本產生的過程,例如生成對抗網路(GAN)就是一個典型的隱式模型。

相關文章