1
本文作者: AI科技評論 | 2016-06-17 21:58 |
國際機器學(xué)習(xí)大會(ICML)即將于6月19日-24日在紐約召開,眾多頂尖的科研人員與公司的人工智能實驗室提交了最新研究論文。在此,雷鋒網(wǎng)為大家分享著名學(xué)者 Yoshua Bengio 與谷歌 DeepMind 研究科學(xué)家等人合作的研究論文。最近業(yè)界對于“閘門”架構(gòu)重新產(chǎn)生了興趣,這種架構(gòu)可以應(yīng)用在圖片或視頻自動標(biāo)題生成等廣泛領(lǐng)域,雖然這項方法獲得了成功,但是還存在關(guān)鍵問題。本片論文以引入噪音——看似違反直覺的“反人類”方法——解決了傳統(tǒng)激活函數(shù)飽和效應(yīng)難以優(yōu)化的問題。
今年8月,谷歌 DeepMind CEO Demis Hassabis 也將參與雷鋒網(wǎng)舉辦的人工智能與機器人創(chuàng)新大會。
Yoshua Bengio:人工智能領(lǐng)域的知名學(xué)者,在神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)領(lǐng)域的重要貢獻廣為人知,目前在蒙特利爾大學(xué)任職。
Caglar Gulcehre:蒙特利爾大學(xué)LISA實驗室博士生,導(dǎo)師為Yoshua Bengio,研究領(lǐng)域包括機器學(xué)習(xí)、深度學(xué)習(xí)、自然語言處理、機器視覺等。
Misha Denil:谷歌 DeepMind 研究科學(xué)家,曾在牛津大學(xué)獲得博士學(xué)位。
Marcin Moczulski:牛津大學(xué)博士生。
《噪音激活函數(shù)》
摘要
神經(jīng)網(wǎng)絡(luò)中常見的非線性激活函數(shù)會為訓(xùn)練帶來困難,由于激活函數(shù)的飽和行為,可能會隱藏對于vanilla-SGD(只使用一階梯度)來說,不可見的依存性。一個很好的例子就是,一些閘門機制使用軟飽和激活函數(shù)來模擬數(shù)字邏輯電路的離散開關(guān)。我們提出注入合適的噪音,從而讓梯度容易求導(dǎo),即便是激活函數(shù)的無噪音應(yīng)用會帶來零梯度。大噪音會主導(dǎo)無噪音梯度,并讓隨機梯度下降可以進行更多探索。通過只在激活程序的問題部分增加噪音,我們讓優(yōu)化過程可以探索激活程序中退化(飽和)部分和良好部分的邊界。我們還建立了聯(lián)接來模擬退火,當(dāng)噪音的數(shù)量退火下降,從而讓優(yōu)化硬目標(biāo)函數(shù)更容易些。通過實驗我們發(fā)現(xiàn),用噪音變量替換飽和激活函數(shù)可以在很多情況下幫助優(yōu)化,在不同的數(shù)據(jù)庫和任務(wù)中產(chǎn)生頂尖的或者非常有競爭力的結(jié)果,尤其是在訓(xùn)練看起來最為困難的時候,例如,當(dāng)必須通過課程學(xué)習(xí)來獲得好結(jié)果的時候。
1、簡介
類似ReLU和Maxout(Goodfellow等,2013)單元等分段線性激活函數(shù)的引入,對深度學(xué)習(xí)帶來了深遠的影響,并且成為一種催化劑,讓更深的網(wǎng)絡(luò)訓(xùn)練成為可能。多虧了 ReLU,我們第一次看到了純監(jiān)督下的深度網(wǎng)絡(luò)可以進行訓(xùn)練(Glorot等,2011),而使用 tanh 非線性函數(shù)只能訓(xùn)練較淺的網(wǎng)絡(luò)。關(guān)于最近興起的對于這類分段線性激活函數(shù)(Glorot等,2011)的興趣,一個說得通的理論是,因為它們使用SGD和反向傳播算法進行優(yōu)化,比使用 sigmoid 和 tanh 等平滑激活函數(shù)進行優(yōu)化更加容易。最近我們可以在計算機視覺領(lǐng)域中看到分段線性函數(shù)的成功案例,這個領(lǐng)域中 ReLU 已經(jīng)成為了卷積網(wǎng)絡(luò)的默認之選。
我們提出了一種新技術(shù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),當(dāng)其輸入很大時使用高度飽和的激活函數(shù)。主要的方法是在激活函數(shù)中的飽和狀態(tài)注入噪音,并學(xué)習(xí)噪音等級。使用這種方法讓我們發(fā)現(xiàn),我們可以訓(xùn)練帶有比之前更廣泛的激活函數(shù)家族的神經(jīng)網(wǎng)絡(luò)。在激活函數(shù)中加入噪音已經(jīng)在 ReLU 單元中有人考慮過,并且在前饋網(wǎng)絡(luò)和 Boltzmann 機器中有過探索(Bengio等,2013;Nair & Hinton,2010)來鼓勵單元進行更多探索,讓優(yōu)化更加容易。
在這之后,最近重現(xiàn)了一股對于更加制作精良的“閘門”架構(gòu)的興趣,例如LSTM(Hochreiter & Schmidhuber,1997)和GRU(Cho等,2014),以及對于包含神經(jīng)注意機制的興趣,這些機制已經(jīng)用在NTM(Graves等,2014)、記憶網(wǎng)絡(luò)(Weston等,2014)、自動圖片標(biāo)題(Xu等,2015b)、視頻標(biāo)題生成(Yao等,2015)以及廣泛的應(yīng)用領(lǐng)域(LeCun等,2015)。這些研究中經(jīng)常出現(xiàn)的主線是對于軟飽和非線性的使用,例如signoid或者softmax函數(shù),來模擬數(shù)字邏輯電路的硬決策。雖然這項方法獲得了成功,但是還有兩項關(guān)鍵問題:
1、由于非線性函數(shù)仍然飽和,就會有消亡的梯度信息從閘門流入的問題;
2、由于非線性函數(shù)只會軟飽和,它們沒法讓我們實現(xiàn)硬決策。
雖然閘門經(jīng)常在軟飽和狀態(tài)運作(Karpathy等,2015;Bahdanau等,2014;Hermann等,2015),架構(gòu)使得它們沒法完全處于開放或關(guān)閉的狀態(tài)。我們采用了一種新的方法,來解決這兩項問題。我們的方法通過使用硬飽和非線性函數(shù)來解決第二個問題,這讓閘門可以在飽和的時候可以做出完全開或關(guān)的決定。由于閘門可以是完全開放或關(guān)閉的,軟閘門架構(gòu)的泄露性也不會導(dǎo)致信息丟失。
通過引入硬飽和非線性函數(shù),我們加劇了梯度流的問題,由于在飽和狀態(tài)的梯度現(xiàn)在是精確的零,而非可以忽略的。然而,通過引入噪音到激活函數(shù)中,函數(shù)可以基于飽和量級而增長,我們鼓勵隨機探索。我們的研究基礎(chǔ)是,現(xiàn)有的對分段線性激活函數(shù)中注入噪音的方法研究(Bengio等,2013;Nair&Hinton,2010;Xu等,2015a)。
在測試的時候,激活函數(shù)里的噪音可以用其期望值代替。我們的實驗顯示,結(jié)果產(chǎn)生的決定論網(wǎng)絡(luò)在許多類型的任務(wù)中都優(yōu)于軟飽和網(wǎng)絡(luò),只要在現(xiàn)有的訓(xùn)練代碼中簡單地直接替代非線性函數(shù),就能實現(xiàn)頂尖的運行表現(xiàn)。
我們提出的技術(shù)解決優(yōu)化的難度,以及測試時針對閘門單元硬激活的難度,而且我們提出了一種進行神經(jīng)網(wǎng)絡(luò)模擬退火的方法。
Hannun等(2014)和Le等(2015)使用了帶有 RNN 的 ReLU 激活函數(shù)。在這篇論文中我們成功證明了,使用帶有閘門循環(huán)神經(jīng)網(wǎng)絡(luò)(例如 LSTM 和 GRU)的分段線性激活函數(shù)是可行的。
2、激活函數(shù)飽和化
定義 2.1. (激活函數(shù))
激活函數(shù)是函數(shù) h : R → R,在幾乎所有地方都是可微的。
定義 2.2. (飽和)
一個具有導(dǎo)數(shù) h’(x) 的激活函數(shù) h(x) ,如果當(dāng) x→∞(resp. x → -∞)時,其極限為0,則被稱為右(resp. 左)飽和。如果一個激活函數(shù)既左飽和也右飽和,則被稱為飽和(沒有資格)。
在循環(huán)神經(jīng)網(wǎng)絡(luò)中使用最常見的激活函數(shù)(例如 tanh 和 sigmoid)是飽和的。而且,它們是軟飽和,意味著他們至在極限實現(xiàn)飽和。
定義 2.3. (硬和軟飽和)
令 c 為一個常數(shù),使得 x > c 意味著 h’(x) = 0,而且當(dāng) x < c 意味著 h’(x) = 0,?x,則為左硬飽和。我們稱 h(·) 為硬飽和(沒有資格)如果它既左硬飽和、又右硬飽和。如果一個飽和激活函數(shù)只有在極限實現(xiàn)零梯度,我們稱其為軟飽和。
我們可以使用一個關(guān)于0的一階泰勒展開,并將結(jié)果修剪到適合的范圍內(nèi),從而創(chuàng)建一個硬飽和版本的軟飽和函數(shù)。
舉個例子,圍繞0展開 tanh 和 sigmoid,x ≈ 0,我們分別獲得 tanh 和 sigmoid 的線性函數(shù) ut 和 us:
sigmoid (x) ≈ us (x) = 0.25x + 0.5 (1)
tanh (x) ≈ ut(x) = x. (2)
將線性近似結(jié)果修剪為:
hard - sigmoid (x) = max ( min ( us (x),1),0) (3)
hard - tanh (x) = max ( min ( ut (x),1),-1) (4)
這樣創(chuàng)建的目的是為了引入圍繞 0 的線性行為,讓梯度在單元不飽和的時候容易流入,同時在飽和狀態(tài)提供清晰的決策。
圖1:不同激活函數(shù)的導(dǎo)數(shù)圖。
硬 sigmoid 和硬 tanh 之所以能夠進行清晰決策,是付出了飽和狀態(tài)正好 0 梯度的代價。這會在訓(xùn)練時帶來困難:激活前(在非線性前)一個很小但非無窮小的變化會幫助減少目標(biāo)函數(shù),導(dǎo)數(shù)則不會在梯度中反應(yīng)出來。
在論文的其余部分我們會使用 h(x) 來指代一個一般的激活函數(shù),使用 u(x) 來標(biāo)記其以關(guān)于 0 的一階泰勒展開為基礎(chǔ)的線性化。當(dāng) x ≤ -2 或 x ≥ 2 時,硬 sigmoid 飽和;當(dāng) x ≤ -1 或 x ≥ 1 時,硬 tanh 飽和。我們用 xt 標(biāo)記閾值。閾值的絕對值針對硬 sigmoid 時為 xt = 2,針對硬 tanh 時為 xt = 1。
高度非平滑梯度下降軌跡可能將參數(shù)帶入一個狀態(tài),使得一個單元針對某一例子向著 0 梯度狀態(tài)激活,它可能很難從這兒脫離,單元可能會卡在 0 梯度狀態(tài)中。
當(dāng)單元飽和、梯度消失,算法可能得需要許多訓(xùn)練例子和許多計算才能恢復(fù)。
3、用噪音激活函數(shù)退火
我們來考慮一個噪音激活函數(shù) Θ(x, ζ ) ,其中我們已經(jīng)注入了 iid 噪音 ζ 來代替一個飽和非線性函數(shù),例如在之前部分介紹過的硬 sigmoid 和硬 tahn。在下一個部分,我們描述我們提出的噪音激活函數(shù),這個函數(shù)已經(jīng)在我們的實驗中使用,但是這里我們希望考慮一個更大家族的此類噪音激活函數(shù),使用一個隨機梯度下降(SGD)用于訓(xùn)練。
令 ζ 具有變量 δ2 和平均數(shù) 0。我們希望隨著我們慢慢為此噪音退火來描述發(fā)生的狀況,從大的噪音等級 (δ → ∞)到根本沒有噪音 ( δ → 0)。
我們還將更進一步,假設(shè) Θ 可以當(dāng)噪音等級變大時,其關(guān)于 x 的導(dǎo)數(shù)為:
圖2:一個一維、非凸目標(biāo)函數(shù)的例子,其中一個簡單的梯度下降會表現(xiàn)很差。有了大噪音 | ζ | → ∞, SGD可以脫離鞍點和作為探索結(jié)果的局部極小值。當(dāng)我們將噪音等級降火至 | ζ | → 0,SGD會最終匯聚到局部最小值 x* 之一。
在 0 噪音極限,我們修復(fù)一個決定論的非線性函數(shù) Θ(x , 0 ),在我們的試驗中是一個分段線性函數(shù),這讓我們可以了解那種我們想要學(xué)習(xí)的復(fù)雜函數(shù)。正如圖2中所示,在大噪音極限可以獲得大梯度,因為通過 Θ 進行反向傳播會帶來大導(dǎo)數(shù)。因此,噪音淹沒了信號:就例子來說,參數(shù)上梯度比 δ = 0. SGD 時要大得多,因此只看到噪音,而且可以在參數(shù)空間內(nèi)移動到任何地方,不會“看見”任何趨勢。
退火也與信號噪音比有關(guān),其中 SNR 可以定義為噪音方差的比例 δsignal 和 δnoise, 。 如果 SNR → 0,模型將進行純粹隨機的探索。當(dāng)我們退火時 SNR 會增加,當(dāng) δnoise 趨近于0時,訓(xùn)練中探索的唯一來源將是隨機梯度的蒙特卡洛模擬。
要讓例如模擬退火(Kirkpatrick等,1983)和延續(xù)方法(Allgower & Georg,1980)等方法能在優(yōu)化困難的非凸目標(biāo)函數(shù)的情境下有所幫助,這正是我們所需的。具有高噪音的 SGD 可以自由探索空間的所有部分。隨著噪音等級下降,它會更傾向于某些區(qū)域,其中信號足夠強,可以被 SGD 所“看到”:當(dāng)SGD 步驟數(shù)量有限時,噪音沒有算出平均數(shù),而且方差持續(xù)占據(jù)主導(dǎo)地位。然后,隨著噪音等級降低,SGD 花更多的時間在“總體更好”的參數(shù)空間區(qū)域。隨著噪音靠近0,我們在微調(diào)解決方案,靠近無噪音目標(biāo)函數(shù)的最小值。一個相關(guān)的方法是在梯度中增加噪音,并為噪音退火,這種方法 Neelakantan等人(2015)也有過研究。Ge等(2015)證明了帶有退火噪音的 SGD 會從整體匯聚到一個局部最小值,為了多項式次的迭代中的非凸目標(biāo)函數(shù)。最近,Mobahi(2016)提出了一種優(yōu)化方法,在損失函數(shù)上使用高斯平滑,這樣退火權(quán)重噪音就是其蒙特卡洛模擬。
4、單元飽和時增加噪音
在我們提出的噪音激活背后有一個新想法,就是加入非線性的噪音數(shù)量與非線性的飽和度的量級是相稱的。對于硬 sigmoid (x) 和硬 tanh(x) 來說,由于我們的噪音參數(shù)化,這意味著只有當(dāng)硬非線性飽和時才增加噪音。這與之前提出的方法都不同,例如 Bengio(2013)提出的噪音激活器,當(dāng)噪音剛好在一個激活器(ReLU)單元前增加時,與輸入是在非線性函數(shù)的線性狀態(tài)還是在飽和狀態(tài)無關(guān)。
目的是為了在單元在非飽和(通常是線性)狀態(tài)時保持訓(xùn)練信號干凈,并在單元處于飽和狀態(tài)時提供一些噪音信號。
h(x) 指代硬飽和激活函數(shù),例如部分2介紹過的硬 sigmoid 和硬 tanh,我們考慮以下形式的噪音激活函數(shù):
并且 s = μ + δζ 。其中 ζ 是一個從一些生成分布中獲取的 iid 隨機變量,參數(shù) μ 和 δ(以下會進行討論)用于從 ζ 中生成一個位置尺度族。
當(dāng)單元飽和時,我們憑直覺將其輸出綁定在閾值 t 并增加噪音。這種方法的準(zhǔn)確行為取決于噪音 ζ 的類型和 μ 和 δ 的選擇,我們可以隨著 x 函數(shù)而選擇,從而讓一些梯度傳播,即便是我們在飽和狀態(tài)中。
一個我們希望 Θ 可以近似滿足理想特特性是,它的預(yù)期值等于硬飽和激活函數(shù),即:
如果 ζ 分布的平均為 0,那么令 μ = 0 可以滿足這項特性,但是對于有偏的噪音必須對 μ 選擇其他值。實際上,我們使用了輕度有偏的 Θ,實現(xiàn)了較好的結(jié)果。
出于直覺,我們希望當(dāng) x 深入飽和狀態(tài)時增加更多的噪音,因為要將 h 去飽和化需要參數(shù)的大變化。相反的,當(dāng) x 靠近飽和閾值,參數(shù)的小變化就足夠其脫離了。為了這個目的,我們在選擇噪音大小時利用了最初的激活函數(shù) h 機器線性化 u 之間的差異:
在未飽和狀態(tài),△的量為0,當(dāng) h 飽和,它與 |x| 和飽和閾值 xt 之間的距離等比例增長。我們還將 |△| 稱為飽和量級。
我們試驗了用 △ 來測量 δ 的不同方法,并通過實證發(fā)現(xiàn)以下方程的表現(xiàn)更好:
在方程9中,自由標(biāo)量參數(shù) p 在訓(xùn)練中習(xí)得。通過改變 p,模型能夠調(diào)整噪音的量級,這還影響梯度的信號。超參數(shù) c 改變噪音的標(biāo)準(zhǔn)方差的大小。
4.1. 飽和狀態(tài)的導(dǎo)數(shù)
我們方法中的最簡單情況下,我們從一個無偏分布(例如正態(tài)分布)中獲得 ζ 。在這種情況下,我們選擇 μ = 0 來滿足方程7,因而我們將有:
由于我們對 δ(x) 進行了參數(shù)化,當(dāng) |x| ≤ xt, 我們的隨機激活函數(shù)將精確按照線性函數(shù) u(x) 來運行,到達一個熟悉的領(lǐng)域。因為 △ 將為 0。讓我們暫時集中注意力考慮 |x| > xt 以及 h 飽和的情況。這種情況下,h(x) 的導(dǎo)數(shù)正好是 0,然而,如果我們限制條件在樣本 ζ,我們就有了:
圖3:在線性激活函數(shù)上增加高斯噪音的簡單描繪,這將平均值帶回硬飽和非線性 h(x)。它的線性化是 u(x),而且噪音激活是 Θ。h(x) - u(x) 的差異是 △,這是一個矢量,表明了線性化函數(shù)和實際函數(shù)之間的差異,在實際函數(shù)上噪音加入到 h(x)。注意,在函數(shù)的非飽和部分當(dāng) u(x) 和 h(u) 完全匹配時, △ 將為 0。
在非飽和狀態(tài),當(dāng) Θ'(x, ζ) = h'(x),優(yōu)化可以利用 h 靠近原點的線性結(jié)構(gòu)來調(diào)整其輸出。在飽和狀態(tài),ζ 的隨機性推動了探索,梯度仍然流回到 x,因為音量的大小取決于 x。為了重新迭代,我們在每一個點獲取梯度信息即便 h 存在飽和度,而且在飽和狀態(tài)梯度信息的方差取決于 δ'(x)ζ。
4.2. 將激活推向線性狀態(tài)
帶有無偏噪音方程的一個不滿意之處就是,取決于 ζ 的值,Θ的梯度偶爾會指向錯誤的方向。這會引起一個倒回的信息,會將 x 推向的在 ζ 上平均惡化目標(biāo)方程的方向。我們憑直接更希望當(dāng) h(x) 的梯度可以安全使用的時候,這些信息可以將飽和單元向一個非飽和狀態(tài)“推回”。
一個簡單的辦法是確保噪音 ζ 永遠是正的,并調(diào)整其信號來手動匹配 x 的信號。具體來說,我們可以設(shè)定:
當(dāng) ζ 和 δ 和原先一樣, sgn 是信號函數(shù),這樣當(dāng) x 大于或等于 0 的時候, sgn(x) 為1,否則 sgn(x) 為-1。我們還在噪音的重參數(shù)化中使用了 ζ 的絕對值,這樣噪音從一個半正態(tài)分布中取樣。我們忽略了 ζ 的信號,這樣噪音推動激活的方向是由 d(x) 決定的,并會指向 h(x)。將噪音的信號與 x 的信號相匹配,可以確保我們避免在噪音和反向傳播的梯度信息之間信號取消。要將激活函數(shù)推向 h(x),當(dāng)引入 α 偏見時,sgn(1-α) 是必須的。
在實踐中,我們使用了超參數(shù) α 來影響增加的術(shù)語,這樣 1 附近的 α 近似滿足以上條件,可以從圖4中看到。我們可以以特定方式重寫噪音術(shù)語 s,讓噪音可以加入線性化函數(shù)或者加入 h(x)?!鳌(x)和 h(x) 之間的關(guān)系在圖4.1中展現(xiàn)出來,可以用方程11來表達。
我們試驗了不同類型的噪音。實證中,就表現(xiàn)來說我們發(fā)現(xiàn),半正態(tài)和正態(tài)噪音更好。在方程11中,我們提供了激活函數(shù)的方程,其中如果噪音從半正態(tài)分布中取樣,則 ε = |ζ|;如果噪音從正態(tài)分布中取樣,則 ε = ζ。
通過使用方程11,我們實現(xiàn)了噪音激活,這在我們的實驗中應(yīng)用了。
我們可以在方程12中看到,梯度可以遵循三種路徑流入神經(jīng)網(wǎng)絡(luò),線性路徑 (u(x))、非線性路徑(h(x))和隨機路徑(δ(x))。梯度流入這些不同路徑,穿過不同層,讓激活函數(shù)的優(yōu)化更加簡單。
在測試的時候,我們使用方程12的預(yù)期值來獲得決定論的單元。
當(dāng) ε = ζ, Eζ[ε]為 0。否則,如果 ε = |ζ|,則Eζ[ε] 為 根號π
算法1:針對硬飽和函數(shù)使用半正態(tài)噪音的噪音激活函數(shù)。
為了說明 α 和硬 tanh 的噪音激活函數(shù)的影響,我們在圖4中提供了隨機激活函數(shù)的圖表。
圖4:我們的噪音激活函數(shù)使用不同 α 值時的隨機行為,α 值從正態(tài)分布中取樣,近似硬 tanh 非線性函數(shù)(深綠色)。
5、在函數(shù)輸入中加入噪音
人們已經(jīng)針對 ReLU 激活函數(shù),研究了如何將固定標(biāo)準(zhǔn)方差的噪音增加到激活函數(shù)的輸入中(Nair & Hinton,2010;Bengio等,2013)。
在方程14中,我們提供了一種噪音激活函數(shù)的參數(shù)化。Δ 可以像在方程9中一樣習(xí)得,或者作為超參數(shù)固定。
方程5中的條件只有當(dāng) δ 為習(xí)得的時候才滿足。通過實驗我們發(fā)現(xiàn),較小的 δ 值效果更好。當(dāng) δ 的值小且固定,隨著 x 越來越大、距離閾值 xt 越來越遠,噪音將激活推回線性狀態(tài)的可能性也就越小。我們還調(diào)查了當(dāng)激活飽和時注入輸入噪音的影響:
6、實驗結(jié)果
在我們的實驗中,我們只在訓(xùn)練時使用了噪音:在測試時,我們將噪音變量替換為其期望值。我們在現(xiàn)有的實驗設(shè)置中直接代替激活程序,沒有改變之前設(shè)定的超參數(shù)。這樣,我們可以通過在具有噪音激活函數(shù)的模型上仔細進行超參數(shù)調(diào)試來獲得更好的結(jié)構(gòu)。在我們所有的實驗中,我們用范圍 [-1, 1] 中的隨機值初始化 p。
我們使用具有正態(tài) (NAN)、半正態(tài)噪音(NAH)、函數(shù)輸入中的正態(tài)噪音(NANI)、函數(shù)輸入中帶有習(xí)得的 δ 的正態(tài)噪音(NANIL)以及當(dāng)單元飽和時注入函數(shù)輸入的正態(tài)噪音(NANIS)。不同類型的噪音激活函數(shù)可以在這里獲得:https://github.com/caglar/noisy_units.
6.1. 探索性分析
作為合理性驗證,我們進行了一個小型控制實驗,為了觀察噪音單元的行為。
我們訓(xùn)練了3層的MLP,使用一個混合物中生成的數(shù)據(jù)庫,混合物由3個平均值不同的高斯分布和標(biāo)準(zhǔn)方差合成。MLP的每一層包含8個隱藏單元。具有 tanh 和噪音-tanh 激活函數(shù)的模型都能幾乎完美地完成這項任務(wù)。通過使用習(xí)得的 p 值,我們在圖5和圖6中展示了每一層、每一個單元的激活函數(shù)的散點圖,以及每一層、每一單元關(guān)于其輸出的導(dǎo)數(shù)函數(shù)。
圖5:每一層、每一單元針對單元輸入的導(dǎo)數(shù)。
圖6:每一層學(xué)會的激活函數(shù)。
6.2. 學(xué)會執(zhí)行
關(guān)于 Zaremba & Sutskever(2014)提出的短程序的輸出預(yù)測問題,對于現(xiàn)代的深度學(xué)習(xí)架構(gòu)來說是一個挑戰(zhàn)。作者們必須使用課程學(xué)習(xí)(Bengio等,2009)讓模型先獲取較為簡單的例子中的知識,然后隨著訓(xùn)練深入,增加例子的難度。
我們將參照模型中所有的 sigmoid 和 tanh 非線性函數(shù)替換為噪音函數(shù)。為了避免數(shù)字穩(wěn)定性問題,我們將默認的梯度范圍從10變?yōu)?。當(dāng)評估一個網(wǎng)絡(luò)時,執(zhí)行程序的長度(行數(shù))設(shè)置為6、嵌套設(shè)置為3,這是這些任務(wù)發(fā)布代碼的默認設(shè)置。參照模型和噪音激活模型都是用“綜合”課程訓(xùn)練的,這是最復(fù)雜、也是表現(xiàn)最好的一個課程。
我們的結(jié)果顯示,應(yīng)用提出的激活函數(shù)比參照模型的運行效果更好。而且,結(jié)果顯示了我們的方法很容易與非平凡訓(xùn)練課程相結(jié)合。我們的結(jié)果展示在表格1和圖8中。
表格1:學(xué)會執(zhí)行任務(wù)中噪音網(wǎng)絡(luò)的表現(xiàn)。僅僅是改變激活函數(shù)到噪音中,就能帶來大約2.5%的精度提升。
圖7:Penntreebank數(shù)據(jù)庫上,在單詞層面LSTM語言模型驗證困惑度的學(xué)習(xí)曲線。
圖8:參照模型(Zaremba & Sutskever,2014)的訓(xùn)練曲線,及其“學(xué)習(xí)執(zhí)行”任務(wù)中的噪音變量問題。噪音網(wǎng)絡(luò)可以更快地匯聚,并達到更高的精度,顯示了噪音激活可以幫助更好地優(yōu)化此類難以優(yōu)化的任務(wù)。
表格2:Penntreebank數(shù)據(jù)庫詞匯等級的比較級困惑度。在 Zaremba 等(2014)的代碼中,我們只將 sigmoid 和 tanh 替換成了相應(yīng)的噪音變量,并且觀察到困惑度有顯著的提升,這讓這種方法成為這項任務(wù)最好的方法。
6.3. Penntreebank實驗
我們訓(xùn)練了一個單詞層面的基于Penntreebank的雙層LSTM語言模型。我們使用與Zaremba等(2014)提出的同樣的模型。我們只是將所有的 sigmoid 和 tanh 單元替換為噪音硬 sigmoid 和硬 tanh 單元。參照模型是一個從 Zeremba等(2014)而來的經(jīng)過良好調(diào)試的很強的基線。對于噪音實驗,我們使用了完全一樣的設(shè)置,但是將梯度閾值從10降低到5。我們在表格2提供了不同模型的結(jié)果。就驗證與測試表現(xiàn)來說,我們沒有觀察到從正態(tài)和半正態(tài)分布中增加噪音有很大的區(qū)別,但是噪音帶來了顯著的提升,這讓我們的結(jié)果成為針對該任務(wù)我們所知道的最好的方法。
6.4. 神經(jīng)機器翻譯實驗
我們基于 Europarl 數(shù)據(jù)庫,使用神經(jīng)注意模型(Bahdanau等,2014)訓(xùn)練了一個神經(jīng)機器翻譯(NMT)模型。我們將所有的 sigmoid 和 tanh 單元替換為噪音函數(shù)。我們通過乘以 0.01,縮小了初始為垂直比例的權(quán)重矩陣。評估是使用 nestest2011 測試庫完成的。所有模型都用提前停止方法來訓(xùn)練。我們還比較了具有硬 tanh 和硬 sigmoid 單元的模型,而我們使用噪音激活的模型比這兩個都更好,結(jié)果展示在表格4中。就英語到法語的機器翻譯來說,我們再一次看到了實質(zhì)性的進步(不只2個BLUE點)。
6.5. 圖像標(biāo)題生成實驗
我們在一個用 Flickr8k 數(shù)據(jù)庫訓(xùn)練的網(wǎng)絡(luò)來評估我們的噪音激活函數(shù)。我們使用了 Xu 等(2015b)提出的軟神經(jīng)注意模型,作為我們的參照模型。我們通過乘以 0.01,縮小了初始為垂直比例的權(quán)重矩陣。正如在表格3中所示,我們可以獲得比參照模型更好的結(jié)果,而且就 Metero 分數(shù)來說,我們的模型還優(yōu)于 Xu 等(2015b)提供的最好的模型。
表格3:圖片標(biāo)題生成實驗。
Xu 等(2015b)的模型是在情景和 LSTM 層上使用比率為0.5的信號丟失。正如表格3中所示,有和沒有信號丟失的模型我們都已經(jīng)嘗試過了,在帶有噪音激活函數(shù)的信號丟失時我們觀察到了提升。但是主要的提升貌似來自于噪音激活函數(shù)的引入,因為沒有信號丟失的模型已經(jīng)優(yōu)于參照模型。
6.6. 延續(xù)方法實驗
我們進行了實驗,來驗證針對神經(jīng)網(wǎng)絡(luò)使用退火噪音,獲得延續(xù)方法的效果。
我們設(shè)計了一個新的任務(wù),其中有一個隨機的整數(shù)數(shù)列,目標(biāo)是預(yù)測數(shù)列中獨特的數(shù)字。我們在輸入序列中使用了一個 LSTM 網(wǎng)絡(luò),在 LSTM 的隱藏狀態(tài)中進行了一個時間平均池化,來獲得固定大小的矢量。我們將池化的 LSTM 表征輸入一個簡單的(具有一個隱藏層的)ReLU MLP,來預(yù)測輸入數(shù)列中獨特的數(shù)字元素。在實驗里我們將輸入數(shù)列的長度固定為26,輸入值范圍為 0 至 10。為了讓噪音降火,我們開始用噪音標(biāo)準(zhǔn)方差的規(guī)模超參數(shù)進行訓(xùn)練,標(biāo)準(zhǔn)方差中 c = 30,將其退火值降至 0.5,使用時間表,其中,每200個微批次更新,t 的值就增加。當(dāng)噪音退火與課程策略(開始先是短的序列,然后逐漸增加訓(xùn)練序列的長度)相結(jié)合,就獲得了最好的模型。
表格5:在隨機整數(shù)數(shù)列中尋找獨特數(shù)字任務(wù)的實驗結(jié)果。這體現(xiàn)了噪音等級退火的效果,讓訓(xùn)練過程變?yōu)橐粋€延續(xù)方法。噪音退火帶來了比課程更好的結(jié)果。
在第二次測試中,我們使用了同樣的退火步驟,用來在聯(lián)想回憶任務(wù)中訓(xùn)練一個神經(jīng)圖靈機器(NTM)。我們用最少2個物品、做多16個物品來訓(xùn)練我們的模型。我們展示了帶有控制器中噪音激活的 NTM 的結(jié)果,帶有退火的噪音,并與一個常規(guī) NTM 就驗證錯誤進行比較。正如圖9中可見,使用噪音激活的網(wǎng)絡(luò)匯聚更快,很好地勝任了任務(wù),而原始的網(wǎng)絡(luò)沒能實現(xiàn)低錯誤率。
圖9:在聯(lián)想回憶任務(wù)中NTM的驗證學(xué)習(xí)曲線。帶有噪音控制器的NTM可以匯聚更快,解決任務(wù)。
7、結(jié)論
神經(jīng)網(wǎng)絡(luò)中的非線性函數(shù)是福也是禍。它是福,因為它們讓我們可以表征更加復(fù)雜的函數(shù);它也是禍,因為那讓優(yōu)化過程更加困難。舉個例子,我們在實驗中發(fā)現(xiàn),使用硬版本(因此更加非線性)的 sigmoid 和 tanh 非線性函數(shù)經(jīng)常能夠提升結(jié)果。過去人們提出過不同的策略,幫助解決訓(xùn)練一些深度網(wǎng)絡(luò)時出現(xiàn)的優(yōu)化問題,包括課程學(xué)習(xí),這是延續(xù)方法的一種近似形式。早期研究還包括在訓(xùn)練中逐漸變得越來越硬的非線性函數(shù)的軟化版本。受到這項過往研究的啟發(fā),我們引入了噪音激活的概念,作為一種在非線性函數(shù)中注入噪音的總體框架,大噪音讓 SGD 可以更具有探索性。我們提出在激活函數(shù)注入噪音的時間點,或者在函數(shù)的輸入,或者,如果不注入噪音單元便會飽和的話,就注入在輸出,而且即使在這種情況下,也允許梯度流動。我們證明了我們的噪音激活函數(shù)更容易優(yōu)化。而且,它實現(xiàn)了更少的測試錯誤率,由于注入激活函數(shù)的噪音同時也將模型常規(guī)化了。即便是固定噪音等級,我們也發(fā)現(xiàn)我們提出的噪音激活函數(shù)在不同的任務(wù)和數(shù)據(jù)庫中優(yōu)于使用 sigmoid 和 tahn 的函數(shù),帶來頂尖的或者非常有競爭力的結(jié)果,以及一個簡單的修正,例如在PennTreebank。此外,我們發(fā)現(xiàn)通過噪音退火從而獲取延續(xù)方法,可以進一步提升運行表現(xiàn)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。