色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

RNN存在的問題及其改進方法,并介紹更多復雜的RNN變體

電子工程師 ? 來源:lq ? 2019-05-05 16:05 ? 次閱讀

主要內容

上節學習了語言模型和循環神經網絡(RNN)。這一節主要討論RNN存在的問題及其改進方法,并介紹更多復雜的RNN變體。

梯度問題梯度消失梯度爆炸梯度剪裁LSTMGRURNN變體雙向RNN多層RNN梯度補充梯度向量化梯度推廣:雅可比矩陣鏈式法則重要等式下節預告閱讀更多

梯度問題

梯度消失

梯度消失

根據鏈式法則:

梯度可以分解成若干中間梯度的乘積。現在的問題是,如果,,這三項數值量級都很小,那么反向傳播越遠,則梯度信號越弱!這就是梯度消失問題!

形式化表述:

由于:

所以:

考慮第i步損失,對之前的某步j的隱層狀態求梯度。表示如下:

考慮矩陣的L2范數:

這里的關鍵是矩陣。Pascanu等人證明,如果的最大特征值小于1,經過多次自乘后,梯度會表現出指數級縮小。由于使用sigmoid非線性激活函數,上界恰好是1,所以會出現梯度消失。

如果梯度隨距離明顯減弱,則無法判斷t步和t+n步數據之間的依賴關系。

舉例:

When she tried to print her tickets, she found that the printer was out of toner. She went to the stationery store to buy more toner. It was very overpriced. After installing the toner into the printer, she finally printed her__

RNN語言模型需要學習第7步"tickets"和末尾"tickets"之間的依賴關系。但如果梯度過小,則模型無法學習這種依賴關系,進而在測試時也無法預測長距離的依賴關系。

再來看一個例子:

The writer of the books __

現在有兩個選項:(is) (are)。正確的應該是is。語義上,"is"和"writer"的距離更近;但順序上,"are"和"books"的距離更近。由于梯度消失的問題,RNN語言模型更善于學習順序距離近的關系,這可能導致學習錯誤,從而導致預測錯誤。

梯度爆炸

同梯度消失相對的是梯度爆炸,這是由于矩陣最大特征值>1。如果梯度過大,則會導致SGD更新過大:這不利于參數調整(損失較大)。

在極端情況下,如果步長過大,還會導致訓練中出現Inf或NaN。

梯度剪裁

梯度爆炸的解決辦法是,如果梯度范數超過某個閾值,則進行縮小,然后再SGD更新。相當于,方向不變,調小步子。

梯度剪裁示意

LSTM

RNN的主要問題是無法學會保存很多時間步前的信息。

1997年Hochreiter和Schmidhuber提出Long Short-Term Memory(LSTM),這也是一種RNN,用以解決梯度消失的問題。

與RNN只有一種狀態相比,LSTM在第t步,共有兩種狀態:hidden state 和 cell state ?

兩者都是n維向量

cell用于存儲長距離信息,亦稱為記憶單元

LSTM可以擦除、寫入和讀取 cell信息

信息的擦/寫/讀由相應的門進行控制

gate也是n維向量

每一步t,gate各個元素可以是open(1), closed(0),或二者之間。如果門打開,則表示信息通過;如果門關閉,則表示信息不能通過

gate是動態的,其值根據當前語境計算

現根據t步輸入,計算hidden state 和 cell state ?

遺忘門:決定保留或忘記之前cell state的哪些內容

輸入門:決定當前cell的哪些內容寫入cell

輸出門:決定當前cell的哪些內容輸出到hidden state

新cell內容:要寫入cell的新內容

cell state:擦掉(忘記)上個cell state的部分內容,寫入(輸入)新cell內容

hidden state:讀取(輸出)cell的某些內容

具體如下圖所示:

LSTM cell

LSTM結構讓RNN更容易保存很多步以前的信息

LSTM并不保證不出現梯度消失/梯度爆炸

LSTM實際上是非常成功的

2013-2015年,LSTM取得了一流的效果

手寫識別、語音識別、機器翻譯、句法分析、看圖說話

LSTM由于效果好,成為主流方法

