21種NLP任務啟用函式大比拼:你一定猜不到誰贏了
論文: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)並非是成功學習更深度網路的必要前提條件。