0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

獨立循環(huán)神經(jīng)(IndRNN)網(wǎng)絡介紹

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-03-16 16:05 ? 次閱讀

編者按:近日,中國電子科學技術(shù)大學和澳大利亞伍倫貢大學的研究者合作發(fā)表論文,介紹了他們創(chuàng)造的獨立循環(huán)神經(jīng)網(wǎng)絡(IndRNN),這種新型RNN能有效解決網(wǎng)絡收斂時的梯度爆炸和消失問題,并能夠處理更長的序列。以下是論智對原文的大致編譯,如有不足之處還請指正。

循環(huán)神經(jīng)網(wǎng)絡(RNN)已經(jīng)被廣泛用于序列數(shù)據(jù)的處理。然而,由于常見的梯度消失和爆炸問題以及很難學習長期模式,RNN通常難以訓練。為了解決這些問題,研究人員提出了長短期記憶(LSTM)和門控循環(huán)單元(GRU),但使用雙曲正切和Sigmoid函數(shù)又會使梯度隨圖層衰減。因此,構(gòu)建高效可訓練的深度網(wǎng)絡是具有挑戰(zhàn)性的任務。另外,RNN圖層中的所有神經(jīng)元都糾纏在一起,它們的行為很難解釋。為了解決這些問題,本文提出了一種新型RNN模式,成為獨立循環(huán)神經(jīng)網(wǎng)絡(IndRNN),其中每層中的神經(jīng)元都相互獨立,并且它們跨層連接。最終實驗結(jié)果表明,IndRNN管理起來很容易,能防止梯度爆炸和消失,同時還能讓網(wǎng)絡長期學習。

獨立循環(huán)神經(jīng)(IndRNN)網(wǎng)絡介紹

在這片論文中,我們提出了獨立循環(huán)神經(jīng)網(wǎng)絡(IndRNN),用公式可以表示成:

其中循環(huán)權(quán)重u是一個向量,⊙表示阿達馬積(Hadamard product)。同一圖層中的每個神經(jīng)元都與其他神經(jīng)元不相連,通過疊加兩層或更多層的IndRNN,可以將神經(jīng)元連接。對于第n個神經(jīng)元,隱藏層hn,t可以通過以下公式得到:

其中wn和un分別表示第n行的輸入權(quán)重和當前權(quán)重。每個神經(jīng)元只接收當前狀態(tài)隱藏層和輸入其中的信息。也就是說IndRNN中的每個神經(jīng)元都有獨立的時空特征。傳統(tǒng)上,隨著參數(shù)被共享,RNN被視為多層感知器。與傳統(tǒng)的RNN不同,這次提出的IndRNN將隨時間獨立地聚合空間模式。

IndRNN隨時間進行反向傳播

對于神經(jīng)網(wǎng)絡每一層隨時間進行的梯度反向傳播,IndRNN中的梯度可以對每個神經(jīng)元單獨計算,因為一層網(wǎng)絡之間沒有互相連接的部分。具體計算過程可參見原論文。

多層IndRNN

如上所說,IndRNN的同一個圖層中的神經(jīng)元是彼此獨立的,通道間的信息會隨時間在多層IndRNN之間傳播探索。為了說明這一點,我們將一個雙層的IndRNN和傳統(tǒng)單層RNN進行比較。簡單起見,IndRNN和傳統(tǒng)RNN都忽略了偏差。假設一個有N個神經(jīng)元的雙層神經(jīng)網(wǎng)絡,其中第二層的循環(huán)權(quán)重為零,那么就表示第二層只是一個完全連接層。

考慮到參數(shù)的數(shù)量,對于一個有N個神經(jīng)元的RNN網(wǎng)絡來說,輸入的維數(shù)為M,則傳統(tǒng)RNN的參數(shù)數(shù)量為M×N+N×N。而只有一層的IndRNN的參數(shù)數(shù)量為M×N+N。對于一個兩層的IndRNN,其中每層都有N個神經(jīng)元的網(wǎng)絡來說,參數(shù)的數(shù)量為M×N+N×N+2×N??傊?,雖然IndRNN的神經(jīng)元是彼此獨立的,但多層IndRNN中跨層的信息可以很好地得到解釋。

基本的IndRNN結(jié)構(gòu)如圖所示:

