天天看點

深度學習貝葉斯,這是一份密集的6天速成課程

教師

多數講師和助教都是貝葉斯方法研究團隊的成員以及來自世界頂級研究中心的研究者。很多講師曾經在頂級國際機器學習會議例如 NIPS、ICML、ICCV、CVPR、ICLR、AISTATS 等發表過論文。貝葉斯方法研究團隊已經開發了一系列的大學課程,包括貝葉斯方法、深度學習、優化以及機率圖模型,擁有大量的教學經驗。

學生

該夏季課程面向:

 ●  大學生(最好已完成至少兩年的大學課程),以及擁有很強數學背景、具備足夠機器學習知識(包括深度學習)的碩士生。

 ●  想要擴充知識和技能的機器學習領域或相關領域研究者和行業專家。

學習本課程的必備基礎

 ●  機器學習的紮實基礎,熟悉深度學習。

 ●  數學:熟練線性代數和機率論(很重要)。

 ●  程式設計:Python、PyTorch 和 NumPy。

 ●  Deep|Bayes 2018 夏季課程中使用英語,是以學生應該熟悉技術英語。

我在 Deep|Bayes 能學到什麼?

 ●  貝葉斯方法為什麼(在機器學習和日常生活中)這麼有用?随機性到底是什麼?

 ●  隐變量模型。如何訓練模型識别在訓練前未知的模式?

 ●  可擴充的機率模型。為什麼将機率推斷問題轉換為優化問題是有用的?

 ●  強化學習和貝葉斯方法之間的聯系。如何訓練随機計算圖?

 ●  自動 Dropout 率的微調。神經網絡會過拟合嗎?(會的)

 ●  随機優化。如何以比計算一個點的函數值更快的速度來優化函數?

深度學習貝葉斯,這是一份密集的6天速成課程

該課程的目标是展示在深度學習中使用貝葉斯方法可以擴充其應用範圍,并提升性能。盡管機器學習中有很多不同的問題設定,但貝葉斯網絡的機率推斷可以用相似的方式來解決它們。你,心動了嗎?

課程主要内容

整個課程涉及貝葉斯學習的方方面面,從最基礎的貝葉斯原理到比較難的變分推斷和馬爾可夫鍊蒙特卡洛方法。以下展示了整個課程的主題清單,機器之心将簡要介紹部分課程内容。

第一天:

 ●  貝葉斯方法簡介

 ●  貝葉斯推理

 ●  隐變量模型和 EM 算法

 ●  EM 算法

第二天:

 ●  随機優化簡介

 ●  可擴充貝葉斯方法

 ●  變分自編碼器

 ●  狄利克雷隐變量

第三天:

 ●  變分推斷進階方法

 ●  變分推斷視角下的強化學習

 ●  強化學習

 ●  分布式強化學習

第四天:

 ●  生成模型

 ●  對抗學習

 ●  擴充再參數化的技巧

第五天:

 ●  高斯過程

 ●  貝葉斯優化

 ●  深度高斯過程

 ●  馬爾可夫鍊蒙特卡洛方法

 ●  随機馬爾可夫鍊蒙特卡洛方法

第六天:

 ●  貝葉斯神經網絡和變分 Dropout

 ●  稀疏變分 Dropout 和方差網絡

 ●  資訊瓶頸

整個課程需要六天才能完成,且每一天的的課程量都非常大,是以機器之心隻簡要介紹最基本的貝葉斯方法和隐變量模型,其中貝葉斯方法是整個課程的核心思想,而隐變量模型又是生成模型等很多進階方法的基礎。

貝葉斯方法簡介

我們首先圍繞“盲人摸象”的例子來介紹貝葉斯定理,然後簡單描述頻率學派和貝葉斯學派的差別。

1. 貝葉斯定理:

首先貝葉斯定理的基本形式為

深度學習貝葉斯,這是一份密集的6天速成課程

即後驗=似然度 x 先驗/證據

形式化的樣子是

深度學習貝葉斯,這是一份密集的6天速成課程

現在我們開始讨論“盲人摸象”問題。

深度學習貝葉斯,這是一份密集的6天速成課程

一群“盲人”在摸一頭大象,試圖猜測摸的是什麼東西,然而沒有一個人猜的是正确的。在不确定的世界裡,這就是我們在用機率論了解世界時的樣子。

為簡單起見,我們把問題設定得簡單一些:一群“盲人”在摸一頭大象,并且知道這是一頭大象,他們希望根據摸到的東西猜測大象的重量。

貝葉斯方法是怎麼解決這個問題的呢?

我們假設這些盲人之間會互相交流觀察結果,并且都擁有一定的共同常識,也就是對大象重量的最初猜測:

深度學習貝葉斯,這是一份密集的6天速成課程

然後他們可以這樣:

第一個人的觀察結果是摸到了尾巴,以及尾巴的長度 y1,然後重新猜測大象的重量;

第二個人将第一個人的猜測作為先驗,并且觀察結果是摸到了肚子,以及肚子的面積 y2,然後再次猜測大象的重量;

第三個人同理,根據第二個人的猜測,繼續觀察、猜測……

在此過程中,他們一開始的共有常識、大象的猜測重量即先驗 P(x),第一個人的觀察結果即似然度 P(y1|x),觀察結果本身出現的可能性就是證據 P(y1),最後就得到的是 P(x|y1),也就是根據觀察結果 y 得到的大象重量為 x 的可能性(機率分布):

