選自GitHub,Bayesian Methods Research Group,機器之心整理。
在 Deep|Bayes 夏季課程中,授課人將討論貝葉斯方法如何結合深度學習,並在機器學習應用中實現更好的結果。近期研究表明貝葉斯方法的利用可以帶來許多好處。學生將學到對理解當前機器學習研究非常重要的方法和技術。他們還將體會貝葉斯方法和強化學習之間的聯絡,學習神經網路的現代隨機優化方法和正則化技術。在課程之後,授課人還設定了實踐環節。
教師
多數講師和助教都是貝葉斯方法研究團隊的成員以及來自世界頂級研究中心的研究者。很多講師曾經在頂級國際機器學習會議例如 NIPS、ICML、ICCV、CVPR、ICLR、AISTATS 等發表過論文。貝葉斯方法研究團隊已經開發了一系列的大學課程,包括貝葉斯方法、深度學習、優化以及概率圖模型,擁有大量的教學經驗。
學生
該夏季課程面向:
-
本科生(最好已完成至少兩年的大學課程),以及擁有很強數學背景、具備足夠機器學習知識(包括深度學習)的碩士生。
-
想要擴充套件知識和技能的機器學習領域或相關領域研究者和行業專家。
學習本課程的必備基礎
-
機器學習的紮實基礎,熟悉深度學習。
-
數學:熟練線性代數和概率論(很重要)。
-
程式設計:Python、PyTorch 和 NumPy。
-
Deep|Bayes 2018 夏季課程中使用英語,因此學生應該熟悉技術英語。
我在 Deep|Bayes 能學到什麼?
-
貝葉斯方法為什麼(在機器學習和日常生活中)這麼有用?隨機性到底是什麼?
-
隱變數模型。如何訓練模型識別在訓練前未知的模式?
-
可擴充套件的概率模型。為什麼將概率推斷問題轉換為優化問題是有用的?
-
強化學習和貝葉斯方法之間的聯絡。如何訓練隨機計算圖?
-
自動 Dropout 率的微調。神經網路會過擬合嗎?(會的)
-
隨機優化。如何以比計算一個點的函式值更快的速度來優化函式?
該課程的目標是展示在深度學習中使用貝葉斯方法可以擴充套件其應用範圍,並提升效能。儘管機器學習中有很多不同的問題設定,但貝葉斯網路的概率推斷可以用相似的方式來解決它們。你,心動了嗎?
課程主要內容
整個課程涉及貝葉斯學習的方方面面,從最基礎的貝葉斯原理到比較難的變分推斷和馬爾可夫鏈蒙特卡洛方法。以下展示了整個課程的主題列表,機器之心將簡要介紹部分課程內容。
第一天:
-
貝葉斯方法簡介
-
貝葉斯推理
-
隱變數模型和 EM 演算法
-
EM 演算法
第二天:
-
隨機優化簡介
-
可擴充套件貝葉斯方法
-
變分自編碼器
-
狄利克雷隱變數
第三天:
-
變分推斷高階方法
-
變分推斷視角下的強化學習
-
強化學習
-
分散式強化學習
第四天:
-
生成模型
-
對抗學習
-
擴充套件再引數化的技巧
第五天:
-
高斯過程
-
貝葉斯優化
-
深度高斯過程
-
馬爾可夫鏈蒙特卡洛方法
-
隨機馬爾可夫鏈蒙特卡洛方法
第六天:
-
貝葉斯神經網路和變分 Dropout
-
稀疏變分 Dropout 和方差網路
-
資訊瓶頸
整個課程需要六天才能完成,且每一天的的課程量都非常大,因此機器之心只簡要介紹最基本的貝葉斯方法和隱變數模型,其中貝葉斯方法是整個課程的核心思想,而隱變數模型又是生成模型等很多高階方法的基礎。
貝葉斯方法簡介
我們首先圍繞「盲人摸象」的例子來介紹貝葉斯定理,然後簡單描述頻率學派和貝葉斯學派的區別。
1 貝葉斯定理:
首先貝葉斯定理的基本形式為
即後驗=似然度 x 先驗/證據
形式化的樣子是
現在我們開始討論「盲人摸象」問題。
一群「盲人」在摸一頭大象,試圖猜測摸的是什麼東西,然而沒有一個人猜的是正確的。在不確定的世界裡,這就是我們在用概率論理解世界時的樣子。
為簡單起見,我們把問題設定得簡單一些:一群「盲人」在摸一頭大象,並且知道這是一頭大象,他們希望根據摸到的東西猜測大象的重量。
貝葉斯方法是怎麼解決這個問題的呢?
我們假設這些盲人之間會互相交流觀察結果,並且都擁有一定的共同常識,也就是對大象重量的最初猜測:
然後他們可以這樣:
第一個人的觀察結果是摸到了尾巴,以及尾巴的長度 y1,然後重新猜測大象的重量;
第二個人將第一個人的猜測作為先驗,並且觀察結果是摸到了肚子,以及肚子的面積 y2,然後再次猜測大象的重量;
第三個人同理,根據第二個人的猜測,繼續觀察、猜測……
在此過程中,他們一開始的共有常識、大象的猜測重量即先驗 P(x),第一個人的觀察結果即似然度 P(y1|x),觀察結果本身出現的可能性就是證據 P(y1),最後就得到的是 P(x|y1),也就是根據觀察結果 y 得到的大象重量為 x 的可能性(概率分佈):
而第二個人在此基礎上,將能得到 P(x|y1,y2):
第三個人將能得到 P(x|y1,y2,y3)……
好了,隨著觀察報告的增加,這頭大象的重量也越來越藏不住了(峰值變得尖銳):
當然,授課人在課程中會很詳細地把概念一步一步講清楚,包括條件分佈、聯合分佈、邊緣分佈之間的關係,以及乘積規則、和規則的介紹,可以把上面這個例子涉及的各個概念串聯起來,幫助學生理解得更加透徹。
2 頻率學派和貝葉斯學派的聯絡和區別:
頻率學派不假設任何的先驗知識,不參照過去的經驗,只按照當前已有的資料進行概率推斷。而貝葉斯學派會假設先驗知識的存在(猜測大象的重量),然後再用取樣逐漸修改先驗知識並逼近真實知識。但實際上,在資料量趨近無窮時,頻率學派和貝葉斯學派得到的結果是一樣的,也就是說頻率方法是貝葉斯方法的極限。
以上就是貝葉斯方法的基礎理論部分的大致內容,之後還有生成、判別模型的區別,貝葉斯訓練過程以及貝葉斯方法優勢的討論。
隱變數模型
前面簡要介紹了貝葉斯方法的核心思想貝葉斯定理,而在這一章節中,Dmitry Vetrov 重點介紹了隱變數模型。隱變數模型是很多複雜方法的基礎,例如在變分自編碼器這一生成模型中,我們希望將影像壓縮為一系列的隱變數,這些隱變數表示了影像的高階語義資訊,例如影像主體的傾角、顏色和位置等。
這一部分我們會根據 Dmitry Vetrov 介紹的內容討論隱變數模型的直觀概念、KL 散度、混合分佈和變分下界等。
如前所述,VAE 最大的優勢即中間編碼的短向量代表了影像的某些語義特徵,但又因為我們不能明確地知道具體是哪些影像特徵,因此我們可以把這個短向量稱之為隱變數。直觀上來說,完全從整體上一個個畫素生成影像是非常困難的,因為我們需要考慮的可能性太多。而如果先決定要生成影像的特徵,再根據這幅藍圖生成影像就會容易很多。
VAE 正是這樣,先學習如何將影像正確地壓縮為一組隱變數,然後再學習如何根據隱變數生成影像。當模型完成學習後,我們給定任意一組隱變數,模型都會嘗試生成正確的影像。這也就是隱變數模型的直觀概念。
KL 散度一般作為兩個分佈間距離的度量方法,它常用於生成模型的損失函式。以下展示了 KL 散度的直觀理解,即分佈 Q(z) 與分佈 P(Z) 之間越重合,那麼 KL 散度就越小,兩個分佈之間的距離就越近。
在離散型變數的情況下,KL 散度衡量的是,當我們使用一種被設計成能夠使概率分佈 Q 產生的訊息的長度最小的編碼,傳送包含由概率分佈 P 產生的符號的訊息時,所需要的額外資訊量。KL 散度有很多有用的性質,最重要的是它是非負的。KL 散度為 0 當且僅當 P 和 Q 在離散型變數的情況下是相同的分佈,或者在連續型變數的情況下是 『幾乎處處』相同的。
隨後 Dmitry Vetrov 展示了隱變數建模的案例,如果我們有一些服從未知高斯分佈的樣本,那麼我們可以用最大似然估計或點估計等方法將該未知分佈的均值和方差推斷出來。
而現在如果我們假設有一組採自不同高斯分佈的樣本,且我們需要估計這些高斯分佈的引數。這個問題看上去不能解決,但如果我們知道哪些樣本是從具體哪一個高斯分佈中取樣,這個問題就比較容易解決。
但是如果我們不知道樣本是從哪個高斯分佈中取樣的,那麼我們就只能使用隱變數模型。它主要的思想即先估計這些樣本屬於哪一個高斯分佈,也就是將樣本對映到隱變數「均值」和「方差」。然後再基於隱變數完成對三個高斯分佈的建模。
隨後順著這個想法,我們可以構建一個混合高斯模型,並希望將資料編碼為隱變數 Z,再根據該隱變數完成建模。如下所示當我們不知道隱變數 Z 的情況下,最大化從 Z 中取樣出樣本 X 的概率,就能推匯出最大化變分下界,這也是變分自編碼器最核心的表示式。
變分自編碼器中最大化變分下界(ELBO)就可以作為整個模型的優化目標,或者說整個模型的損失函式。在上面的案例中,最大化這個變分下界就代表著找出一些高斯分佈,且每一個樣本都最可能屬於某個高斯分佈。
整個課程介紹了非常多的理論知識,尤其是關於貝葉斯學派的各種理論。如果讀者對數學比較有自信的話,可以詳細學一學該系列教程。