日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

RNN循环神经网络(吴恩达《序列模型》笔记一)

發(fā)布時間:2024/7/5 循环神经网络 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RNN循环神经网络(吴恩达《序列模型》笔记一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、為什么選擇序列模型

2、數(shù)學(xué)符號

用1來代表人名,0來代表非人名,句子x便可以用y=[1 1 0 1 1 0 0 0 0]來表示

3、循環(huán)網(wǎng)絡(luò)模型


值得一提的是,共享特征還有助于減少神經(jīng)網(wǎng)絡(luò)中的參數(shù)數(shù)量,一定程度上減小了模型的計算復(fù)雜度。

RNN模型包含三類權(quán)重系數(shù),分別是Wax,Waa,Wya。
優(yōu)點:不同元素之間同一位置共享同一權(quán)重系數(shù)。
缺點:它只使用了這個序列中之前的信息來做出預(yù)測。比如作出預(yù)測y<3>的時候沒有用到之后x<4> 、x<5>的信息。

4、正向傳播


簡化RNN標(biāo)記

5、反向傳播

6、循環(huán)神經(jīng)網(wǎng)絡(luò)的其他結(jié)構(gòu)

吳恩達參考的論文《The Unreasonable Effectiveness of Recurrent Neural Networks》

  • many-to-many :Name entity recognition、Machine translation
  • many-to-one : Sentiment Classification
  • one-to-one : 之前學(xué)習(xí)的網(wǎng)絡(luò)
  • one-to-many : Music generation

7、構(gòu)建語言模型

在單詞表中對句子中的每個單詞進行one-hot編碼,句子結(jié)尾用< EOS >進行編碼,如果有不在單詞表中的單詞出現(xiàn),用< UNK >進行編碼。

輸入a<0>和x<1>都是零向量,用softmax輸出預(yù)測值y^ <1>代表第一個詞可能是詞匯表中每個詞的概率p(a)、p(an)、p(be)…p(< unk>)、p(< EOS>),接下來x<2>等于真實值y<1>:cats作為輸入,得到預(yù)測值y^ <2>代表在第一個詞是cats的情況下第二個詞可能是詞匯表中每個詞的概率p(a|cats)、p(an|cats)、p(be|cats)…p(< unk>|cats)、p(< EOS>|cats)。

最后這句話是“cats average 15 hours of sleep a day.< EOS>”的的概率p(y<1>,y<2>,···y<9>)可以用條件概率公式計算得到。

對語料庫的每條語句進行RNN模型訓(xùn)練,最終得到的模型可以根據(jù)給出語句的前幾個單詞預(yù)測其余部分,將語句補充完整。例如給出“Cats average 15”,RNN模型可能預(yù)測完整的語句是“Cats average 15 hours of sleep a day.”。

7、對新序列進行采樣

利用訓(xùn)練好的RNN語言模型,可以進行新的序列采樣,從而隨機產(chǎn)生新的語句。
基于字符的語言模型
優(yōu)點:不會出現(xiàn)不在詞匯表中的單詞
缺點:會得到太多太長的序列

8、RNN中的梯度消失

RNN缺點:不擅長處理長期依賴

語句中可能存在跨度很大的依賴關(guān)系,即某個單詞可能與它距離較遠(yuǎn)的某個單詞具有強依賴關(guān)系。例如下面這兩條語句:

  • The cat, which already ate fish, was full.
  • The cats, which already ate fish, were full.

由于跨度很大,普通的RNN網(wǎng)絡(luò)容易出現(xiàn)梯度消失,捕捉不到它們之間的依賴,造成語法錯誤。
另一方面,RNN也可能出現(xiàn)梯度爆炸的問題,即gradient過大。常用的解決辦法是設(shè)定一個閾值,一旦梯度最大值達到這個閾值,就對整個梯度向量進行尺度縮小。這種做法被稱為梯度修剪(gradient clipping)。

9、門控制循環(huán)單元(GRU)

門控制循環(huán)單元(Gated Recurrent Unit):有效解決梯度消失問題,使RNN能捕獲更長的依賴。
RNN的隱層單元結(jié)構(gòu)如下:

其中a< t >的表達式為:

為解決上述問題,對上述單元進行修改,增加了記憶單元Cmemory cell,提供了記憶功能,GRU單元如下所示:

相關(guān)公式如下:

Γu意為update gate,更新門,是一個從0到1的數(shù)字。當(dāng)Γu=1時,代表更新;當(dāng)Γu=0時,代表記憶,保留之前的模塊輸出。

比如:The cat, which already ate…,was full.
在cat處會產(chǎn)生一個c< t > 將貓是單數(shù)的信息傳播到was處的Γu中,根據(jù)公式第三行,如果此時計算出來的Γu=0,則c< t >=c< t -1>不進行更新,謂詞為was,如果Γu=1,則c< t >=c~< t >謂詞更新為were。

由于Γu 使用了sigma激活函數(shù),這個激活函數(shù)的特點是對于大部分輸入的數(shù)來說,其對應(yīng)的函數(shù)值都接近零,這樣就能很大程度的保留之前的信息,這樣就能很好的解決梯度消失的問題。

這一點跟CNN中的ResNets的作用有點類似。因此,Γu能夠保證RNN模型中跨度很大的依賴關(guān)系不受影響,消除梯度消失問題。

上面介紹的是簡化的GRU模型,完整的GRU添加了另外一個gate,即Γr,這個 Γr 告訴計算出的下一個c< t >的候選值跟c< t-1 >有多大的相關(guān)性。
表達式如下:

GRU特點:模型簡單,計算速度快,易于構(gòu)建大規(guī)模神經(jīng)網(wǎng)絡(luò),出現(xiàn)在LSTM之后,現(xiàn)在逐漸在被人們采用。

10、長短期記憶(LSTM)

Long Short Term Memory甚至比GRU更加高效,對應(yīng)的RNN隱層結(jié)構(gòu)如圖所示:


如果考慮c<t?1>對Γu,Γf,Γo的影響,可加入peephole connection,對LSTM的表達式進行修改:

GRU可以看成是簡化的LSTM,兩種方法都具有各自的優(yōu)勢。

11、雙向循環(huán)網(wǎng)絡(luò)(BRNN)

Bidirectional RNN:這個模型可以讓你在序列的某點處,不僅可以獲取之前的信息,還可以獲取未來的信息。每個單元可以采用GRU或LSTM結(jié)構(gòu)。BRNN的結(jié)構(gòu)圖如下:

這樣網(wǎng)絡(luò)就構(gòu)成了無環(huán)圖Acyclic graph:給定一個輸入序列x^<1> 到 x^<3>, 這個序列首先計算前向的a^<1> 、a^<2>、 a^<3>, 而反向序列由a^<3> 開始計算到a^<1>,把這些所有激活值計算完后就可以計算預(yù)測結(jié)果了,比如下面的計算公式:

BRNN缺點:需要完整的數(shù)據(jù)的序列,才能預(yù)測任意位置。
比如:語音識別中,需要人完整的說完話,然后獲取整段語音,才能處理這段語音進行識別。

12、深度循環(huán)網(wǎng)絡(luò)(DRNN)

Deep RNN:當(dāng)需要解決很復(fù)雜的問題時,可以將上面的一些RNN進行整合形成DRNN。

三層深度循環(huán)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖如下,其中 []:表示層數(shù),<>:表示時間序

某個單元激活值的計算方式如下:

我們知道DNN層數(shù)可達100多,而Deep RNNs一般沒有那么多層,3層RNNs已經(jīng)較復(fù)雜了。

另外一種比較常用的Deep RNNs結(jié)構(gòu)是每個輸出層上還有一些垂直單元,如下圖所示:

同樣,每個單元可以是RNN、GRU、LSTM、BRNN。

總結(jié)

以上是生活随笔為你收集整理的RNN循环神经网络(吴恩达《序列模型》笔记一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。