貝葉斯神經網絡毫無意義嗎?Twitter、Reddit雙戰場辯論,火藥味十足

ai科技評論 發佈 2020-01-20T16:01:30+00:00

作者| AI 科技評論編輯 | Camel最近Twitter、Reddit上有一股爭論的熱潮湧動,先是有 François Chollet 、Yann LeCun 等人隔空辨析「到底什麼是深度學習」,後是有一大批研究者爭論「貝葉斯神經網絡到底有沒有意義」。

作者 | AI 科技評論編輯 | Camel

最近Twitter、Reddit上有一股爭論的熱潮湧動,先是有 François Chollet 、Yann LeCun 等人隔空辨析「到底什麼是深度學習」,後是有一大批研究者爭論「貝葉斯神經網絡到底有沒有意義」。新的一年,火藥味十足,這是否也意味著深度學習的研究正進入一個混亂的時期?道理,不辨析不明朗;學問,不爭論不清晰。

所謂貝葉斯神經網絡,簡單來說便是將一般神經網絡中的權重和偏置由確定的數值變為一個分布。

按照一般理解,這種將參數以機率分布的形式表示,可以為網絡推理提供不確定性估計;此外,通過使用先驗機率分布的形式來表示參數,訓練期間在許多模型上計算平均值,可以給網絡提供正則化效果,從而防止過度擬合。

然後,在大約一個月前,OpenAI 研究員Carles Gelada發布了一個系列Twitter:

他指出,或許貝葉斯神經網絡並沒有多大用處。大致觀點為:

1)只有當具有合理的參數先驗時,我們才會去使用貝葉斯規則,但沒有人知道先驗對神經網絡權重的編碼會是什麼,那麼為什麼我們還要使用這種先驗呢?

2)許多正則化都可以用貝葉斯解釋,但事實上每個人都能夠對正則化給出一個解釋。那麼我們用貝葉斯理論來解釋正則化,有什麼意義呢?

3)或許有人會說BNNs可以讓我們直接用經驗來找到正則化。但誰來保證BNNs找到的這種正則化空間就是最優的呢?

4)BNNs可以用在貝葉斯元學習框架當中。但沒有理由相信這種應用會比其他元學習框架更好。

針對Carles提出的這些反對意見,在Twitter上迅速吸引了大批的研究人員加入討論。多數引經據典,從歷史發展、當前研究、實踐經驗等各種角度進行辯論,或贊同,或反對,不一而足。

一、貝葉斯神經網絡有用嗎?

為了更加明晰「貝葉斯網絡沒啥用」的立場,近期Carles Gelada 和 Jacob Buckman重新梳理了他們的思路,專門寫了一篇博客,從貝葉斯網絡的原理入手,詳細闡述了「BNNs需要先驗信息豐富的先驗知識才能處理不確定性」的觀點,並指出泛化的代價不容忽視。

1、貝葉斯神經網絡具有不確定性的原因:泛化不可知先驗

為了說明先驗在貝葉斯網絡中的重要意義,Buckman在博客中引入了泛化不可知先驗(generalization-agnostic priors),用這種「不可知的先驗」進行貝葉斯推理並不能減少模型的不確定性。Carles和Buckman認為,要想在深度學習中使用貝葉斯框架,只有讓先驗與神經網絡的泛化特性相聯繫,才能達到好的效果,方法是給泛化能力良好的函數以更高的機率。但是目前學術界還沒有足夠的能力(作者猜測)來證明哪種先驗的情況能夠滿足條件。

另外,Buckman在博客中作者舉了一個具體的例子:

當一個數據集 裡面包含兩種數據對:一種是給定輸入,輸出正確;另一種是給定輸入,輸出錯誤。訓練神經網絡所得到的參數 必須讓神經網絡既能夠表達正確輸出,也能夠表達錯誤的輸出。

即使模型在數據集上訓練後,能夠得到條件機率,但在測試集上模型也可能表現很差。另外,定義一種先驗機率,可以讓 ,這意味著如果泛化良好的函數與泛化不好的函數得到的分配機率是相同的。但這種先驗是有問題的:由於和的數據的可能性為1,並且由於先驗機率相似,這意味著後驗機率也是相似的(如下公式)。

註:實際上對於某些數據,可以產生錯誤的輸出,即。

綜上,Carles和Buckman認為在泛化不可知的先驗條件下,無論數據集如何,都無法降低模型的不確定性。即貝葉斯神經網絡起作用的關鍵因素是:先驗能夠區分泛化良好的函數和泛化不好的函數。

2、當前貝葉斯網絡的泛化能力不可知

在構建貝葉斯神經網絡時,大家的共識是用比較簡單的機率先驗,即假設參數服從獨立的高斯分布。但是高斯先驗顯然會導致結構先驗,而這些先驗並無泛化能力,原因有兩點:1.高斯先驗平滑分配機率。2.在訓練神經網絡的時候,無論數據集如何,最合理的策略似乎是給不同的泛化函數以相同的權重。

還有一點是計算問題也不容忽視,實際上如何對貝葉斯推理q(F|D)進行計算可能是貝葉斯神經網絡(具有先驗泛化不可知)能夠有合理效果的關鍵因素。

3、理性批判BNNs

Carles和Buckman也在博客中表示上面的理由有猜測的成分,因為無法得知何種因素決定神經網絡泛化能力,所以定義執行貝葉斯推理的先驗具有不確定性。

貝葉斯神經網絡只是一個神經網絡,先驗只是裡面的一個超參數。Carles和Buckman認為當前在網絡中加入貝葉斯不會帶來任何好處,只有當能夠找到一個好的先驗,並且能夠驗證推理的準確性才能有所幫助。