2019年,在某些領域,其他方法(如Transformer)成為了主流方法

WMT 2016,總結報告出現RNN 44次

WMT 2018,總結報告出現 RNN 9次,Transformer 63次。

GRU

2014年Cho 等人提出GRU(Gated Recurrent Units),在保留LSTM優點的同時,去除其不必要的繁雜。在每一步t,只有輸入和hidden state ,沒有cell state:

update gate:決定更新hidden state的哪些部分內容,相當于LSTM中的遺忘門和輸入門。

reset gate:決定前一hidden state哪些部分用于計算新hidden state的內容

新hidden state內容:reset gate選擇前一hidden state的有用信息,并輸入新的hidden state

hidden state:綜合了前一hidden state和當前hidden state的內容,并在兩者之間尋找平衡點

和LSTM一樣,GRU也更容易保存長期信息。

除此之外,研究人員提出了很多門控RNN,但LSTM和GRU使用最為廣泛。

LSTM和GRU的最大區別是,后者計算速度更快,參數更少。但并沒有嚴格證據表明孰優孰劣。所以在實踐中,可以先使用LSTM,然后再試試GRU。

RNN變體

梯度爆炸/消失不僅僅是RNN存在的問題。由于鏈式法則和非線性激活函數,所有神經網絡(包括前向和卷積神經網絡),尤其是深度神經網絡,都會出現梯度消失/爆炸問題。這導致低層網絡訓練非常緩慢。那么解決辦法就是在神經網絡之間添加直接連接,使梯度傳播更順暢。

例如:

殘差連接,亦稱ResNet。它直接將輸入信息原封不動地加在其他隱層上。

殘差網絡構件

稠密連接,亦稱DenseNet,把所有層都連接起來。效果更好。

稠密連接:每一層以之前所有層feature-maps為輸入

高速連接,亦稱HighwayNet,類似于殘差連接,但identity連接和transformation層由動態門控制

結論:雖然梯度消失/爆炸是個普遍存在的問題,但由于相同矩陣連續相乘導致RNN尤其不穩定。

雙向RNN

在情緒分類任務中,假如輸入是某個影評,我們希望了解是好評還是差評。一般可以使用簡單RNN進行情緒分類。RNN可以編碼句子。RNN的隱層狀態就是句子表示。

下圖藍色方框的隱藏狀態可以看作詞"terribly"的語境表示。

情緒分析任務

但是這些語境表示僅僅考慮了詞的左側語境。很明顯,"terribly"右側的"exciting"修改了"terribly"的詞義,將整個句子的負面情緒扭轉為正面情緒。右側語境同樣重要!這導致了雙向RNN的出現。

雙向RNN由兩個RNN組成:正向RNN和反向RNN。反向RNN和正向RNN一樣,只不過它從右到左開始編碼。在隱層狀態,則將兩個RNN輸出進行拼接。

雙向RNN

在第t步:

正向RNN:

反向RNN:

隱層狀態拼接:

通常正向RNN和反向RNN權重不同。

下面是雙向RNN簡化圖。

雙向RNN簡化圖

注意:只有當輸入序列完整時,才適用雙向RNN。例如語言模型就不能使用雙向RNN,因為在語言模型中,只能使用左側語境。

最近很火的BERT(BidirectionalEncoder Representations from Transformers)就使用了雙向信息。后面還會談到BERT。

多層RNN

雖然RNN展開后在一個維度已經很深了,我們還可以在另外一個維度增加深度,這就是多層RNN。

多層RNN可以實現更加復雜的表示。低層RNN計算低層特征;高層RNN計算高層特征。

多層RNN

在實踐中,高性能RNN通常都是多層RNN(但一般達不到前向網絡或卷積網絡的深度)。

例如,在2017年的論文中,Britz 等人發現,在神經機器翻譯中,encoder RNN 最好使用2-4層,decoder RNN 最好使用4層。要訓練更深的RNN,則需要跨層連接或稠密連接。

基于Transformer的神經網絡(如BERT)則高達24層。

總結:

LSTM效果很好,GRU速度很快

梯度剪裁可以避免NaN

如果有完整信息,盡量使用雙向RNN

