RNN教程之-1 入門

引言

這篇RNN教程翻譯是翻譯自WILDML上的RNN系列教程. 譯者是一位在當?shù)剌^為牛逼的深度學(xué)習(xí)大神, 凡事多做不裝逼, 如果有不當之處歡迎大家指正, 希望此教程能給入門者一些思路和想法.

PART-1 循環(huán)神經(jīng)網(wǎng)絡(luò)教程之RNNs介紹

RNNs也就是Recurrent Neural Network現(xiàn)如今已經(jīng)應(yīng)用很廣了,很多領(lǐng)域在RNN上取得了可喜的成果, 比如語音識別, 自然語言處理等方面. 但是盡管這種技術(shù)在科學(xué)領(lǐng)域得到了廣泛運用, 然而我卻發(fā)現(xiàn)少有資料或者資源教授這方面的內(nèi)容, 并且沒有人告訴我們怎么去實現(xiàn)它. 因此我寫下了本教程, 本教程將分為以下四個部分:

  • 循環(huán)神經(jīng)網(wǎng)絡(luò)教程之RNNs介紹
  • 用Python和Theano實現(xiàn)RNN
  • 理解時間反向傳播算法(BPTT)以及認識梯度消失問題
  • 實現(xiàn)一個GRU或者LSTM(譯者: GRU就是Gated Recurrent Unit)
    在進入本教程之前, 我假設(shè)你已經(jīng)對神經(jīng)網(wǎng)絡(luò)有一些了解.

什么是RNNs?

RNN背后的深刻思想就是充分利用序列的信息, 舉個例子, 我現(xiàn)在要解決一個問題, 就是我每周都有一個計劃, 我周一上午會去一趟健身房, 周二去約一個朋友聊天, 周三參加一個技術(shù)分享會, 周四宅在辦公室研究技術(shù), 周五去上音樂課. 那我每周都是如此的話, 假如我要讓機器來預(yù)測我周三會去干什么, 如果用神經(jīng)網(wǎng)絡(luò)或者之前的CNN等來做, 你會發(fā)現(xiàn)它無法預(yù)測, 因為這是一個基于時間序列的問題. 而RNN就是基于這個發(fā)明的. 話太多容易讓你產(chǎn)生疑惑, 好吧, 從最簡單的情況你可以這樣理解, 好了, 現(xiàn)在有一個大概的印象了嗎? 非常好, 接下來將會稍微復(fù)雜一點. 我放一張圖

圖1 RNNs示意圖
圖1 RNNs示意圖

好的,就是這張圖, 你看到了什么? 對就是RNN的結(jié)構(gòu). 你可以這樣理解, 如果說NN是基于空間的多層之間的鏈接, 那么RNN就是基于時間的多層之間的鏈接. 從圖中你看到了嗎? xt表示的是t時刻, 那么xt-1 表示前一個時刻, 這都是輸入的數(shù)據(jù), 在格式上就是NN中的輸入向量, 但是你發(fā)現(xiàn)了嗎, 前一個時刻從隱藏層輸出的值會作用到t時刻, 這說明什么呢? 對! 我們用RNN實現(xiàn)了對歷史的學(xué)習(xí)! 令人振奮的是, 這種學(xué)習(xí)是NN所不能的, RNN可以從歷史的序列中發(fā)現(xiàn)規(guī)律, 并把這種規(guī)律保存在網(wǎng)絡(luò)中! 你可以把RNN當做是NN在時間上的無限延伸, 設(shè)想一下, 假如時間序列足夠長, 那么我們需要足夠大的RNN來儲存這些歷史的信息.

RNN可以用來做什么?

RNN在自然語言處理中取得了相當大的成功, 其中你可以料想, 假如我們把大量的文本輸入到RNN中, 那么RNN就可以學(xué)習(xí)一個模型, 根據(jù)輸入預(yù)測出下一個字將會是什么, 這有什么用呢? 簡單的應(yīng)用就是語法檢查, 因為根據(jù)它的輸出可以判斷一段話是不是正常人說的話.

機器翻譯

機器翻譯就是把英文翻譯為中文, 或者德文, 人們發(fā)現(xiàn)用RNN來做機器翻譯簡直再合適不過了, 看看下面的示意圖
圖2 機器翻譯

語音識別

