這篇文章主要整理最近在思考的貝葉斯定理與神經網路參數的不確定性。為了理解模型的不確定性,不妨看下面這張圖:
這是一個回歸問題,真實目標是一個sine函數,訓練樣本用帶顏色的圓點表示,但是採樣比較有限。採用boostrap訓練兩個模型,分別用紅色和藍色表示。可以看到兩個模型在訓練數據集上輸出比較一致,在非訓練數據集上輸出非常不一樣。這正是我們想到的結果,假設模型是一個概率模型,經過學習後,應該在見過數據集上輸出的方差比較小點,表示置信度比較高;在沒見過的數據集上輸出的方法比較大點,表示置信度比較低。
這就是下面這篇文章的工作,利用Bayes衡量模型參數的不確定度。
Blundell, Charles, et al. "Weight uncertainty in neural networks."arXiv preprint arXiv:1505.05424(2015).
不妨先從監督學習的框架說起。
監督學習一般有最大似然法(MLE)和最大後驗法(MAP)。假設固定的數據集 對於MLE而言,求解如下問題:
比如常見的最小二乘問題:
這麼一個框架第一眼看上去沒什麼問題。但仔細想一下: 如果模型是凸的,我們可以得到唯一的最優值;如果模型是非凸的,可能得到很多組性能相同的 。對於一些問題而言,沒關係,我們只要從中random選取一個即可。但是,可能對於另外一些問題,我們對不同的 有不同的偏好,比如:我們可能更喜歡 而不是 ,因為前者比較均衡一點。那麼如何表達這種偏好呢?我們可以根據經驗指定一個關於 的分佈 ,為了把這種偏好融合進參數優化,我們可以使用貝葉斯定理:
那麼我們的問題就是求解後驗分佈中最優的參數,即最大後驗法:
作為一個例子,對於一個回歸問題,假如先驗採取一個後期分佈, ,即常見的L2正則。也就是說,先驗起到了對不同解的選擇作用。粗略地說,MAP=MLE + Regularization.
順便提一下,假如我們可以對局部最優解進行先驗建模,那麼MAP就有可能跳出局部最優解,而得到全局最優解。
正如前面看到,對於一個模型輸入 ,得到 的不確定度,可以由兩個方法: 1) 的隨機性;2) 的不確定度。前者一般由建模決定,這裡討論如何獲得 的不確定度。不妨再次討論先驗 ,假如這是一個高斯分佈,那麼pdf曲線越窄,表示 的可能取值範圍越小,可以認為我們對 越確信;反之,如果pdf越寬,表示 的可能取值範圍越大,可以認為我們對 越不確定。先驗一般是不準的,我們自然想確定後驗,即 。
這是一個棘手的問題,從貝葉斯定理中可以看到,要求 ,我們需要知道 (對於MAP則不存在這個問題,因為這個在MAP求解是一個無關最優解的常量),而 , 這意味著我們要對所有可能的 求和,很多情況下是intractable的。
那麼不妨換種思路,用一個參數化的分佈 去逼近 。如何衡量兩個分佈的"距離"呢?KL散度。
也就是說我們的問題變成了:
相應的優化問題為:
即 要同時最小化與先驗的"距離",同時保證採樣出來的 可以最大化似然。
在近似相同的精度下,而我復現出來的結果的weight的權重的隨機性則比較小。
2. 可以認為是無限個模型的Ensemble。但是文章裏採用的先驗是一個單峯的高斯,個人感覺這種情況下不會出現無限個模型Ensemble的效果,合理的先驗應該是個多峯的分佈。