選自arXiv
機器之心編譯
參與:panda
在用神經網絡學習自然語言處理任務時,選擇哪個激活函數更好?去年谷歌大腦提出的 swish 函數又如何?不同的研究者和工程師可能會給出不同的答案。德國達姆施塔特工業大學的一篇 EMNLP 論文給出了 21 種激活函數在 NLP 任務上的實驗比較結果,發現比較冷門的 penalized tanh 函數表現優異。研究者也已在 GitHub 上釋出了相關代碼和資料。
論文:https://arxiv.org/pdf/1901.02671.pdf
項目:https://github.com/UKPLab/emnlp2018-activation-functions

摘要:激活函數在神經網絡中發揮着重要的作用,它們的非線性為深度學習的成功做出了重要的貢獻。目前最流行的激活函數之一是 ReLU,但研究者最近又提出或「發現」了幾種競争者,其中包括 LReLU 函數和 swish。大多數研究都是在少數幾種任務上比較新提出的激活函數(通常是圖像分類方面的任務),且對比的競争者也少(通常是 ReLU),而我們首次在 8 種不同的 NLP 任務上進行了 21 種激活函數的大規模比較。
我們發現一種很大程度上不為人知的激活函數在所有任務上都表現得最穩定,即所謂的 penalized tanh 函數。我們還表明它能在 LSTM 單元中成功替代 sigmoid 和 tanh 門,并能在一種高難度的 NLP 任務上取得優于标準選擇 2 個百分點的表現。
1 引言
激活函數是神經網絡的一大關鍵元件,因為它們可将原本線性的分類器轉換成非線性的。神經網絡近些年在衆多任務上表現優異這一事實已經證明這種轉換至關重要。盡管理論上而言,Sigmoid 或 tanh 等不同的激活函數往往是等價的——它們都能近似任意的連續函數(Hornik, 1991),但不同的激活函數往往會在實踐中表現出非常多樣的行為。
舉個例子,sigmoid 是一種在神經網絡實踐中占據了幾十年主導地位的激活函數,最終卻被證明不适用于學習,原因是(根據公認的看法)它的導數很小,這可能會導緻梯度消失問題。在這方面,事實證明所謂的 ReLU 函數(Glorot et al., 2011)要更加适用得多。它在正的區域有一個恒等導數,是以宣稱更不易受梯度消失問題的影響。是以它也已經成為了目前最流行的激活函數(有争議)。對 ReLU 的成功的認可讓人們提出了多種擴充(Maas et al., 2013; He et al., 2015; Klambauer et al., 2017),但沒有任何一種能一樣受歡迎,原因很可能是 ReLU 很簡潔,而不同擴充在不同資料集和模型上所報告的增益往往是不一緻的或較低(Ramachandran et al., 2017)。
人們已經為激活函數認定了多種被認為對學習成功很重要的特征屬性,比如與它們的導數相關的屬性、單調性以及它們的範圍是否有限。但是,Ramachandran et al. (2017) 在近期一項研究中使用了自動搜尋來尋找表現優良的全新激活函數,他們的搜尋空間包含了基本一進制和二進制函數的組合,比如 max、min、sin、tanh 或 exp。他們發現很多函數都不具備被認為有用的屬性,比如非單調激活函數或不滿足 ReLU 保留梯度的屬性的函數。
實際上,他們最成功的函數——他們稱之為 swish,并不滿足這兩個條件。但是,和之前的工作一樣,他們也隻是在少數不同資料集和少數幾類不同網絡上對比評估了他們的新發現和(整流)基準激活函數——這些資料集通常取自 CIFAR(Krizhevsky, 2009)和 ImageNet(Russakovsky et al., 2015)等圖像分類社群,使用的網絡也通常是充斥着圖像分類社群的深度卷積網絡(Szegedy et al., 2016)。
就我們所知,人們還沒有大規模地通過實驗比較過不同激活函數在不同任務和網絡架構上的表現,更别說在自然語言處理(NLP)領域了。究竟哪個激活函數在不同的 NLP 任務和常用 NLP 模型上表現最好最穩定?在此之前,這個問題一直都未能得到解答。
我們用本研究填補了這一空白。(1)我們比較了 21 種不同的激活函數,包括 Ramachandran et al. (2017) 中通過自動搜尋找到的 6 種表現最佳的激活函數;(2)我們采用了 3 種常見的 NLP 任務類型(句子分類、文檔分類、序列标注),包含 8 項單個任務;(3)我們使用了 3 種常用的 NLP 架構,即 MLP、CNN 和 RNN。(4)我們在兩個不同次元上比較了所有這些函數,即最佳表現和平均表現。
我們發現,在這些不同的任務上,一種很大程度上不為人知的激活函數「penalized tanh」(Xu et al., 2016)表現最穩定。我們還發現它能在 LSTM 單元中成功替代 tanh 和 sigmoid。我們進一步發現 Ramachandran et al. (2017) 中發現的大多數表現優異的函數在我們的任務上表現不佳。但 swish 是一個例外,它在多個任務上都表現不錯,但并沒有 penalized tanh 與其它函數穩定
2 理論
我們考慮了 21 種激活函數,其中 6 種是 Ramachandran et al. (2017) 中「全新」提出的。表 1 給出了這 6 種函數與 sigmoid 函數的形式。
表 1:上:sigmoid 函數與 Ramachandran et al. (2017) 中表現最好的 6 種激活函數。下:具有不同參數的 LReLU 函數以及 penalized tanh。
另外 14 種激活函數分别是:tanh、sin、relu、lrelu0.01、lrelu-0.30、maxout-2、maxout-3、maxout4、prelu、linear、elu、cube、penalized tanh、selu。我們簡單介紹一下:
- lrelu-0.01 和 lrelu0.30 是所謂的 leaky relu(LReLU)函數(Maas et al., 2013),它們背後的思想是避免在 relu 的負區域出現零激活/導數。表 1 也給出了它們的函數形式。
- prelu(He et al., 2015)是對 LReLU 函數的泛化,是将其負區域中的斜率設定為一個可學習的參數。
- maxout 函數(Goodfellow et al., 2013)的不同在于其引入了額外的參數,而且并不在單個标量輸入上操作。比如 maxout-2 是取兩個輸入中的最大值的操作:max{xW+b, xV+c},是以可學習參數的數量多一倍。maxout-3 類似,是取三個輸入中的最大值。如 Goodfellow et al. (2013) 所示,maxout 可以近似任意凸函數。
- sin 是标準的正弦函數,被提出用于神經網絡學習,比如 Parascandolo et al. (2016),其中表明 sin 在特定任務上的學習速度比更有地位的函數快。
- penalized tanh(Xu et al., 2016)的定義與 LReLU 函數類似,可被看作是「懲罰」負區域中的恒等函數。penalized tanh 在 CIFAR-100 上報告的優良表現(Krizhevsky, 2009)讓作者推測:激活函數在原點附近的斜率可能對學習至關重要。
- linear 是恒等函數 f(x) = x。
- cube 是立方函數 f(x) = x³,由 Chen and Manning (2014) 為依賴關系分析所用的一個 MLP 提出。
- elu(Clevert et al., 2015)是 relu 的又一種變體,其假設了負值,使平均激活更以零為中心。
- selu 是 elu 的一種擴充版,Klambauer et al. (2017) 将其用在了所謂的自歸一化神經網絡背景中。
激活函數的屬性
人們推測激活函數的很多屬性都對學習成功至關重要。表 2 列出了其中一些,另外還給出了一些簡要的說明和解釋。
表 2:常被提及的激活函數屬性
3 實驗
我們使用三種神經網絡類型和三種 NLP 任務類型進行了實驗。
表 3:我們實驗中使用的評估任務,按任務類型(句子分類、文檔分類、序列标注)分組,并給出了統計資料和示例。C 是指所要預測的類别的數量。
表 4:每種網絡類型的超參數範圍。超參數取自指定範圍中的離散或連續均勻分布。重複的值表示多個集合。N (µ, s) 是均值為 μ 且标準差為 s 的正态分布;µ = m 是 Keras 的特定優化器的預設值(如果選取的學習率小于 0,則我們選擇它為 m)。
3.1 MLP & 句子分類
圖 1:句子分類。左側 Y 軸:最佳結果;右側 Y 軸:平均結果。在 Y 軸上的分數是在所有 mini 實驗上的平均。
3.2 CNN & 文檔分類
圖 2:文檔分類
3.3 RNN & 序列标注
圖 3:序列标注
4 分析與讨論
獲勝者統計情況
在最佳表現上,句子分類、文檔分類和序列标注這三個元任務平均而言都是 rectifier(整流)家族的一個成員獲勝,即 relu(獲勝 2 次)和 elu。另外,在每種情況中,cube 和 cosid 都位清單現最差的激活函數。Ramachandran et al. (2017) 中新提出的函數大都位居中間位置,但 swish 和 minsin 在「表現最佳」類别中表現最佳。對于「表現平均」類别,maxout 函數尤其突出,另外 penalized tanh 和 sin 也常處于領先位置。
為了得到更深入的見解,我們計算了所有 17 個 mini 實驗上的獲勝統計情況,統計了每種激活函數位居前三的次數。結果見表 5,其中排除了 prelu 和 maxout 函數,因為它們沒有在所有 mini 實驗中測試。
表 5:獲得前三名的次數統計。括号中是進入前三的次數,僅給出了至少 4 次進入前三的激活函數。
可以看到,penalized tanh 和 swish 在「表現最佳」類别中勝出,之後是整流系函數。「表現平均」類别的獲勝者無疑是通過使用有限範圍來使激活函數飽和而獲勝的。如果将比較限制在句子和文檔分類(包含 maxout 函數),則 penalized tanh 在「表現平均」類别上優于 maxout。
似乎能夠得出結論了:在各種超參數設定上,範圍有限的函數表現更穩定,而非飽和函數往往能得到更好的最佳表現。penalized tanh 是值得一提的例外,它在這兩個類别上都有很好的表現(成本更高的 maxout 函數是另一個例外)。如果 penalized tanh 在原點附近的斜率是其表現良好的原因,那麼這也可以解釋 cube 為何表現如此之差,因為它在原點附近非常平坦。
超參數的影響
為了直覺地了解超參數影響我們的不同激活函數的方式,我們在測試集上在所有使用的超參數上對激活函數的分數進行了回歸操作。比如,我們估計了:
其中 y 是在測試集上的分數,n_l 是網絡中層的數量,d 是 dropout 值等等。每個回歸量 k 的系數 α_k 是我們想要估計的值(尤其是它們的大小和符号)。我們對規模(比如單元數、過濾器數)顯著大于其它變量的特定變量求取了對數。對于優化器等離散回歸量,我們使用了二進制啞變量(binary dummy variables)。我們為每個激活函數和每個 mini 實驗獨立地估計了(1)式。
整體而言,結果呈現出非常多樣化的模式,這讓我們無法得出很确定的結果。盡管如此,我們還是觀察到盡管所有模型在隐藏層更少時的表現平均更好,尤其是 swish 能穩健地應對更多隐藏層(較小的負系數 α_l),但 penalized tanh 的程度更小。在句子分類任務中,sin 和 maxout 函數能尤其穩健地應對隐藏層增多的情況。因為 penalized tanh 是一個飽和函數,sin 甚至是一個振蕩函數,是以我們得出結論:保持梯度(導數接近 1)并非是成功學習更深度網絡的必要前提條件。
本文為機器之心編譯,轉載請聯系本公衆号獲得授權。
✄------------------------------------------------
加入機器之心(全職記者 / 實習生):[email protected]
投稿或尋求報道:[email protected]
廣告 & 商務合作:[email protected]