引爆學術界的新型歸一化方法:SNN提出新型激活函數SELU
選自Medium、Facebook
機器之心編譯
參與:機器之心編輯部
近日,arXiv 上公開的一篇 NIPS 投稿論文《Self-Normalizing Neural Networks》引起了圈內極大的關注,它提出了縮放指數型線性單元(SELU)而引進了自歸一化屬性,該單元主要使用一個函數 g 映射前後兩層神經網路的均值和方差以達到歸一化的效果。該論文的作者為 Sepp Hochreiter,也就是當年和 Jürgen Schmidhuber 一起發明 LSTM 的大牛,之前的 ELU 同樣來自於他們組。有趣的是,這篇 NIPS 投稿論文雖然只有 9 頁正文,卻有著如同下圖一樣的 93 頁證明附錄。
在這篇文章中,機器之心對該論文進行了概要介紹。此外,Github 上已有人做出了論文中提出的 SELUs 與 ReLU 和 Leaky ReLU 的對比,我們也對此對比進行了介紹。
論文地址:https://arxiv.org/pdf/1706.02515.pdf
摘要:深度學習不僅通過卷積神經網路(CNN)變革了計算機視覺,同時還通過循環神經網路(RNN)變革了自然語言處理。然而,帶有標準前饋神經網路(FNN)的深度學習很少有成功的案例。通常表現良好的 FNN 都只是淺層模型,因此不能挖掘多層的抽象表徵。所以我們希望引入自歸一化神經網路(self-normalizing neural networks/SNNs)以幫助挖掘高層次的抽象表徵。雖然批歸一化要求精確的歸一化,但 SNN 的神經元激勵值可以自動地收斂到零均值和單位方差。SNN 的激活函數即稱之為「可縮放指數型線性單元(scaled exponential linear units/SELUs)」,該單元引入了自歸一化的屬性。使用 Banach 的不動點定理(fixed-point theorem),我們證明了激勵值逼近於零均值和單位方差並且通過許多層的前向傳播還是將收斂到零均值和單位方差,即使是存在雜訊和擾動的情況下也是這樣。這種 SNN 收斂屬性就允許 (1) 訓練許多層的深度神經網路,同時 (2) 採用強正則化、(3) 令學習更具魯棒性。此外,對於不逼近單位方差的激勵值,我們證明了其方差存在上確界和下確界,因此梯度消失和梯度爆炸是不可能出現的。同時我們採取了 (a) 來自 UCI 機器學習庫的 121 個任務,並比較了其在 (b) 新葯發現基準和 (c) 天文學任務上採用標準 FNN 和其他機器學習方法(如隨機森林、支持向量機等)的性能。SNN 在 121 個 UCI 任務上顯著地優於所有競爭的 FNN 方法,並在 Tox21 數據集上超過了所有的競爭方法,同時 SNN 還在天文數據集上達到了新紀錄。該實現的 SNN 架構通常比較深,實現可以在以下鏈接獲得:http://github.com/bioinf-jku/SNNs。
前言
深度學習在許多不同的基準上都達到了新記錄,並促進了各種商業應用的發展 [25, 33]。循環神經網路(RNN)[18] 令語音和自然語言處理達到了新階段。而與其相對應的卷積神經網路(CNN)[24] 則變革了計算機視覺和視頻任務。
然而,當我們回顧 Kaggle 競賽時,通常很少有任務是和計算機視覺或序列任務相關的,梯度提升、隨機森林或支持向量機(SVM)通常在絕大多數任務上都能取得十分優秀的表現。相反,深度學習卻表現並不優異。
為了更魯棒地訓練深度卷積神經網路(CNN),批歸一化發展成了歸一化神經元激勵值為 0 均值和單位方差 [20] 的標準方法。層級歸一化(Layer normalization)[2] 確保了 0 均值和單位方差,因為如果上一層的激勵值有 0 均值和單位方差,那麼權值歸一化 [32] 就確保了 0 均值和單位方差。然而,歸一化技術在訓練時通常會受到隨機梯度下降(SGD)、隨機正則化(如 dropout)和估計歸一化參數所擾動。
自歸一化神經網路(SNN)對於擾動是具有魯棒性的,它在訓練誤差上並沒有高方差(見圖 1)。SNN 令神經元激勵值達到 0 均值和單位方差,從而達到和批歸一化相類似的效果,而這種歸一化效果可以在許多層級的訓練中都保持魯棒性。SNN 基於縮放指數型線性單元(SELU)而引進了自歸一化屬性,因此方差穩定化(variance stabilization)也就避免了梯度爆炸和梯度消失。
自歸一化神經網路(SNN)
歸一化和 SNN
圖 1:左邊圖表和右邊圖表的 y 軸展示了帶有批歸一化(BatchNorm)和自歸一化(SNN)的前饋神經網路(FNN)的訓練損失,x 軸代表迭代次數,該訓練在 MNIST 數據集和 CIFAR10 數據集上完成。我們測試的神經網路有 8、16 和 32 層,且學習率為 1e-5。採用批歸一化的 FNN 由於擾動出現了較大的方差,但 SNN 並不會出現較大的方差,因此 SNN 對擾動會更加魯棒,同時學習的速度也會更加迅速。
構建自歸一化神經網路
我們通過調整函數 g 的屬性以構建自歸一化神經網路。函數 g 只有兩個可設計的選擇:(1) 激活函數和 (2) 權重的初始化。
通過映射函數 g 派生均值和方差
我們假設 xi 之間相互獨立,並且有相同的均值μ 和方差 ν,當然獨立性假設通常得不到滿足。我們將在後面詳細描述獨立性假設。函數 g 將前一層神經網路激勵值的均值和方差映射到下一層中激勵值 y 的均值μ? = E(y) 和方差ν? = Var(y) 中:
這些積分的解析解可以通過以下方程求出:
歸一化權值的穩定和誘集不動點(Attracting Fixed Point)(0,1)
非歸一化權值的穩定和誘集不動點(Attracting Fixed Point)
在學習中歸一化的權值向量 w 並得不到保證。
圖 2:對於ω = 0 和 τ = 1,上圖描述了將均值μ(x 軸)和方差 v(y 軸)映射到下一層的均值 μ?和方差ν?。箭頭展示了由 g : (μ, ν) → (?μ, ν?) 映射的 (μ, ν) 的方向。映射 g 的不動點為 (0, 1)。
定理一(穩定和誘集不動點)
該章節給出了定理證明的概要(附錄 Section A3 給出詳細的證明)。根據 Banach 不動點定理(fixed point theorem),我們證明了存在唯一的誘集和穩定不動點。
定理二(降低 v)
該定理的詳細證明可以在附錄 Section A3 中找到。因此,當映射經過許多層級時,在區間 [3, 16] 內的方差被映射到一個小於 3 的值。
定理三(提高 v)
該定理的證明可以在附錄 Section A3 找到。所有映射 g(Eq. (3)) 的不動點 (μ, ν) 確保了 0.8 =< τ時ν ? >0.16,0.9 =< τ時ν ?> 0.24。
初始化
因為 SNN 有歸一化權值的 0 均值和單位方差不動點,所以我們初始化 SNN 來滿足一些期望的約束條件。
新的 Dropout 技術
標準的 Dropout 隨機地設定一個激勵值 x 以 1-q 的概率等於 0,其中 0 < q < 1。為了保持均值,激勵值在訓練中通過 1/q 進行縮放。
中心極限定理和獨立性假設的適用性
在映射 (Eq. (3)) 的導數中,我們使用了中心極限定理(CLT)去逼近神經網路的輸入
為正態分布。
實驗(略)
結論
我們提出了自歸一化神經網路,並且已經證明了當神經元激勵在網路中傳播時是在朝零均值(zero mean)和單位方差(unit variance)的趨勢發展的。而且,對於沒有接近單位方差的激勵,我們也證明了方差映射的上線和下限。於是 SNN 不會產梯度消失和梯度爆炸的問題。因此,SNN 非常適用於多層的結構,這使我們可以引入一個全新的正則化(regularization)機制,從而更穩健地進行學習。在 121UCI 基準數據集中,SNN 已經超過了其他一些包括或不包括歸一化方法的 FNN,比如批歸一化(batch)、層級歸一化(layer)、權值歸一化(weight normalization)或其它特殊結構(Highway network 或 Residual network)。SNN 也在藥物研發和天文學任務中產生了完美的結果。和其他的 FNN 網路相比,高性能的 SNN 結構通常深度更深。
SELU 與 Relu、Leaky Relu 的對比
昨日,Shao-Hua Sun 在 Github 上放出了 SELU 與 Relu、Leaky Relu 的對比,機器之心對比較結果進行了翻譯介紹,具體的實現過程可參看以下項目地址。
項目地址:https://github.com/shaohua0116/Activation-Visualization-Histogram
描述
本實驗包括《自歸一化神經網路》(Self-Normalizing Neural Networks)這篇論文提出的 SELUs(縮放指數型線性單元)的 Tensorflow 實現。也旨在對 SELUs,ReLU 和 Leaky-ReLU 等進行對比。本實驗的重點是在 Tensorboard 上對激勵進行可視化。
SELUs(縮放指數型線性單元),ReLU 和 Leaky-ReLU 的可視化和直方圖對比
理論上,我們希望每一層的激勵的均值為 0(zero mean),方差為 1(unit variance),來使在各層之間傳播的張量收斂(均值為 0,方差為 1)。這樣一來就避免了梯度突然消失或爆炸性增長的問題,從而使學習過程更加穩定。在本實驗中,作者提出 SELUs(縮放指數型線性單元),旨在對神經元激勵進行自動地轉移(shift)和重縮放 (rescale),在沒有明確的歸一化的情況下去實現零均值和單位方差。
為了用實驗證明所提出的激勵的有效性,一個包含三個卷積層的卷積神經網路(也包括三個完全連接層——fully connected layers)在 MNIST, SVHN 和 CIFAR10 數據集上進行訓練,來進行圖像分類。為了克服 Tensorboard 顯示內容的一些限制,我們引入了繪圖庫 Tensorflow Plot 來彌補 Python 繪圖庫和 Tensorboard 間的差距。以下是一些例子。
在 Tensorboard 上的激勵值直方圖
在 Tensorboard 上的激勵值可視化
實現模型在三個公開的數據集上進行的訓練與測試:MNIST、SVHN 和 CIFAR-10。
結果
下面我們只選擇性展示了最後一個卷積層(第三層)和首個全連接層(第四層)的直方圖和可視化激勵值圖。
SELU
卷積層
全連接層
ReLU
卷積層
全連接層
Leaky ReLU
卷積層
全連接層
相關工作
Self-Normalizing Neural Networks by Klambauer et. al
Rectified Linear Units Improve Restricted Boltzmann Machines by Nair et. al.
Empirical Evaluation of Rectified Activations in Convolutional Network by Xu et. al.
作者
Shao-Hua Sun / @shaohua0116 (https://shaohua0116.github.io/)。


※學界|讓機器耳濡目染:MIT提出跨模態機器學習模型
※OpenAI提出強化學習新方法:讓智能體學習合作、競爭與交流
※FB「1小時訓練ImageNet」論文惹爭議,類似研究回顧
※從Yoav與LeCun爭論,看當今的深度學習與NLP風氣
TAG:機器之心 |
※效果驚艷!FAIR提出人體姿勢估計新模型,升級版Mask-RCNN
※CMU、NYU與FAIR共同提出GLoMo:遷移學習新範式
※CMU&谷歌大腦提出新型問答模型QANet:僅使用卷積和自注意力,性能大大優於RNN
※業界 | OpenAI提出新型元學習方法EPG,調整損失函數實現新任務上的快速訓練
※用AI設計微波集成電路,清華大學等提出深度強化學習方法RINN
※AI 造圖新境界!OpenAI 提出的可逆生成模型,比 GAN 更具潛力?
※LINE MOBILE聯合日本3大運營商提出發展戰略
※華為聯合LSE提出KONG:有序近鄰圖的核函數
※超越BERT、GPT,微軟提出通用預訓練模型MASS
※牛津大學提出全新生成式模型「SQAIR」,用於移動目標的視頻理解
※清華等提出ERNIE:知識圖譜結合BERT才是「有文化」的語言模型
※美國科學家提出了新型HIV疫苗策略
※FAIR聯合INRIA提出DensePose-RCNN,更好地實現人體姿態估計
※Petuum提出新型正則化方法:非重疊促進型變數選擇
※如何將GPU性能提升4-5倍?創新奇智提出基於NVRAM TPS的Helper Warp方法
※跨語言版BERT:Facebook提出跨語言預訓練模型XLM
※DeepMind提出關係RNN:構建關係推理模塊,強化學習利器
※Valve新研究為VR遊戲提出「腦機交互」願景
※商湯聯合提出基於FPGA的快速Winograd演算法:實現FPGA之上最優的CNN表現與能耗
※BAIR提出MC-GAN,使用GAN實現字體風格遷移