其中“weight”和“Recurrent+ReLU”表示每一步處理輸入的循環(huán)過程,ReLU是激活函數(shù)。通過堆疊這種基礎架構(gòu),可以建立一個深度IndRNN網(wǎng)絡。由于權(quán)重層用來處理輸入,那么它很自然地就擴展到其他多個圖層中加深處理過程。同樣,用來處理輸入的圖層也可以像CNN中的殘差結(jié)構(gòu)一樣。由于IndRNN的簡單結(jié)構(gòu),我們可以很容易地將其擴展到不同的網(wǎng)絡結(jié)構(gòu)中。例如,除了簡單的堆疊IndRNN或者堆疊用于處理輸入的圖層,我們還可以以殘差網(wǎng)絡的方式進行堆疊。下圖展示了殘差IndRNN的示例:

在每個步驟,梯度可以從恒等映射(identity mapping)直接傳播到其它層。由于IndRNN能隨時間的推移解決梯度爆炸和消失的問題,梯度可以在不同步驟之間高效傳播。因此,網(wǎng)絡可以比傳統(tǒng)的RNN更深更長。和其他網(wǎng)絡一樣,更深更長的IndRNN網(wǎng)絡可以進行端對端訓練。

實驗過程

接下來,就要對IndRNN進行測試。首先是常用的adding problem,這是評估RNN模型性能的常用方法。兩個長度為T的序列被輸入到模型中,第一個序列在(0,1)范圍內(nèi)均勻采樣,而第二個序列兩個入口處為1,其余都為0。序列有三種長度,T=100、500和1000,分別用于實驗,測試模型是否有長期記憶的能力。

參與實驗對比的有傳統(tǒng)采用tanh的RNN、LSTM、IRNN(采用relu的RNN)。RNN、LSTM和IRNN都只有一層,而IndRNN有兩層。每個模型包含128個隱藏單元,RNN、LSTM和兩層IndRNN的參數(shù)數(shù)量分別為16k、67k和17k。最終測試結(jié)果如下:

首先,對短序列來說(T=100),大多數(shù)模型表現(xiàn)得很好(除了采用tanh的RNN),它們收斂到一個非常小的錯誤(比標準還要小)。

當序列長度增加時,IRNN和LSTM模型出現(xiàn)了收斂困難。當長度達到1000時,IRNN和LSTM無法減少錯誤。然而,IndRNN仍然可以將錯誤迅速收斂。這表明IndRNN的長期記憶優(yōu)于傳統(tǒng)RNN和LSTM。

從表格中我們也能看出,傳統(tǒng)RNN和LSTM只能維持在中等長度記憶(500到1000)。為了研究IndRNN在超長序列上的記憶,我們又做了一個5000的實驗,如下圖所示:

可以看出,IndRNN仍然表現(xiàn)得很好。注意有噪音的出現(xiàn),是因為IndRNN的初始學習速率(2×10-4)較大,一旦學習速率降低,模型性能就更加穩(wěn)定。這說明IndRNN能有效地解決梯度爆炸和消失的問題。

序列MNIST分類

序列MNIST的分類是評估RNN模型的又一常用方法。網(wǎng)絡按順序讀取MNIST數(shù)字的像素,之后執(zhí)行分類。為了讓任務更加困難,MNIST的像素被隨機交換。由于采用tanh的RNN不會以高精度收斂,只有采用relu的IndRNN能被評估。這里我們使用了6層IndRNN,每層有128個神經(jīng)元。為了加速訓練,每層之后插入了批標準化(BN)。結(jié)果如下表所示,與現(xiàn)有方法相比,IndRNN的性能更好。

其他實驗

除了上述兩個實驗,研究人員還對IndRNN進行了語言建模測試和基于骨架的動作識別。語言建模是在詞匯數(shù)據(jù)集Treebank上進行的。結(jié)果如下:

與現(xiàn)有方法相比,IndRNN比傳統(tǒng)的RNN和LSTM表現(xiàn)的更好。

動作識別測試是在NTU RGB+D數(shù)據(jù)集上進行的,該數(shù)據(jù)及是目前動作識別最大的數(shù)據(jù)集,它包含56880個序列,其中包括60中動作類別。最終的評估及過如下:

IndRNN的性能比RNN和LSTM的性能明顯要好。

結(jié)語