RNN的另一個巨大應(yīng)用就是語音識別了, 語音識別就是從語音序列中識別出要表達的信息, 這個你說話的上下文很重要, 因此也是序列信息, 而RNN就擅長做這個, 事實證明效果確實很好.

產(chǎn)生圖像描述

RNN和CNN一起確實可以做幾件酷炫到?jīng)]有朋友的事情, 比如下面這個, 機器識別圖片中的物體并生成文字描述
圖3 圖像描述生成
圖3 圖像描述生成

訓(xùn)練RNNs

那么問題來了, RNN這么屌這么牛逼, 怎么訓(xùn)練它呢? 他的輸入輸出是什么樣的呢? 我相信看到這里你顯然還沒有明白, 不要著急, 要想深入理解RNN你還需要繼續(xù)看下去, 我現(xiàn)在還只是簡單的介紹, 后面還有一堆推理在后面. 剛才說到訓(xùn)練RNN, 實際上訓(xùn)練RNN和普通的神經(jīng)網(wǎng)絡(luò)確實沒有什么區(qū)別, 不過又有一些變種, 在反向傳播算法中, 我們通過正向先計算出所有的激活值a和輸出值z, 來計算誤差, 從而進一步梯度, 最后用梯度下降算法得到最終的權(quán)值和激活值, 在RNN中, 它的梯度已經(jīng)不僅僅是用誤差能計算的了, 也就是說誤差不僅僅是當前時間的誤差, 還與上一個時間有關(guān), 舉個例子, 我們要計算t=4時候的梯度, 那么我們要沿著時間線往回計算3個, 然后累加起來就是第四個時間的梯度, 也也叫作基于時間的反向傳播算法.

RNN的變體

這么多年來, 科學(xué)家們已經(jīng)發(fā)明了無數(shù)種RNN的變體, 下面介紹一些比較有名的變體

  • 雙向RNNs 是一種當前時刻不僅僅取決于以前時刻同時還取決于未來時刻的RNN變體, 這個就比較吊了, 舉個例子, 比如我的一段文本不僅僅和前面有關(guān)系, 還和后面有一定的關(guān)系,那么這個用雙向RNN就很容易了, 這個網(wǎng)絡(luò)的英文名字叫做Bidirectional RNNs
  • LSTM RNNs 是近幾年比較火的一種RNN變體, 實際上也是運用最為廣泛的一種形式, 它克服了我后面會降到的梯度衰減問題, 這個問題在NN中也同樣存在, LSTM本身也有變體, 至少不下十幾種形式, 但是本質(zhì)都差不多

總結(jié)

說了這么多, 其實并沒有說到重點, 包括很多人想知道RNN公式怎么推導(dǎo)的, 輸入數(shù)據(jù)是怎么樣的等等, 這些我下面會接著講述, 歡迎大家指正.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哮伟,隨后出現(xiàn)的幾起案子当窗,更是在濱河造成了極大的恐慌溜嗜,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镀琉,居然都是意外死亡硕糊,警方通過查閱死者的電腦和手機院水,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來简十,“玉大人檬某,你說我怎么就攤上這事∶” “怎么了恢恼?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胰默。 經(jīng)常有香客問我场斑,道長漓踢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任漏隐,我火速辦了婚禮喧半,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘青责。我一直安慰自己挺据,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布爽柒。 她就那樣靜靜地躺著吴菠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪做葵。 梳的紋絲不亂的頭發(fā)上心墅,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音策肝,去河邊找鬼之众。 笑死棺禾,一個胖子當著我的面吹牛膘婶,可吹牛的內(nèi)容都是我干的悬襟。 我是一名探鬼主播古胆,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼夭谤,長吁一口氣:“原來是場噩夢啊……” “哼朗儒!你這毒婦竟也來了醉锄?” 一聲冷哼從身側(cè)響起恳不,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阻肿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赴邻,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年金顿,在試婚紗的時候發(fā)現(xiàn)自己被綠了揍拆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡猪狈,死狀恐怖雇庙,靈堂內(nèi)的尸體忽然破棺而出疆前,到底是詐尸還是另有隱情童太,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響叔收,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜复濒,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一砸泛、第九天 我趴在偏房一處隱蔽的房頂上張望勾栗。 院中可真熱鬧垒迂,春花似錦械姻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绣夺。三九已至吏奸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陶耍,已是汗流浹背奋蔚。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烈钞,地道東北人泊碑。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像毯欣,于是被迫代替她去往敵國和親馒过。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容