




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
01RNN產生的背景及意義02簡單RNN03LSTM04RNN其他變體結構05RNN應用場景本章目錄RNN產生的背景及意義011.1、前饋神經網絡的限制
在深度學習領域,傳統的前饋神經網絡(feed-forwardneuralnet,簡稱FNN)具有出色的表現,取得了許多成功,它曾在許多不同的任務上——包括手寫數字識別和目標分類上創造了記錄。同時使用卷積神經網絡(convnets)來處理圖像問題,也獲得了深度學習領域最廣為人知的成果。
盡管這些網絡對于上述問題有較好的表現,但它們一個比較明顯的限制即假定數據是相互獨立的,當數據存在前后依賴關系時(即序列數據)模型的效果不好;基于這個限制,前饋神經網絡在處理時間序列敏感的問題和任務時效果不好。1.2、RNN的意義
而在包含連續數據的研究領域,如文本、音頻和視頻等都要求模型學習數據間的依賴關系,因此在這種需要處理序列數據的情況下,循環神經網絡(RNN)便應運而生了
。RNN的循環結構克服了傳統機器學習方法對輸入和輸出數據的許多限制,可以處理任意長的序列數據,因此RNN成為深度學習領域中一類非常重要的模型。簡單RNN022.2 RNN的結構和原理2.3 RNN存在的問題2.1 序列2.1、序列序列通俗理解就是一段連續的,前后關聯的信息,必須將前后的信息放在一起理解。RNN不限于基于時間的序列,它經常應用于序列具有定義的順序但沒有明確時間概念的信息,比如自然語言、遺傳數據等。輸入序列可以表示為x=(x1,x2,…,xt),拿一句文本舉例,x=“我是中國人”,一般先對這句話進行分詞。那么的x1,x2,
x3就分別對應“我”、“是”、“中國人”這三個詞。類似地,輸出序列可以表示為o=(o1,o2,…,ot)。若任務是一個詞性標注任務,則上面例子對應的o1,o2,o3分別為“名詞”,“系動詞”,“名詞”。需要注意的是,RNN根據任務的不同,
輸入數據x和輸出數據o可能是等長的序列,輸入數據x和輸出數據o可能會不一樣長;也有可能輸入數據x和輸出數據o的只有其中一個是序列。語音識別:情感分類:2.2、RNN的結構和原理
循環神經網絡(RecurrentNeuralNetwork,RNN)是深度學習領域中一類特殊的內部存在自連接的神經網絡,它在前饋神經網絡的基礎上,通過在隱藏層上增加的回路連接將時間概念引入模型,使得前一時刻的隱藏層狀態能夠傳遞給當前時刻,當前時刻的狀態也可以傳遞給下個時刻。
為了方便介紹,我們后面的RNN網絡結構的隱藏層都只有一層。
按時間線將RNN展開就得到了下圖結構。
可以將RNN看作不同時刻共享權值的前饋神經網絡,通過上一時刻隱藏層連接到下一時刻隱藏層的邊連接不同時刻的前饋神經網絡。
右圖中的xt一般是經過編碼后的向量,比如之前舉的例子,“我”,“是”,“中國人”這三個詞一般要先編碼,然后才作為輸入。
在時刻t,隱藏層
h
接收來自兩方面的輸入,分別為網絡前一時刻的隱藏層輸出值h
t-1和當前的輸入層輸入數據xt,以此來計算當前時刻的隱藏層的輸出值h
t。t-1時刻的輸入x
t-1可以在之后通過循環結構影響t時刻的輸出。h
t和ot的計算如下:
公式中:Wxh為輸入層到隱藏層的權重矩陣,Whh為隱藏層之間的連接權重矩陣,Why為隱藏層到輸出層的連接權重矩陣,by和bh為偏置向量,f為隱藏層激活函數,g為輸出層激活函數。
h
t
的計算需要h
t-1和xt,h
t-1的計算又需要h
t-2和xt-1,以此類推,所以RNN中過去的所有狀態和輸入都對現在時刻的輸出產生影響,即RNN把之前的信息都記憶下來了,因此理論上RNN理論上具有長期記憶,可以處理任意長度的序列數據。
舉個例子:“我的水杯壞了,我打算買
一個______”,在預測橫線上的詞語時,前面的輸入“水杯”的可以影響到預測的輸出,從而預測要填的詞是“新水杯”2.3、RNN存在的問題
在實際應用中,RNN常常面臨訓練方面的難題,尤其隨著輸入序列長度不斷增加,這個問題會更加嚴重,使得RNN并不能很好地處理長距離的依賴。
通常使用BPTT(隨時間誤差逆傳播算法)來訓練RNN,訓練過程中涉及多次f’和W連乘(f是隱藏層激活函數,W是隱藏層之間連接權重),因此會產生梯度爆炸或消失問題。
下面進行一個簡單的推導來講解BPTT訓練RNN時為什么會產生梯度爆炸或消失問題:RNN常用的兩種激活函數sigmoid()和tanh()。sigmoid函數導數為f’(z)=f(z)(1-f(z))RNN常用的兩種激活函數sigmoid()和tanh()。tanh函數導數為則t時刻,損失函數為?由于t3時刻S3會受到前面輸入的影響,因此對t3時刻的Wx求偏導就會變成下面這樣:為了便于推導,現在假設我們的時間序列只有t1
、t2、t3,且每一時刻的每層只有一個神經元。
WhWhh1h2h3o1o2o3x2x1x3yt-ot
Wh
對于梯度爆炸問題,在RNN中出現的情況更少,且當出現梯度爆炸時,有一些方法可以緩解,比如設置一個梯度閾值,當梯度超過這個閾值時,直接截斷。對于梯度消失問題,只是前面時刻的梯度消失了,當前時刻整體的梯度并不會消失,因為它是求和的過程。因此一般指的RNN的梯度消失是指當下梯度的更新用不到前面的梯度了,即梯度被近距離梯度主導,導致模型難以學到遠距離的依賴關系。因此RNN實際應用過程中只具有短期記憶(訓練后的權重更偏向于最近的輸入)。
短期記憶舉例:隨著輸入序列長度的逐漸增加,t時刻網絡中隱藏的最前面的輸入信息越來越少。RNN的另一個問題:輸入和輸出權值沖突
輸入權值沖突: RNN網絡中的wij參數是跟目前的輸入和狀態無關,對于所有的輸入,它的大小是一致的,不能區分當前輸入的重要程度。由于缺少這種自動調節功能,從而導致學習比較困難。
比如這樣一個預測問題:“我的水杯壞了,我打算買
一個______”,當輸入是“水杯”的時候,希望wij是比其他輸入的時候大的,這樣“水杯”這個詞的信息就會更多地存儲到網絡中,從而預測要填的詞是“新水杯”。
同理輸出權值沖突也是類似的。
RNN總結 RNN雖然理論上可以很漂亮的解決序列問題,但是它有梯度消失或爆炸的問題。
雖然有一些緩解的辦法,但當序列較長的時候問題仍然嚴重。
且權重沖突的原因也導致RNN的實際效果并不好。
因此上面的RNN模型一般不能直接用于應用領域。LSTM033.1 解決RNN問題的原理3.2 LSTM的結構3.1解決RNN缺陷的原理 LSTM是RNN的一個優秀的變種結構,它實現了一個更加細化的內部處理單元,來實現上下文信息的有效存儲和更新。主要提出了兩個東西來解決RNN的問題:
一是:用于解決RNN中的梯度消失問題的常數誤差流。
二是:用于解決RNN輸入輸出權值沖突問題的門控單元。
下面依次解釋這兩點:
常數誤差流(ConstantErrorCarousel)
之前講到,出現梯度消失的原因是因為
的連乘,為了解決誤差消失的問題,可以強制令其等于1,即
,
(由這個等式可以得出f是一個線性函數)。為了令這個等式成立LSTM在傳統RNN上提出了兩個改變:
一是:隱藏層之間只允許節點的自連接,不允許隱層的其他節點連接到本節點,且自連接權重為1.0。
二是:令隱藏層激活函數變為線性激活函數f
(x)=x
兩個改變如下圖所示:
=1.0hj1 hj2 hj3hj-11 hj-12 hj-13LSTM隱藏層兩個時刻的連接狀態RNN隱藏層兩個時刻的連接狀態1.01.01.0j時刻j-1時刻j時刻j-1時刻hj-11 hj-12 hj-13hj1 hj2 hj3
輸入門的值是由sigmoid根據上一時刻狀態和輸入生成的0-1之間的數,用于判斷輸入信息的重要程度,1表示重要,0表示不重要。用它的值乘以輸入信息表示輸入信息存入長期狀態的程度。
輸出門也是由sigmoid根據上一時刻狀態和輸入生成的0-1之間的數,用于判斷長期狀態信息的重要程度。用它的值乘以輸出信息表示輸出的程度。門控單元
為了區分輸入輸出信息的重要程度,LSTM是使用門控單元來控制信息流入和流出長期狀態c。遺忘門
到目前為止的網絡仍存在一個問題:由于自連接權重為1.0,隨著時間序列的增多,長期狀態c中的信息會不斷累加,會出現長期狀態混亂的問題。因此引入了遺忘門來刪除記憶單元中的一些不重要的信息。
同樣的,遺忘門的值f,也是由函數sigmoid根據上一時刻狀態和這一時刻輸入生成一個值在0-1范圍的值,用來決定從上一時刻的記憶單元sc中信息的保留程度。3.2LSTM結構
經過了上面的改變,就形成了現在常見的LSTM網絡結構:
可以看到,LSTM中每個時刻有兩個狀態,即長期狀態c(門控單元的用處將在這里體現)和輸出狀態h t時刻的隱藏層有三個輸入ct-1,ht-1,xt。兩個輸出ct和ht。
ht不僅用作這一時刻輸出層的輸入,同樣用作下一時刻隱藏層的輸入3.2LSTM結構
遺忘門f:控制長期狀態遺忘一些不重要的信息。
這一步是決定從上一時刻長期狀態ct-1中遺忘什么信息。遺忘門根據上一時刻輸出狀態ht-1和這一時刻輸入xt由sigmoid函數生成一個由0-1之間的數組成的向量,判斷長期信息中哪些是不重要的。輸入門i:控制重要信息添加到長期狀態中。
這一步是確定什么樣的新信息被存放在長期狀態ct中。輸入門是根據上一時刻輸入狀態ht-1和這一時刻輸入xt,生成一個由0-1之間的數組成的向量,判斷候選輸入信息中哪些要存入長期狀態ct。接著是ct-1更新為ct。輸出門o:控制長期狀態中信息的輸出程度。
輸出門的根據上一時刻輸入狀態ht-1和這一時刻輸入xt,生成一個由0-1之間的數組成的向量,判斷長期狀態ct中哪些信息要用于輸出。3.2LSTM總結 LSTM提出了常數誤差流解決了梯度消失問題,提出了門控單元解決了輸入輸出權值沖突問題。
但隨后加入的遺忘門從某種程度上破壞了常數誤差流的結構。
因此LSTM只是緩解了梯度消失問題,并沒有完全解決梯度消失問題。
即使這樣,LSTM的結構仍然使得LSTM在長距離依賴的任務中的表現遠優于RNN。由于其優秀的性質,LSTM已經被用于大量的和序列學習相關的任務中,比如語音識別、詞性標注、機器翻譯等。
RNN其他變體044.2 BRNN/BLSTM4.1 GRU4.1GRU LSTM的學習能力增強了,但額外的參數無疑增加了計算負擔,因此需要對LSTM進行改進。
第一個問題是:LSTM中的輸出h其實只是控制了輸出程度的長期狀態c而已,因此可以考慮去掉輸出門,直接將長期狀態作為輸出。
第二個問題是:由于LSTM中輸入門和遺忘門都是根據從ht-1和xt從而決定對長期狀態的更新,因此可以考慮將這兩個門合并。 Cho等提出了GRU,其具體結構如下:LSTM隱藏層結構4.1GRU
可以看到GRU中只有一個狀態h,既表示長期狀態也表示隱藏層輸出。
同時也只剩下兩個門控,r表示重置門,z表示更新門。
4.1GRU總結
對比LSTM,GRU本質上仍然是根據對上一時刻長期狀態ht-1進行遺忘,通過候選輸入信息進行添加。
只是少了對于輸出信息的進一步篩選,因此GRU在本質上和LSTM并沒有不同,只是LSTM的簡化。
對于LSTM與GRU而言,由于GRU參數更少,收斂速度更快,因此其實際花費時間要少很多,這可以大大加速了訓練的迭代過程。而從表現上講,二者之間孰優孰劣并沒有定論,這要依據具體的任務和數據集而定,而實際上,二者之間的performance差距往往并不大,遠沒有調參所帶來的效果明顯。
4.2BRNN/BLSTM
在某些情況下,輸出值除了受前面歷次輸入值的影響之外,可能還受未來時刻輸入值的影響.例如:“我的水杯壞了,我打算____一個新水杯.”若只考慮前面輸入,則可能存在“扔”“買”等情況,但若考慮到橫線后面“新水杯”這一信息,則能準確判斷出橫線處填“買”。
針對這種情況,單向RNN只能向前看任意個輸入值,無法對此進行建模,于是Schuster等提出了雙向循環神經網絡(BRNN)來解決這一問題. BRNN的結構如圖所示,BRNN有2個隱藏層,比RNN多了1層網絡,一層參與正向計算,另一層參與反向計算,最終輸出要由兩個隱藏層的結構來決定。計算公式為:
類似
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司文體活動月策劃方案
- 公司著裝大賽策劃方案
- 公司新年嘉年華活動方案
- 2025年職業健康安全管理師考試試卷及答案
- 2025年新能源與可再生能源知識考核考試卷及答案
- 2025年數字信號處理技術考試卷及答案
- 2025年天文學與空間科學考試題及答案
- 2025年人機交互設計師職業資格考試試題及答案
- 2025年企業管理咨詢師職業資格考試試卷及答案
- 2025年交通工程與智能交通管理的專業知識考試試卷及答案
- 國開《學前兒童語言教育活動指導》形考1-4試題及答案
- 海康2023綜合安防工程師認證試題答案HCA
- 濁度儀使用說明書
- GB/T 14404-2011剪板機精度
- GB/T 14294-1993組合式空調機組
- GA 1517-2018金銀珠寶營業場所安全防范要求
- 提高痰留取成功率PDCA課件
- 組合導航與融合導航解析課件
- 伊金霍洛旗事業編招聘考試《行測》歷年真題匯總及答案解析精選V
- 深基坑支護工程驗收表
- 顱腦CT影像課件
評論
0/150
提交評論