深度學習貝葉斯,這是一份密集的6天速成課程

而第二個人在此基礎上,将能得到 P(x|y1,y2):

第三個人将能得到 P(x|y1,y2,y3)……

好了,随着觀察報告的增加,這頭大象的重量也越來越藏不住了(峰值變得尖銳):

深度學習貝葉斯,這是一份密集的6天速成課程

當然,授課人在課程中會很詳細地把概念一步一步講清楚,包括條件分布、聯合分布、邊緣分布之間的關系,以及乘積規則、和規則的介紹,可以把上面這個例子涉及的各個概念串聯起來,幫助學生了解得更加透徹。

深度學習貝葉斯,這是一份密集的6天速成課程

2. 頻率學派和貝葉斯學派的聯系和差別:

頻率學派不假設任何的先驗知識,不參照過去的經驗,隻按照目前已有的資料進行機率推斷。而貝葉斯學派會假設先驗知識的存在(猜測大象的重量),然後再用采樣逐漸修改先驗知識并逼近真實知識。但實際上,在資料量趨近無窮時,頻率學派和貝葉斯學派得到的結果是一樣的,也就是說頻率方法是貝葉斯方法的極限。

深度學習貝葉斯,這是一份密集的6天速成課程

以上就是貝葉斯方法的基礎理論部分的大緻内容,之後還有生成、判别模型的差別,貝葉斯訓練過程以及貝葉斯方法優勢的讨論。

3. 隐變量模型

前面簡要介紹了貝葉斯方法的核心思想貝葉斯定理,而在這一章節中,Dmitry Vetrov 重點介紹了隐變量模型。隐變量模型是很多複雜方法的基礎,例如在變分自編碼器這一生成模型中,我們希望将圖像壓縮為一系列的隐變量,這些隐變量表示了圖像的進階語義資訊,例如圖像主體的傾角、顔色和位置等。

這一部分我們會根據 Dmitry Vetrov 介紹的内容讨論隐變量模型的直覺概念、KL 散度、混合分布和變分下界等。

如前所述,VAE 最大的優勢即中間編碼的短向量代表了圖像的某些語義特征,但又因為我們不能明确地知道具體是哪些圖像特征,是以我們可以把這個短向量稱之為隐變量。直覺上來說,完全從整體上一個個像素生成圖像是非常困難的,因為我們需要考慮的可能性太多。而如果先決定要生成圖像的特征,再根據這幅藍圖生成圖像就會容易很多。

VAE 正是這樣,先學習如何将圖像正确地壓縮為一組隐變量,然後再學習如何根據隐變量生成圖像。當模型完成學習後,我們給定任意一組隐變量,模型都會嘗試生成正确的圖像。這也就是隐變量模型的直覺概念。

KL 散度一般作為兩個分布間距離的度量方法,它常用于生成模型的損失函數。以下展示了 KL 散度的直覺了解,即分布 Q(z) 與分布 P(Z) 之間越重合,那麼 KL 散度就越小,兩個分布之間的距離就越近。

深度學習貝葉斯,這是一份密集的6天速成課程

在離散型變量的情況下,KL 散度衡量的是,當我們使用一種被設計成能夠使機率分布 Q 産生的消息的長度最小的編碼,發送包含由機率分布 P 産生的符号的消息時,所需要的額外資訊量。KL 散度有很多有用的性質,最重要的是它是非負的。KL 散度為 0 當且僅當 P 和 Q 在離散型變量的情況下是相同的分布,或者在連續型變量的情況下是 “幾乎處處”相同的。

随後 Dmitry Vetrov 展示了隐變量模組化的案例,如果我們有一些服從未知高斯分布的樣本,那麼我們可以用最大似然估計或點估計等方法将該未知分布的均值和方差推斷出來。

深度學習貝葉斯,這是一份密集的6天速成課程

而現在如果我們假設有一組采自不同高斯分布的樣本,且我們需要估計這些高斯分布的參數。這個問題看上去不能解決,但如果我們知道哪些樣本是從具體哪一個高斯分布中采樣,這個問題就比較容易解決。

但是如果我們不知道樣本是從哪個高斯分布中采樣的,那麼我們就隻能使用隐變量模型。它主要的思想即先估計這些樣本屬于哪一個高斯分布,也就是将樣本映射到隐變量“均值”和“方差”。然後再基于隐變量完成對三個高斯分布的模組化。

随後順着這個想法,我們可以建構一個混合高斯模型,并希望将資料編碼為隐變量 Z,再根據該隐變量完成模組化。如下所示當我們不知道隐變量 Z 的情況下,最大化從 Z 中采樣出樣本 X 的機率,就能推導出最大化變分下界,這也是變分自編碼器最核心的表達式。

深度學習貝葉斯,這是一份密集的6天速成課程

變分自編碼器中最大化變分下界(ELBO)就可以作為整個模型的優化目标,或者說整個模型的損失函數。在上面的案例中,最大化這個變分下界就代表着找出一些高斯分布,且每一個樣本都最可能屬于某個高斯分布。

整個課程介紹了非常多的理論知識,尤其是關于貝葉斯學派的各種理論。如果讀者對數學比較有自信的話,可以詳細學一學該系列教程。

原文釋出時間為:2018-09-23

本文來自雲栖社群合作夥伴“

資料派THU

”,了解相關資訊可以關注“

”。

繼續閱讀