另外,他們還提到:作為一個領域,先驗在貝葉斯框架里扮演著重要的角色,這一點毋容置疑,所以對於貝葉斯網絡需要理性的批判,不能讓「不具信息性的先驗在不確定性下表現良好」(uninformative priors are good under uncertainty)這種無腦觀點所左右。

二、反駁與批評:Twitter、Reddit雙戰場

這篇博客同步發在了推特和 Reddit 上,自然也就在兩個平台上都引來了反駁的聲音。

1、Twitter 戰場:存在技術錯誤

在Twitter上,紐約大學數學和數據科學教授Andrew Gordon Wilson就表示他們的觀點存在錯誤:

這篇博客中存在錯誤。

1,如果數據是來自我們想要擬合的分布的,那麼隨著我們使用的數據的規模增大,似然性會收縮到那個「好的函數」上,因為不好的函數會越來越少出現,這也和我們的觀測值一致。

2,能擬合噪聲的模型並沒有什麼出奇之處,而且也和「存在歸納偏倚,更傾向於選擇有噪聲的解」是兩碼事。在函數上簡單增加一個標準的GP-RBF先驗就可以支持噪聲了,但它仍然更善於建模有結構的解。

3,對於通常會使用神經網絡來解決的問題,好的解的數量通常都會比不好的解的數量更多。神經網絡的結構中就含有幫助帶來更好的泛化性的歸納偏倚。神經網絡函數「與泛化性無關」的說法有點不負責任。

4,實際上,想要在函數空間創造許多不同的「泛化性無關」的先驗是很簡單的事,而它們的行為會和神經網絡非常不同。它們可以由平凡的結構組成,而且也肯定不會具有任何泛化能力。

5,缺少理想的後驗收縮會在這麼幾種情況下發生:

  1. 假想空間中並不包含好的解;

  2. 先驗對某個壞的解太過自信(比如給任意的 x 都分配同一個標籤 p)。

但神經網絡有很強的表達能力,這裡的b情況根本就和「有模糊的權重先驗」完全相反!

除了技術討論之外,我建議兩位可以多提問、多學習,以及對貝葉斯深度學習抱有開放的心態。也許是你們的「貝葉斯神經網絡不合理」的先驗太強了才覺得理解不了(微笑)。

Carles Gelada 對這份質疑的回應是:

如果情況是像你說的這樣,那麼證明這件事是貝葉斯支持的責任(而不是我們質疑者的),尤其是當他們聲稱模型可以提供好的不確定性的時候。實際上我們提出質疑的理由就是,每個初始值附近都同時有好的和壞的泛化函數,那麼他們聲稱的東西也就值得懷疑了。

另外,關於「擬合損壞的樣本」的討論不應該和「擬合噪聲」混為一談。我們在討論中假設了分類任務中不存在噪聲,但即便是有噪聲的分類任務,我們的觀點也是成立的。

用簡單的測試就可以說明目前使用的先驗不是泛化無關的:訓練一個好的函數、訓練一個壞的函數,然後看看先驗是否會給好的函數更高的機率。我懷疑狀況不是這樣的,但這裡需要貝葉斯的支持者向我證明他們的先驗是好的。

2、Reddit 回帖:水平不足+雙重標準

Reddit上網友們的回應更激烈、更情緒性一些,甚至得到最多贊同意見的帖子就含有辛辣的批評和嘲諷。

adversary_argument:

由於博客作者們對貝葉斯推理中的真正的先驗缺乏了解,所以我覺得這個討論很沒意思,甚至有一股雙重標準的味道。全體深度學習研究人員(以及作者們自己)都已經接受了神經網絡的大規模使用,即便我們還沒有找到明確的泛化邊界,也對神經網絡的理論理解甚少。但是既然神經網絡運行起來令人滿意,這些問題就一股腦地被視而不見 —— 神經網絡就是好的、正義的。

然而,現在作者們要求貝葉斯神經網絡必須在先驗方面提供很強的理論保證,雖然他們同時也承認貝葉斯神經網絡是有效的…… emmm,你們覺得這像不像賊喊捉賊?做深度學習的人挺能散布負面言論的啊……

尤其是,我覺得他們的討論方式,針對某個任意的、損壞的測試集 C 的討論,只不過是在攻擊他們自己造出來的一個靶子而已。我解釋給你們看看:他們沒有給出被損壞的數據的數量,但是他們就聲稱 f_theta 肯定在 D_test 上會有糟糕的表現?他們的依據是什麼?那比如 D 是一百萬個好的數據點組成的數據集,C 是 D 加上一個損壞的數據點,所以按照他們的理論,D_test 上的測試誤差肯定會特別糟糕?

他們洋洋洒洒了一大堆,最後只證明了損壞訓練數據會降低貝葉斯神經網絡的測試準確率而已…… 呃…… 所以這有什麼好奇怪的嗎……

博客作者回應:

可能我們在博客里寫得不夠清楚。我們考慮含有損壞數據的數據集,不是為了說明只要有損壞數據就會有糟糕的預測表現(尤其對於一百萬比一這種情況),而是想說明有損壞數據的、神經網絡擬合之後會有糟糕的泛化表現的數據集是存在的。我們是為了說明存在性。如果先驗對這樣的網絡分配很高的機率,那麼貝葉斯推理就沒有什麼好處。

我們的博客也不是為了表達貝葉斯神經網絡沒用,而是想表示「如果沒有好的先驗,貝葉斯神經網絡就無法帶來好的不確定性估計」,「關於非信息性的先驗的標準討論方式是有問題的」,以及「想要有好的不確定性估計,我們需要先理解神經網絡的泛化性」。

除此之外,其它多篇Reddit 的網友回帖也認為原博客兩人的討論態度有問題,立場很難稱得上是「冷靜看待」,有些簡單的實驗也完全可以自己先嘗試。

關鍵字: