當我們在談論 Deep Learning:DNN 與它的參數們(壹)
本系列意在長期連載分享,內容上可能也會有所增刪改減;
因此如果轉載,請務必保留源地址,非常感謝!
知乎專欄:當我們在談論數據挖掘
引言
在上一篇文章中我們介紹了 DNN 的基本結構,以及使用 BP(Backpropagation)求解的說明,並簡單介紹了在 DNN 中可以使用 Mini-batchGD(Stochastic Gradient Descent)來獲得更好的結果。這幾個方面算是 DNN 的基礎,也即較為固定的。同時,還有其他一些方面,隨著對 Deep Learning 認識、試錯的增加,有過一些改變或發展,而且以後可能還會繼續演進。接下來會從幾個方面進行具體介紹:ActivationFunction、Cost Function、Optimization、Dropout 等。
Activation Function
Sigmoid
最開始接觸 ANN 的時候,大家聽說的 Activation Function 應該還都是 Sigmoid 函數。它的定義如下:
其圖形如下
Sigmoid 函數優點很多:
- 作為 Activation Function,它是單調遞增的,能夠很好地描述被激活的程度
- Sigmoid 能將轉換為,避免數據在傳遞過程中太過發散,同時輸出還能被理解成某種概率
- Sigmoid 在定義域內處處可導,而且導數很好算。,圖形如下,可以看出
但是,Sigmoid 的導數也帶來了一些問題。在上一部分我們介紹過如何通過 BP 來計算,如下
假設為 Sigmoid 函數,有。因此隨著的減小,會越來越小,從而也會越來越小。當 DNN 比較深的時,較前層的參數求出的梯度會非常小,幾乎不會再更新,這種現象被稱為 Gradient Vanish。
ReLU
為了緩解 Gradient Vanish 現象,現在大家都會使用 ReLU(Rectified Linear Unit),其定義如下
對應的圖形如下
ReLU 除了具有 Sigmoid 函數大部分的優點外,還有
- 對某個神經元,當時,其導數為1,因而緩解了 Gradient Vanish 現象。因此,ReLU 也是最近幾年非常受歡迎的激活函數
- 對某個神經元,當時,其輸出也是0,也就是對後續的網路不起作用,可以看作從網路中被移除了。因此在整個訓練過程結束後,整個網路會呈現出一種稀疏的狀態,也就是會有很多的神經元由於在網路中不起作用,可以當成不存在。這種稀疏也表明 ReLU 對避免網路過擬合有一定作用。
同時,ReLU 也有自己的缺陷:
- 可以看出當時,不僅輸出為0,ReLU 的導數也為0。即對應的參數不再更新。因此這個神經元再也沒有被激活的機會了,這種現象被稱為 dying ReLU
- 第二個現象叫 Bias shift。在將數據輸入 DNN 時我們一般會進行高斯歸一,但是由於 ReLU 的輸出恆大於0,會導致後續層輸出的數據分布發生偏移。對於很深的網路,這可能會導致無法收斂。
LReLU、PReLU
為了解決 dying ReLU 的問題,有學者提出了 LReLU(Leaky Rectified Linear Unit)、PReLU(Prametric Rectified Linear Unit) 。它們被定義為
對應的圖形如下
LReLU 可以避免 dying ReLU,使神經元在任何輸入下都能持續更新參數。對於 LReLU,是需要我們提前設定好的較小的數,比如0.01。但是,提前設定也帶來了調參的難度。為了解決難以選擇合適參數的問題,出現了 PReLU。
PReLU 公式跟 LReLU 是一樣的,不同的是PReLU的是通過訓練樣本自動學習的。學習的方式依然是 BP 演算法。但是,PReLU 在小數據下容易過擬合。具體的步驟可以參考"He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian. Delving deep into rectiers: Surpassing human-level performance on imagenet classication.2015."
RReLU
RReLU(Randomized Rectified Linear Unit)是 LReLU 的隨機版本。它最早出現在Kaggle NDSB比賽中,定義如下
其中
在訓練時,是一個保持在內均勻分布的隨機變數,而在測試中被固定為。關於 RReLU 並沒有太多的文章,想進一步了解的話可以參考「Xu B, Wang N, Chen T, et al. Empirical Evaluation of Rectified Activations in Convolutional Network. 2015.」
Others
Activation Function 是一個比較發散的課題,在不同的任務中有不同的選擇,暫時先不做更多的介紹。其它的 Activation Function 比如 Maxou、ELU 等,有興趣的同學可以自己查找相關資料。
Cost Function
Softmax + Cross Entropy
在 DNN 中進行多類分類時,使用的最多的 Cost Function 就是 Cross Entropy Loss,這裡我們也主要介紹它。
首先,對於兩個分布與,交叉熵的定義為:
交叉熵用于衡量兩個分布的相似性。當與的分布完全一致時,最小。
對於分類問題,假設進行類分類,我們將某個樣本的真實的類別標記用向量描述,其中
於是,可以被理解為為第類的概率。因此,DNN 的輸出應該也是一個向量,且需要與儘可能的接近。為了描述這兩個分布的相似性,於是就引入了 Cross Entropy Loss,其定義如下:
對於兩類分類,,可以簡化為:
還有一點需要注意,在上一章介紹DNN時,我們假設了 Output Layer 中從到的變換是普通的 Activation Function,即函數,如圖
但是在多類分類時,表示的樣本屬於第類的概率。此時將轉換為的操作即 Sotfmax,其公式如下
用圖像來表述,如下
其實使用 Cross Entropy Loss 作為損失函數不是 DNN 的專屬,在「當我們在談論GBDT:Gradient Boosting 用於分類與回歸」中介紹過 GBDT 在進行多類分類的時候就是使用的 Softmax + Cross Entropy,只是當時它被稱為對數損失函數(Log-Likehood Loss)。有興趣的同學可以回去看看那個部分。
最後需要說明的是,當我們使用 MSE(均方誤差)作為 Cost Function ,會導致的更新速度依賴於 Activation Function 的導數,在 Activation Function 為 Sigmoid 函數時很容易更新緩慢;而使用 Softmax + Cross Entropy Loss,能夠有效克服這個問題。這也是 Cross Entropy Loss 在分類問題中使用較多的原因之一。這裡先不展開介紹了,以後有機會再補充。
Regularization 與 Weight Decay
上面講完 Cost Function,按照套路,這個時候就要開始預防過擬合了,這裡我們再講一下 Regularization 相關。
Weight Decay
假設我們使用的是 L2 Regularization,則對應的公式如下:
其中,,即所有的集合,注意這裡只考慮了沒有考慮(原因似乎是因為實驗表明的約束對結果並沒有太大的提升,不過暫時還沒找到出處,以後看到再補充);,即所有的平方和;用於控制 Regularization 的程度,也叫 Weight Decay,越大則模型越傾向於簡單。
在用 BP 更新參數時,有
於是在更新時,更新式為
可以看出,更新式比沒有 Weight Decay 多了這一項;且由於它小於1,會在進行梯度下降的同時會被持續減小,這也是 Weight Decay 這個名稱的由來。
Regularization 的理解
既然談到了 Regularization,順帶談一個經常被提及的問題——Regularization 的解釋,即它到底是為什麼會帶來正則化的效果的。
第一種,是從 PRML 中看到的
對於 L1、L2 Regularization,他們的 Cost Function 分別可以寫作
於是,我們可以寫出它們的等價形式,如下
可以看出,我們其實是通過 L1 或 L2 約束將限制在一個空間中,在此基礎上求出使 Cost Function 最小的。
假設現在考慮有兩維,如下圖。其中黃色區域分別是 L2 和 L1 約束,藍色是 Cost Function 的等高線。藍色與紅色的切點即求出的,可以看出對於 L1 約束,更容易出現在坐標軸上,即只有一個維度上有非0值;而對於 L2 約束,則可能出現在象限的任何位置。這也是 L1 正則會帶來稀疏解的解釋之一。
第二種,是從概率的角度
假設給定觀察數據為,貝葉斯方法通過最大化後驗概率估計參數,即
其中,是似然函數,是參數的先驗。
當服從維0均值高斯分布,即
代入上式,有
其中,第一項就是我們平時所定義的 Cost Function;第二項就是 L2 正則項;第三項當給定了那麼就是常數了。所以我們可以看出, L2 正則本質其實是給模型參數添加了一個協方差為的零均值高斯分布先驗。而越小,則協方差越大,表明先驗對的約束越弱,模型的 variance 越大;反之,而越大,則協方差越小,表明先驗對的約束越強,模型越穩定。這與我們平時的理解是吻合的。
當服從維0均值同分布 Laplace 分布時,即
代入上式,有
同樣,第一項就是我們平時所定義的 Cost Function;第二項就是 L1 正則項;第三項當給定了那麼就是常數了。一維 Laplace 分布如下:
其概率密度如下圖所示,可以看出它取值的特點是很大概率落在一個小範圍內。當時,它會以很大概率取值在0的附近,這也就是 L1 約束會出現稀疏解的原因。
尾巴
在梳理 DNN 相關知識時,感覺現階段 DNN 相關的信息有一些特點:首先是涉及到的知識很廣泛,卻都比較零碎;其次,DNN 中對於參數的解釋更多地需要意會,理論上能解釋的特別好的並不太多。這種特點某種程度上也體現在了這篇文章中,可能也會體現在整個 DNN 系列中。同時,由於事情較多,每日寫 BLOG 時間很有限,如果文章有什麼錯誤或者建議,也歡迎指出。
本系列其他文章:
Supervised Learning:
當我們在談論 Deep Learning:DNN 與 Backpropagation當我們在談論 Deep Learning:DNN 與它的參數們(壹)當我們在談論 Deep Learning:DNN 與它的參數們(貳)當我們在談論 Deep Learning:DNN 與它的參數們(叄)當我們在談論 Deep Learning:CNN 其常見架構(上)Unsupervised Learning:
Reinforcement Learning:
推薦閱讀:
※人工智慧進化史:從麥卡錫到「索菲亞」 | 精選
※全球人工智慧初創公司25強
※怎樣看待2017科大訊飛發布會展示的腦波控制技術?
※AI研究院 | 人工智慧是如何通過演算法進行舞步設計的?
※機器人能否把自己的電源拔掉?
TAG:深度学习DeepLearning | 优化 | 人工智能 |