深度學習貝葉斯,這是一份密集的6天速成課程(視頻與PPT)

選自GitHub,Bayesian Methods Research Group,機器之心整理。git

在 Deep|Bayes 夏季課程中,授課人將討論貝葉斯方法如何結合深度學習,並在機器學習應用中實現更好的結果。近期研究代表貝葉斯方法的利用能夠帶來許多好處。學生將學到對理解當前機器學習研究很是重要的方法和技術。他們還將體會貝葉斯方法和強化學習之間的聯繫,學習神經網絡的現代隨機優化方法和正則化技術。在課程以後,授課人還設置了實踐環節。github


教師機器學習

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


學生函數

該夏季課程面向:性能

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

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


學習本課程的必備基礎

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

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

  3. 編程:Python、PyTorch 和 NumPy。

  4. 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)就能夠做爲整個模型的優化目標,或者說整個模型的損失函數。在上面的案例中,最大化這個變分下界就表明着找出一些高斯分佈,且每個樣本都最可能屬於某個高斯分佈。

整個課程介紹了很是多的理論知識,尤爲是關於貝葉斯學派的各類理論。若是讀者對數學比較有自信的話,能夠詳細學一學該系列教程。

相關文章
相關標籤/搜索