https://arxiv.org/abs/1706.00473
深度學習是一種為非線性高維數據進行降維和預測的機器學習方法。而從貝葉斯概率視角描述深度學習會產生很多優勢,即具體從統計的解釋和屬性,從對優化和超參數調整更有效的算法,以及預測性能的解釋這幾個方面進一步闡述。同時,傳統的高維統計技術:主成分分析法(PCA)、偏最小二乘法(PLS)、降秩回歸(RRR)、投影尋蹤回歸(PPR)等方法將在淺層學習器(shallow learner)那一部分展示。這些傳統降維方法的深度學習形式可以利用多層數據降維而令性能達到一個較大提升。隨機梯度下降(SGD)通過訓練、優化和 Dropout(DO)能選擇模型和變量。貝葉斯正則化(Bayesian regularization)是尋找最優網絡和提供最優偏差-方差權衡框架以實現良好樣本性能的核心。我們還討論了高維中構建良好的貝葉斯預測因子。為了證明我們的方法,我們對 Airbnb 首次國際預訂的樣本進行了分析。最后,我們討論了該研究未來的方向。
1 引言
深度學習(DL)是一種使用分層隱含變量的機器學習方法。深度學習可以看作為一個概率模型,其中條件均值指定為廣義線性模型的堆疊(sGLM)。
深度學習是一個非線性高維數據降維的方案,其理論基礎來源於 Kolmogorov 將多元反應曲面(multivariate response surfaces)表征為單變量半仿射函數的疊加。深度學習自然上更是一種算法而不是概率模型,因此我們希望通過提供一個深度學習范式的貝葉斯視角來促進一些方面的理解與研究,如更快的隨機算法、優化的調參方法和可解釋性模型等方面。
從經驗上來說,深度學習的改進主要來自三個部分:
-
新的激活函數,比如使用 ReLU 替代歷來使用的 Sigmoid 函數
-
架構的深度和采用 dropout 作為變量選擇技術
-
常規訓練和評價模型的計算效率由於圖形處理單元(GPU)和張量處理單元(TPU)的使用而大大加速
1.1 深度學習
機器學習在給定一個高維輸入 X 的情況下訓練一個得到輸出 Y 的預測器。因此,一個學習器就是一種輸入和輸出之間的映射。其中輸出 Y = F (X),而輸入空間 X 是一種高維空間,即我們可以表示為:
輸出 Y 可以為回歸問題中的連續值或分類問題中的離散值,當然也可以是兩者混合。例如在分類問題中,我們需要學習一個映射 F : X → Y,其中 Y ∈ {1,...,K} 指向不同的類別。因此預測器就可以定義為:
為了構建一個多元函數 F (X),我們需要一步步構建模塊。首先我們令 f1 到 fl 為單變量激活函數,所以一個半仿射(semi-affine)激活規則就由下方程給出:
給定 L 層,疊加(復合)預測就可以定義為:
因此,給定一定層級數量 L,我們的深度預測器就成為了復合映射:
簡而言之,一個高維映射 F 可以通過單變量半仿射函數的疊加來建模。類似於經典的基礎分解(basis decomposition),該深度方法使用單變量激活函數分解高維輸入矩陣 X。為了選擇隱藏單元(也稱神經元)的數量 Nl,在每一層我們都會使用 dropout。偏置向量是必不可少的,例如我們使用不帶常數項的 b 的函數 f (x) = sin(x) 甚至都不能逼近擬合像 cos(x) 那樣的函數,而一個偏置項(即 sin(x + π/2) = cos(x))就很容易解決這樣的問題。
現在定義 Z (l) 指代第 l 層神經網絡,所以輸入向量 X 就可以表示為 Z(0)。最終的輸出是 Y,其可以是數值型(numeric)或分類型(categorical)。因此,深度預測規則就可以表達為:
其中,圖 1 展示了深度神經網絡常用的架構,即前饋網絡、自編碼器、卷積網絡、循環網絡、長短期記憶和神經圖靈機。一旦系統訓練得出了一個高階非零權重矩陣,其中就暗含了一個神經網絡結構。
圖 1:深度學習最常見的建模架構
2 深度概率學習
從概率上來說,輸出 Y 能看作是概率模型 生成的隨機變量,預測器
中參數分別為權重 w 和參數 b。
現在定義負對數似然 L 為:
L2 范數 是傳統的最小二乘法,而交叉熵函數
提供了多類 logistic 分類的等價形式。
正則項 λφ(W, b) 可以從概率上解釋為參數的負對數先驗分布:
深度預測器是經正則化的最大后驗估計(MAP)量,其中
訓練需要找到高度非線性函數的最優解:
其中對數后驗函數通過訓練數據 進行優化,即:
深度學習的主要梯度特性 在為復雜架構和大型數據集上使用張量方法計算是十分節約計算資源的。TensorFlow 和 TPU 為多種神經網絡架構提供了最優秀的框架。從統計學的角度來看,我們要注意后驗概率是高度多模態的,而提供良好的超參數調節(hyper-parameter tuning)可能成本非常大。顯然,應用最優秀的隨機貝葉斯 MCMC 算法以提供更高效的方法是一個成果豐富的領域。對於淺層架構,我們提出了可變向方法的乘數器(ADMM)作為優化問題非常有效的解決方案。
2.1 對於模型和變量選擇的 Dropout
Dropout 是一種模型選擇技術,其旨在避免在訓練過程中出現過擬合現象,Dropout 的基本做法是在給定概率 p 的情況下隨機移除輸入數據 X 的維度。因此,探討一下其如何影響潛在損失函數和最優化問題是有啟發性的。
2.2 淺層學習器
幾乎所有的淺層數據降維技術都可以視為由低維輔助變量 Z 和合成函數指定的預測規則所組成:
因此該高維數據降維問題就是尋找 Z 變量並正確地估計層級函數 (f1 , f 2 )。在這些層級中,我們希望不忽視預測輸出 Y 的信息情況下發現低維 Z-結構。
2.3 堆疊的自編碼器
自編碼器是一種非常重要的數據降維方法。而自編碼器是一個深度學習架構,其旨在復制 X、令 X=Y,再通過 bottleneck 結構達到降維效果。這意味着我們選擇一個模型 。該模型旨在濃縮必要的信息以重新創造 X。
3 尋找好的貝葉斯預測器
貝葉斯方法通過很多方式解決優良預測性能這一問題。其目標是找到一個良好的均方誤差(MSE)預測:。
圖 2:樹型核函數和隨機森林核函數
圖 3:50 維度的球體(50-dimensional ball)和蒙特卡羅抽樣結果的二維圖像
圖 4:Y ∼ U(Bp) 的邊緣分布直方圖,其中 p 為不同的維度數量。
圖 5:由帶有 ReLU 激活函數的三個神經元所定義的超平面。
圖 6:由樹型架構(頂行)和深度學習架構(底行)對三個不同數據集做所得的空間划分結果
4 算法問題
4.1 隨機梯度下降
隨機梯度下降(SGD)是用於極小化損失函數 f(W,b)(即最大化似然函數)的默認標准方法,可用於找到深度學習的權重和偏置。SGD 在第 k 次迭代更新時只是簡單地通過減去梯度∇f (W k, b k ) 的估計值來極小化損失函數。該梯度可以通過被應用於半仿射函數的疊加上的鏈式規則來獲取。其近似梯度可以通過下面的計算來估計:
其中 Ek ⊂ {1,...,T } 且 |Ek | 是 Ek 中元素的數量。
當 |Ek | > 1 時,該算法被稱為 batch SGD 或就是 SGD。一般而言,子集 E 是通過在 {1,...,T } 中循環選取的連續元素,Ek+1 = [Ek mod T ]+1。方向 gk 是使用一個鏈式規則(即反向傳播)計算的,提供了 ∇f (W k· , b k ) 的一個無偏置的估計量。具體來說,我們有:
在每次迭代,SGD 會更新解
4.2 學習淺層預測器
傳統的因子模型(factor model)才用 K 個隱藏因子 {F1 , F2 ,..., Fk } 的線性組合:
其中因子 Fk 和權重 Bik 能通過及解以下方程而得出:
其中 l 等於 1 或 2,即可用 L1 范數或 L2 范數。現在我們最小化重構誤差(即精度)並加上正則化罰項以控制其他樣本預測的方差-偏差均衡。現有很多算法可以高效地解決這類問題,比如說如果采用 L2 范數和高效的激活函數就能將模型表征為神經網絡模型。
5 應用:預測 Airbnb 預訂
為了闡釋這種深度學習范式,我們使用了一個由 Airbnb 提供給 Kaggle 比賽的數據集來進行我們的實驗分析。實驗目標是構建一個預測模型,使之能夠預測一個新用戶將會在哪個國家進行他或她的首次預訂。
圖 11:深度學習模型的預測准確度。(a) 給出了當僅使用預測的目的地時的預測准確度;(b) 給出了當預測國家是被預測列表中的前兩位時,正確預測所占的正確比例;(c) 給出了當預測國家是被預測列表中的前三位時,正確預測所占的正確比例
圖 12:由 XGBoost 模型識別出的 15 個最重要的特征
6 討論
深度學習可被視為高維非線性數據降維方案。而基於深度學習的貝葉斯概率模型是一種疊加的廣義線性模型(GLM)。因此,其成功地闡明了使用 SGD 訓練深度架構,但同時 SGD 又是一種一階梯度方法,所以尋找到的后驗模式仍然是很高維度的空間。通過采用預測性的方法(其中正則化起到了很大的作用),深度學習取得了成功。
下面展示了許多貝葉斯深度學習以后可能會應用的領域:
-
通過將深度學習概率性地看作有 GLM 疊加的模型,我們打開了許多統計模型的思路,包括指數簇模型(exponential family model)和異方差誤差(heteroscedastic errors)等。
-
貝葉斯層級模型和深度學習有很多相似的優勢。貝葉斯層級模型包括額外的隨機層,因此也提供額外的可解釋性和靈活性。
-
另一個途徑是組合近端算法(combining proximal algorithms)和 MCMC。
-
通過鏈式法則(即反向傳播算法)可以很容易獲得梯度信息,如今有很好的隨機方法擬合現存的神經網絡,如 MCMC、HMC、近端方法和 ADMM,它們都能大大減少深度學習的訓練時間。
-
超參數調節
-
相比於傳統貝葉斯非參數方法,在貝葉斯非參數方法中使用超平面應該產生良好的預測器。
-
深度學習在計算機軟件有很好的應用,其可以用於貝葉斯計算(純 MCMC 模型計算太慢)。
-
用於調整超參數和最優化有更好的貝葉斯算法。Langevin diffusion MCMC 、proximal MCMC 和哈密頓蒙特卡羅方法(HMC)可像 Hessian 信息那樣用導數表示。
我們不會搜索整個價值矩陣而希望得到均方誤差,但我們可以對這些參數進一步添加正則項罰項,並將其整合到算法中。MCMC 方法在過去 30 年中有很大的發展,在給定高性能計算下,我們現在可以在大數據集上實現高維后驗推斷,貝葉斯推斷現在也有同樣的優勢。此外,我們認為深度學習模型在很多應用場景下有很大的潛力。例如在金融中,深度學習是一種非線性因子模型,每一層捕捉不同的時間尺度效應(time scale effects),時空數據(spatio-temporal data)也可以視為在空間—時間上的圖像,深度學習就提供了一種用於恢復非線性復雜關系的模式匹配技術。