新型RNN:将层内神经元相互独立以提高长程记忆 | CVPR 2018论文解读
在碎片化閱讀充斥眼球的時代,越來越少的人會去關(guān)注每篇論文背后的探索和思考。
在這個欄目里,你會快速 get 每篇精選論文的亮點和痛點,時刻緊跟 AI 前沿成果。
點擊本文底部的「閱讀原文」即刻加入社區(qū),查看更多最新論文推薦。
這是 PaperDaily 的第?58?篇文章本期推薦的論文筆記來自 PaperWeekly 社區(qū)用戶 @Zsank。本文使用 Relu 等非飽和激活函數(shù)使網(wǎng)絡(luò)變得更具有魯棒性,可以處理很長的序列(超過5000個時間步),可以構(gòu)建很深的網(wǎng)絡(luò)(實驗中用了21層)。在各種任務(wù)中取得了比LSTM更好的效果。
如果你對本文工作感興趣,點擊底部的閱讀原文即可查看原論文。
關(guān)于作者:麥振生,中山大學(xué)數(shù)據(jù)科學(xué)與計算機學(xué)院碩士生,研究方向為自然語言處理和問答系統(tǒng)。
■?論文 | Independently Recurrent Neural Network (IndRNN): Building A Longer and Deeper RNN
■ 鏈接 | https://www.paperweekly.site/papers/1757
■ 源碼 | https://github.com/batzner/indrnn
論文亮點
傳統(tǒng) RNN 因為在時間上參數(shù)共享,所以會出現(xiàn)梯度消失/爆炸問題。LSTM/GRU 在解決層內(nèi)梯度消失/爆炸問題時,梯度仍然會在層間衰減,所以 LSTM/GRU 難以做成多層網(wǎng)絡(luò)。并且,LSTM/GRU 也存在著無法捕捉更長的時序信息的問題。
此外,傳統(tǒng) RNN 由于層內(nèi)神經(jīng)元相互聯(lián)系,難以對神經(jīng)元的行為進行合理的解釋。
基于上述問題,論文提出了 IndRNN,亮點在于:
1. 將 RNN 層內(nèi)神經(jīng)元解耦,使它們相互獨立,提高神經(jīng)元的可解釋性。
2. 有序列表能夠使用 Relu 等非飽和激活函數(shù),解決層內(nèi)和層間梯度消失/爆炸問題,同時模型也具有魯棒性。
3. 有序列表比 LSTM 能處理更長的序列信息。
模型介紹
論文模型比較簡單。介紹模型前,我們先來理一下 RNN 梯度的有關(guān)知識。
RNN梯度問題
先來看 RNN 隱狀態(tài)的計算:
設(shè) T 時刻的目標函數(shù)為 J,則反向傳播時到 t 時刻的梯度計算:
其中 diag(σ′(hk+1) 是激活函數(shù)的雅可比矩陣??梢钥吹?#xff0c;RNN 的梯度計算依賴于對角矩陣 diag(σ′(hk+1))U^T 的連積,即求該對角陣的 n 次冪。
對角元素只要有一個小于 1,那么 n 次乘積后會趨近于 0;
對角元素只要有一個大于 1,那么 n 次乘積后會趨近無窮大。
RNN 常用的兩種激活函數(shù),tanh 的導(dǎo)數(shù)為 1?tanh2 ,最大值為 1,圖像兩端趨于 0;sigmoid 的導(dǎo)數(shù)為 sigmoid(1?sigmoid) ,最大值為 0.25,圖像兩端趨于 0。
可見兩種激活函數(shù)的導(dǎo)數(shù)取值絕大部分小于 1。因此它們與循環(huán)權(quán)重系數(shù)相乘構(gòu)成的對角矩陣元素絕大部分小于 1(可能會有等于 1 的情況,但不會大于 1),連積操作會導(dǎo)致梯度指數(shù)級下降,即“梯度消失”現(xiàn)象。對應(yīng)第一種情況。?
而在 RNN 中使用 Relu 函數(shù),由于 Relu 在 x>0 時導(dǎo)數(shù)恒為 1,因此若 U 中元素有大于 1 的,則構(gòu)成的對角矩陣會有大于 1 的元素,連積操作會造成梯度爆炸現(xiàn)象。對應(yīng)第二種情況。
解決方案
門控函數(shù)(LSTM/GRU)
引入門控的目的在于將激活函數(shù)導(dǎo)數(shù)的連乘變成加法。以 LSTM 為例:
反向傳播時有兩個隱態(tài):
其中僅 C(t) 參與反向傳播:
加號后的項就是 tanh 的導(dǎo)數(shù),這里起作用的是加號前的項, f(t+1) 控制著梯度衰減的程度。當 f=1 時,即使后面的項很小,梯度仍能很好地傳到上一時刻;f=0 時,即上一時刻的信號對此刻不造成任何影響,因此可以為 0。?
門控函數(shù)雖然有效緩解了梯度消失的問題,但處理很長序列的時候仍然不可避免。盡管如此,LSTM/GRU 在現(xiàn)有 NLP 任務(wù)上已經(jīng)表現(xiàn)很好了。論文提出門控函數(shù)最主要的問題是門的存在使得計算過程無法并行,且增大了計算復(fù)雜度。
并且,在多層 LSTM 中,由于還是采用 tanh 函數(shù),在層與層之間的梯度消失仍然沒有解決(這里主要是的影響),所以現(xiàn)階段的多層 LSTM 多是采用 2~3 層,最多不會超過 4 層。
初始化(IRNN)
Hinton 于 2015 年提出在 RNN 中用 Relu 作為激活函數(shù)。Relu 作為激活函數(shù)用在 RNN 中的弊端在前面已經(jīng)說明了。為了解決這個問題,IRNN 將權(quán)重矩陣初始化為單位矩陣并將偏置置 0(IRNN的 I 因此得名——Identity Matrix)。
此后,基于 IRNN,有人提出了改進,比如將權(quán)重矩陣初始化為正定矩陣,或者增加正則項。但 IRNN 對學(xué)習(xí)率很敏感,在學(xué)習(xí)率大時容易梯度爆炸。?
梯度截斷
在反向傳播中,梯度消失/爆炸前會有一個漸變的過程。梯度截斷的意思就是,在漸變過程中,人為設(shè)定只傳遞幾步,即人為設(shè)定對角矩陣連乘幾次,然后強行拉回正常值水平,再進行梯度下降。該方法對解決梯度問題比較有效,但總有人為的因素,且強行拉回的值不一定準確。有沒有更優(yōu)雅的方法呢??
IndRNN
為了解決梯度消失/爆炸問題,IndRNN 引入了 Relu 作為激活函數(shù),并且將層內(nèi)的神經(jīng)元獨立開來。對 RNN 的式子稍加改進,就變成了 IndRNN:
權(quán)重系數(shù)從矩陣 U 變成了向量 u ?!?表示矩陣元素積。也即在 t 時刻,每個神經(jīng)元只接受此刻的輸入以及 t-1 時刻自身的狀態(tài)作為輸入。
而傳統(tǒng) RNN 在 t 時刻每一個神經(jīng)元都接受 t-1 時刻所有神經(jīng)元的狀態(tài)作為輸入。所以 IndRNN 中的每個神經(jīng)元可以獨立地處理一份空間 pattern,可視化也就變得可行了。 現(xiàn)在來看一下梯度問題:
與傳統(tǒng) RNN 的梯度作對比,可以發(fā)現(xiàn)此時的連積操作不再是矩陣操作,而是將激活函數(shù)的導(dǎo)數(shù)與循環(huán)權(quán)重系數(shù)獨立起來,使用 Relu 作為激活函數(shù)也就順理成章了。至此,梯度問題完美解決(作者在論文里有詳細的推導(dǎo)過程)。
神經(jīng)元之間的相互連接依賴層間交互來完成。也就是說,下一層的神將元會接受上一層所有神經(jīng)元的輸出作為輸入(相當于全連接層)。
作者在論文里證明了兩層的 IndRNN 相當于一層激活函數(shù)為線性函數(shù)、循環(huán)權(quán)重為可對角化矩陣的傳統(tǒng) RNN。
IndRNN 可實現(xiàn)多層堆疊。因為在多層堆疊結(jié)構(gòu)中,層間交互是全連接方式,因此可以進行改進,比如改全連接方式為 CNN 連接,也可引入 BN、殘差連接等。
實驗介紹
實驗部分首先在三個評估 RNN 模型的常用任務(wù)上進行,以驗證 IndRNN 的長程記憶能力和深層網(wǎng)絡(luò)訓(xùn)練的可行性,為驗證性實驗。然后在骨骼動作識別任務(wù)上進行預(yù)測,為實驗性實驗。?
Adding Problem
任務(wù)描述:輸入兩個序列,第一個序列是一串在(0,1)之間均勻采樣的數(shù)字,第二個序列是一串同等長度的、其中只有兩個數(shù)字為 1,其余為 0 的數(shù)字,要求輸出與第二個序列中兩個數(shù)字 1 對應(yīng)的第一個序列中的兩個數(shù)字的和。
實驗的序列長度分別為 100,500 和 1000,采用 MSE 作為目標函數(shù)。
實驗結(jié)果可以看出,IRNN 和 LSTM 都只能處理中等長度的序列(500-1000步),而 IndRNN 可以輕松處理時間跨度 5000 步的序列數(shù)據(jù)。?
Sequential MNIST Classification
任務(wù)描述:輸入一串 MINIST 像素點的數(shù)據(jù),然后進行分類。而 pMINIST 則在 MINIST 任務(wù)上增加了難度:像素點數(shù)據(jù)進行了置換。
Language Modeling
任務(wù)描述:在字符級別 PTB 數(shù)據(jù)集上進行語言模型的評估。在該任務(wù)中,為了驗證 IndRNN 可以構(gòu)造深層網(wǎng)絡(luò),論文里給出了 21 層 IndRNN 的訓(xùn)練以及結(jié)果。
Skeleton Based Action Recognition
任務(wù)描述:使用了 NTU RGB+D 的數(shù)據(jù)庫,是目前為止最大的基于骨骼的動作識別數(shù)據(jù)庫。
個人心得
論文里將層內(nèi)神經(jīng)元獨立開來的想法雖然看似簡單,但要想出來還真的不容易。本文為理解 RNN 提供了一個新的角度,也讓 RNN 單個神經(jīng)元行為的解釋變得可行。此外,Relu 函數(shù)的使用也使得 RNN 堆疊結(jié)構(gòu)成為可能。
從實驗結(jié)果來看,IndRNN 帶來的效果提升都比較顯著。但有一點是,Relu 函數(shù)可能會輸出 0,在序列數(shù)據(jù)里意味著之前的歷史信息全部丟棄。是否換成 Leaky Relu 會更好一點?
本文由 AI 學(xué)術(shù)社區(qū) PaperWeekly 精選推薦,社區(qū)目前已覆蓋自然語言處理、計算機視覺、人工智能、機器學(xué)習(xí)、數(shù)據(jù)挖掘和信息檢索等研究方向,點擊「閱讀原文」即刻加入社區(qū)!
點擊標題查看更多論文解讀:?
CycleGAN:圖片風(fēng)格,想換就換
基于GAN的字體風(fēng)格遷移
基于置信度的知識圖譜表示學(xué)習(xí)框架
基于文檔級問答任務(wù)的新注意力模型
#投 稿 通 道#
投稿須知 | 讓你的文字被很多很多很多人看到
??我是彩蛋?
解鎖新功能:熱門職位推薦!
PaperWeekly小程序升級啦
今日arXiv√猜你喜歡√熱門職位√
找全職找實習(xí)都不是問題
?
?解鎖方式?
1. 識別下方二維碼打開小程序
2. 用PaperWeekly社區(qū)賬號進行登陸
3. 登陸后即可解鎖所有功能
?職位發(fā)布?
請?zhí)砑有≈治⑿?#xff08;pwbot02)進行咨詢
?
長按識別二維碼,使用小程序
*點擊閱讀原文即可注冊
? ? ? ? ???
? ? ? ? ???
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 查看原論文
總結(jié)
以上是生活随笔為你收集整理的新型RNN:将层内神经元相互独立以提高长程记忆 | CVPR 2018论文解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 投稿须知 | 让你的文字被很多很多很多人
- 下一篇: 胶囊网络(Capsule Network