如果有計算資源,盡量使用多層RNN,層數過多時,則需要跨層/稠密連接。

梯度補充

以下作為CS224N-2019-3的補充。梯度計算是神經網絡訓練的核心。逐個推導神經網絡各個參數的梯度冗長復雜,因此有必要使用矩陣/向量形式進行計算。

梯度向量化

給定1個輸出和n個輸入的函數:其梯度就是每個輸入的偏導的向量:

梯度推廣:雅可比矩陣

給定m個輸出和n個輸入的函數:其偏導數就是mxn矩陣,即雅可比梯度矩陣。:

其中單個元素就是普通的標量梯度:雅可比矩陣非常有用。

鏈式法則

一元函數:導數相乘

多元函數:雅可比矩陣相乘

重要等式

矩陣乘以列向量,對列向量求梯度(,?)

行向量乘以矩陣,對行向量求梯度(?)

對向量本身求梯度

(?)使用鏈式法則時,該項會消掉,因為矩陣或向量乘以單位矩陣,還是原矩陣或向量。

對向量各個元素施加同一函數后,對向量求梯度

(?)

矩陣乘以列向量,對矩陣求梯度(,,?)

行向量乘以矩陣,對矩陣求梯度(,,?)

交叉熵損失,對logits求梯度

(,?)

這些等式可用于快速計算很多神經網絡的梯度。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4771

    瀏覽量

    100739
  • 梯度
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10318
  • rnn
    rnn
    +關注

    關注

    0

    文章

    89

    瀏覽量

    6888

原文標題:梯度消失和神奇RNN(CS224N-2019-7)

