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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

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

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

1、為什么選擇序列模型

2、數學符號

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

3、循環網絡模型


值得一提的是,共享特征還有助于減少神經網絡中的參數數量,一定程度上減小了模型的計算復雜度。

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

4、正向傳播


簡化RNN標記

5、反向傳播

6、循環神經網絡的其他結構

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

  • many-to-many :Name entity recognition、Machine translation
  • many-to-one : Sentiment Classification
  • one-to-one : 之前學習的網絡
  • one-to-many : Music generation

7、構建語言模型

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

輸入a<0>和x<1>都是零向量,用softmax輸出預測值y^ <1>代表第一個詞可能是詞匯表中每個詞的概率p(a)、p(an)、p(be)…p(< unk>)、p(< EOS>),接下來x<2>等于真實值y<1>:cats作為輸入,得到預測值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模型訓練,最終得到的模型可以根據給出語句的前幾個單詞預測其余部分,將語句補充完整。例如給出“Cats average 15”,RNN模型可能預測完整的語句是“Cats average 15 hours of sleep a day.”。

7、對新序列進行采樣

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

8、RNN中的梯度消失

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

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

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

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

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

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

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

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

相關公式如下:

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

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

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

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

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

GRU特點:模型簡單,計算速度快,易于構建大規模神經網絡,出現在LSTM之后,現在逐漸在被人們采用。

10、長短期記憶(LSTM)

Long Short Term Memory甚至比GRU更加高效,對應的RNN隱層結構如圖所示:


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

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

11、雙向循環網絡(BRNN)

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

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

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

12、深度循環網絡(DRNN)

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

三層深度循環網絡的結構示意圖如下,其中 []:表示層數,<>:表示時間序

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

我們知道DNN層數可達100多,而Deep RNNs一般沒有那么多層,3層RNNs已經較復雜了。

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。