這篇論文中,研究人員介紹了獨立循環(huán)神經(jīng)網(wǎng)絡(IndRNN),其中每個圖層中的神經(jīng)元都是相互獨立的,并且它能很好地解決梯度爆炸和消失的問題,性能也比傳統(tǒng)的RNN和LSTM要好。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:獨立循環(huán)神經(jīng)網(wǎng)絡(IndRNN):打造更長更深的RNN

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    什么是RNN (循環(huán)神經(jīng)網(wǎng)絡)?

    循環(huán)神經(jīng)網(wǎng)絡 (RNN) 是一種深度學習結(jié)構(gòu),它使用過去的信息來提高網(wǎng)絡處理當前和將來輸入的性能。RNN 的獨特之處在于該網(wǎng)絡包含隱藏狀態(tài)和循環(huán)
    發(fā)表于 02-29 14:56 ?3802次閱讀
    什么是RNN (<b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>)?

    神經(jīng)網(wǎng)絡基本介紹

    神經(jīng)網(wǎng)絡基本介紹
    發(fā)表于 01-04 13:41

    循環(huán)神經(jīng)網(wǎng)絡(RNN)的詳細介紹

    循環(huán)神經(jīng)網(wǎng)絡可以用于文本生成、機器翻譯還有看圖描述等,在這些場景中很多都出現(xiàn)了RNN的身影。
    的頭像 發(fā)表于 05-11 14:58 ?1.4w次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>(RNN)的詳細<b class='flag-5'>介紹</b>

    循環(huán)神經(jīng)網(wǎng)絡是如何工作的

    關(guān)于時間展開的循環(huán)神經(jīng)網(wǎng)絡,在序列結(jié)束時具有單個輸出。
    發(fā)表于 07-05 14:44 ?1137次閱讀
    <b class='flag-5'>循環(huán)</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>是如何工作的

    卷積神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡的區(qū)別

    在深度學習領域,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks, RNN)是兩種極其重要
    的頭像 發(fā)表于 07-03 16:12 ?2210次閱讀

    循環(huán)神經(jīng)網(wǎng)絡和遞歸神經(jīng)網(wǎng)絡的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)和遞歸神經(jīng)網(wǎng)絡(Recursive Neural Network,簡稱RvNN)是深度學習中兩種重要的神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-04 14:19 ?706次閱讀

    循環(huán)神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)是深度學習領域中兩種非常重要的神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-04 14:24 ?1016次閱讀

    循環(huán)神經(jīng)網(wǎng)絡的基本原理是什么

    結(jié)構(gòu)具有循環(huán),能夠?qū)⑶耙粋€時間步的信息傳遞到下一個時間步,從而實現(xiàn)對序列數(shù)據(jù)的建模。本文將介紹循環(huán)神經(jīng)網(wǎng)絡的基本原理。 RNN的基本結(jié)構(gòu) 1.1
    的頭像 發(fā)表于 07-04 14:26 ?537次閱讀

    循環(huán)神經(jīng)網(wǎng)絡的基本概念

    循環(huán)神經(jīng)網(wǎng)絡的基本概念、循環(huán)機制、長短時記憶網(wǎng)絡(LSTM)、門控循環(huán)單元(GRU)等方面進行介紹
    的頭像 發(fā)表于 07-04 14:31 ?535次閱讀

    循環(huán)神經(jīng)網(wǎng)絡有哪些基本模型

    循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,簡稱RNN)是一種具有循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡,它能夠處理序列數(shù)據(jù),并且能夠捕捉序列數(shù)據(jù)中的時序信息。RNN的基本模型有很多
    的頭像 發(fā)表于 07-04 14:43 ?370次閱讀

    循環(huán)神經(jīng)網(wǎng)絡算法有哪幾種

    神經(jīng)網(wǎng)絡算法的介紹: 基本循環(huán)神經(jīng)網(wǎng)絡(Basic RNN) 基本循環(huán)神經(jīng)網(wǎng)絡是最簡單的
    的頭像 發(fā)表于 07-04 14:46 ?413次閱讀

    循環(huán)神經(jīng)網(wǎng)絡算法原理及特點

    )相比,RNN在處理序列數(shù)據(jù)時具有明顯的優(yōu)勢。本文將介紹循環(huán)神經(jīng)網(wǎng)絡的原理、特點及應用。 1. 循環(huán)神經(jīng)網(wǎng)絡的原理 1.1 基本概念
    的頭像 發(fā)表于 07-04 14:49 ?462次閱讀

    遞歸神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡

    遞歸神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,簡稱RNN)實際上是同一個概念,只是不同的翻譯方式
    的頭像 發(fā)表于 07-04 14:54 ?596次閱讀

    遞歸神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡一樣嗎

    時具有各自的優(yōu)勢和特點。本文將介紹遞歸神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡的概念、結(jié)構(gòu)、工作原理、優(yōu)缺點以及應用場景。 遞歸神經(jīng)網(wǎng)絡(Recursive
    的頭像 發(fā)表于 07-05 09:28 ?626次閱讀

    rnn是遞歸神經(jīng)網(wǎng)絡還是循環(huán)神經(jīng)網(wǎng)絡

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡,而非遞歸神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡是一種具有時間序列特性的
    的頭像 發(fā)表于 07-05 09:52 ?463次閱讀