文章出處:【微信號:gh_b11486d178ef,微信公眾號:語言和智能】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA也能做RNN

    的重要事件。標準的RNN可以保留和使用最近的過去信息,但是不能學習長期的依賴關系。并且由于存在梯度消失和爆炸的問題,傳統的RNN無法訓練較長的序列。為了解決上述問題,LSTM添加了記憶控制單元來決定何時
    發表于 07-31 10:11

    利用RNN進行文章生成

    利用RNN進行文章生成
    發表于 05-24 08:35

    遞歸神經網絡(RNN

    RNN的代碼,了解RNN內部發生的情況。以下代碼包含RNN類:除了上述代碼中的單詞RNN之外,其他一切聽起來與在前面章節中使用的非常類似,
    發表于 07-20 09:27

    放棄 RNN 和 LSTM 吧,它們真的不好用

    2014 年 RNN/LSTM 起死回生。自此,RNN/LSTM 及其變種逐漸被廣大用戶接受和認可。起初,LSTM 和 RNN 只是一種解決序列學習和序列翻譯問題的
    的頭像 發表于 04-25 09:43 ?2.1w次閱讀

    循環神經網絡(RNN)和(LSTM)初學者指南

    最近,有一篇入門文章引發了不少關注。文章中詳細介紹了循環神經網絡(RNN),及其變體長短期記憶(LSTM)背后的原理。
    發表于 02-05 13:43 ?941次閱讀

    神經網絡中最經典的RNN模型介紹

    強大的Bert模型家族,都是站在RNN的肩上,不斷演化、變強的。 這篇文章,闡述了RNN的方方面面,包括模型結構,優缺點,RNN模型的幾種應用,RNN常使用的激活函數,
    的頭像 發表于 05-10 10:22 ?1.2w次閱讀
    神經網絡中最經典的<b class='flag-5'>RNN</b>模型<b class='flag-5'>介紹</b>

    深度分析RNN的模型結構,優缺點以及RNN模型的幾種應用

    強大的Bert模型家族,都是站在RNN的肩上,不斷演化、變強的。 這篇文章,闡述了RNN的方方面面,包括模型結構,優缺點,RNN模型的幾種應用,RNN常使用的激活函數,
    的頭像 發表于 05-13 10:47 ?2.4w次閱讀
    深度分析<b class='flag-5'>RNN</b>的模型結構,優缺點以及<b class='flag-5'>RNN</b>模型的幾種應用

    精選 25 個 RNN 問題

    ,非常適合RNN。與其他神經網絡不同,RNN具有內部存儲器,允許它們保留來自先前輸入的信息,根據整個序列的上下文做出預測或決策。在本文中,我們將探討RNN的架構、它
    的頭像 發表于 12-15 08:28 ?636次閱讀
    精選 25 個 <b class='flag-5'>RNN</b> 問題

    rnn神經網絡基本原理

    序列預測等領域有著廣泛的應用。本文將詳細介紹RNN的基本原理、結構、優化方法和應用場景。 RNN的基本原理 1.1 循環結構 RNN的核心思
    的頭像 發表于 07-04 15:02 ?718次閱讀

    rnn神經網絡模型原理

    的應用。本文將介紹RNN的原理、結構、優化方法以及實際應用。 RNN的基本原理 1.1 循環結構 RNN的核心特點是具有循環結構,即網絡中的
    的頭像 發表于 07-04 15:40 ?581次閱讀

    rnn是什么神經網絡

    RNN(Recurrent Neural Network,循環神經網絡)是一種具有循環連接的神經網絡,它能夠處理序列數據,并且具有記憶能力。與傳統的前饋神經網絡(Feedforward Neural
    的頭像 發表于 07-05 09:49 ?665次閱讀

    LSTM神經網絡與傳統RNN的區別

    在深度學習領域,循環神經網絡(RNN)因其能夠處理序列數據而受到廣泛關注。然而,傳統RNN在處理長序列時存在梯度消失或梯度爆炸的問題。為了解決這一問題,LSTM(長短期記憶)神經網絡應運而生。 循環
    的頭像 發表于 11-13 09:58 ?284次閱讀

    如何使用RNN進行時間序列預測

    時間序列預測在金融、氣象、銷售預測等領域有著廣泛的應用。傳統的時間序列分析方法,如ARIMA和指數平滑,雖然在某些情況下表現良好,但在處理非線性和復雜模式時可能不夠靈活。遞歸神經網絡(RNN)提供了
    的頭像 發表于 11-15 09:45 ?286次閱讀

    RNN的基本原理與實現

    RNN,即循環神經網絡(Recurrent Neural Network),是一種特殊類型的人工神經網絡,專門設計用于處理序列數據,如文本、語音、視頻等。以下是對RNN基本原理與實現的介紹: 一
    的頭像 發表于 11-15 09:49 ?418次閱讀

    RNN與LSTM模型的比較分析

    RNN(循環神經網絡)與LSTM(長短期記憶網絡)模型在深度學習領域都具有處理序列數據的能力,但它們在結構、功能和應用上存在顯著的差異。以下是對RNN與LSTM模型的比較分析: 一、基本原理與結構
    的頭像 發表于 11-15 10:05 ?394次閱讀
    主站蜘蛛池模板: 墨西哥美女主播| 美女网站免费久久久久久久| 簧片免费观看| 麻豆国产96在线日韩麻豆| 欧美另类一区| 天天啪免费视频在线看| 亚洲精品免费视频| 4484在线观看视频| 被老头下药玩好爽| 国产精品亚洲AV毛片一区二区三区| 精品久久久无码21P发布| 蜜芽在线播放免费人成日韩视频| 日韩欧美中文字幕在线| 亚洲国产精品天堂在线播放| 在线综合 亚洲 欧美| 戳女人屁股流水羞羞漫画| 国内精品久久影视免费| 男人桶爽女人| 午夜神器18以下不能进免费| 竹菊影视一区二区三区| 拔萝卜视频免费看高清| 国产一区二区三区在线看片| 免费看黄色一级| 性夜影院爽黄A爽免费动漫| 3D动漫网站HOXXXxes| 国产精品999| 棉袜足j吐奶视频| 午夜电影三级还珠格格| 19不插片免费视频| 国产精品免费一区二区三区四区 | 偷窥自拍性综合图区| 在线亚洲专区中文字幕| 高清AV熟女一区| 老子午夜伦不卡电影院| 午夜aaaa| S货SAO死你BL大点声叫BL| 娇小XXXXX第一次出血| 日韩男明星| 最近中文字幕MV免费看| 国产乱人视频在线观看| 欧美zzzoooxxx|