《循環(huán)神經(jīng)網(wǎng)絡(luò)》課件_第1頁
《循環(huán)神經(jīng)網(wǎng)絡(luò)》課件_第2頁
《循環(huán)神經(jīng)網(wǎng)絡(luò)》課件_第3頁
《循環(huán)神經(jīng)網(wǎng)絡(luò)》課件_第4頁
《循環(huán)神經(jīng)網(wǎng)絡(luò)》課件_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第八章循環(huán)神經(jīng)網(wǎng)絡(luò)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理8.2改進的循環(huán)神經(jīng)網(wǎng)絡(luò)8.3深層循環(huán)神經(jīng)網(wǎng)絡(luò)8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)of3118.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用習題序言下載提示:該課件是本店鋪精心編制而成的,希望大家下載后,能夠幫助大家解決實際問題。課件下載后可定制修改,請根據(jù)實際需要進行調(diào)整和使用,謝謝!Downloadreminder:Thiscoursewareiscarefullycompiledbythisshop.Ihopethatafteryoudownloadit,itcanhelpyousolvepracticalproblems.Thecoursewarecanbecustomizedandmodifiedafterdownloading,pleaseadjustanduseitaccordingtoactualneeds,thankyou!8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of313循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN)是一種對序列數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò),即一個序列當前的輸出與前面的輸出也有關(guān)。具體的表現(xiàn)形式為網(wǎng)絡(luò)會對前面的信息進行記憶并應(yīng)用于當前輸出的計算中,即隱藏層之間的節(jié)點不在無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時刻隱藏層的輸出。RNN模型的連接如圖所示。1.循環(huán)神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)yVhUxWUnfoldyt-1VUxt-1ht-1WytxthtVUWWyt+1xt+1ht+1VUWRNN模型結(jié)構(gòu)圖8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3141前向計算每個神經(jīng)元的輸出值。2反向計算每個神經(jīng)元的誤差項值,它是誤差函數(shù)E對神經(jīng)元j的加權(quán)輸入的偏導數(shù)。3計算每個權(quán)重的梯度。循環(huán)神經(jīng)網(wǎng)絡(luò)的工程原理或是工作過程其實就是循環(huán)神經(jīng)網(wǎng)絡(luò)的訓練算法,一種基于時間的反向傳播算法BPTT(BachPropagationThroughTime)。BPTT算法是針對循環(huán)層設(shè)計的訓練算法,它的基本原理和反向傳播BP(BackPropagation)算法是一樣的,也包含同樣的三個步驟。2.循環(huán)神經(jīng)網(wǎng)絡(luò)的基本工作原理8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of315最后再用隨機梯度下降算法更新權(quán)重。假設(shè)時刻為??時,輸入為_x001A_??_x001B_??_x001B_,隱層狀態(tài)(隱層神經(jīng)元活性值)為_x001A_?_x001B_??_x001B_,_x001A_?_x001B_??_x001B_不僅和當前時刻的輸入_x001A_??_x001B_??_x001B_相關(guān),也和上一個時刻的隱層狀態(tài)_x001A_?_x001B_???1_x001B_相關(guān)。2.循環(huán)神經(jīng)網(wǎng)絡(luò)的基本工作原理其中_x001A_??_x001B_??_x001B_為隱藏層的凈輸入;??_x001A_?_x001B_是非線性激活函數(shù),通常為logistic函數(shù)或tanh函數(shù);??為狀態(tài)-狀態(tài)權(quán)重矩陣;??為狀態(tài)-輸入權(quán)重矩陣;??為偏置。式(8-1)和式(8-2)也經(jīng)常直接寫為:(8-1)(8-2)(8-3)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of316循環(huán)神經(jīng)網(wǎng)絡(luò)要求每一個時刻都有一個輸入,但是不一定每一個時刻都需要有輸出。其次循環(huán)神經(jīng)網(wǎng)絡(luò)可以往前看獲得任意多個輸入值,其遞歸推導方法如式(8-4)所示,即RNN的輸出層??和隱藏層?的計算方法:2.循環(huán)神經(jīng)網(wǎng)絡(luò)的基本工作原理如果反復把式(8-5)帶入到式(8-4),將得到遞歸如下,推導可以看出,RNN的輸出層??和輸入系列_x001A_??_x001B_??_x001B_的前??個時刻都有關(guān)。(8-4)(8-5)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of317循環(huán)神經(jīng)網(wǎng)絡(luò)中循環(huán)的意思就是同一網(wǎng)絡(luò)結(jié)構(gòu)不停的重復。相比普通的神經(jīng)網(wǎng)絡(luò),循環(huán)神經(jīng)網(wǎng)絡(luò)的不同之處在于,隱層的神經(jīng)元之間還有相互的連接,在隱層上增加了一個反饋連接,也就是說,RNN隱層當前時刻的輸入有一部分是前一時刻隱層的輸出,這使得RNN可以通過循環(huán)反饋連接保留前面所有時刻的信息,這賦予了RNN的記憶功能。這些特點使得RNN非常適合用于對時序信號的建模。3.循環(huán)神經(jīng)網(wǎng)絡(luò)的前向計算整理一下可以寫為:(8-6)(8-7)(8-8)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of318

循環(huán)神經(jīng)網(wǎng)絡(luò)正向計算如圖所示。3.循環(huán)神經(jīng)網(wǎng)絡(luò)的前向計算yt-1xt-1ht-1ytxt

htztfV=[why]gU=[wh,h-1]W=[wxh]t-1t前向計算示意圖8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3193.循環(huán)神經(jīng)網(wǎng)絡(luò)的前向計算給定計算t時刻的輸入_x001A_??_x001B_??_x001B_求網(wǎng)絡(luò)的輸出_x001A_??_x001B_??_x001B_。輸入_x001A_??_x001B_??_x001B_與權(quán)_x001A_??_x001B__x001A_??_x001B_?_x001B__x001B_相乘(加上偏差??)與前一時刻的隱層輸出與權(quán)重_x001A_?_x001B_???1_x001B__x001A_??_x001B_?,??1_x001B_的和為_x001A_??_x001B_??_x001B_,即_x001A_??_x001B_??_x001B_=_x001A_??_x001B_?,??1_x001B__x001A_?_x001B_???1_x001B_+_x001A_??_x001B_???_x001B__x001A_??_x001B_??_x001B_+??,且_x001A_??_x001B_??_x001B_為N×1隱含層潛向量,_x001A_??_x001B__x001A_??_x001B_?_x001B__x001B_是N×??權(quán)重矩陣連接K個輸入單元到N個隱含層單元;_x001A_??_x001B_??_x001B_經(jīng)過激活函數(shù)??_x001A_?_x001B_之后即為隱藏層的輸出_x001A_?_x001B_??_x001B_,_x001A_??_x001B_??_x001B_=_x001A_?_x001B_??_x001B__x001A_??_x001B_???_x001B_,_x001A_??_x001B_??_x001B_是L×1輸出層潛向量,_x001A_??_x001B_??_x001B_經(jīng)過激活函數(shù)??_x001A_?_x001B_以后即得到輸出_x001A_??_x001B_??_x001B_,??_x001A__x001A_??_x001B_??_x001B__x001B_是隱含層激活函數(shù),??_x001A__x001A_??_x001B_??_x001B__x001B_是輸出層激活函數(shù)。典型的隱含層激活函數(shù)有sigmoid,tanh與rectifiedlinearunits,(以去掉黃色陰影)典型的輸出層所用的激活函數(shù)有l(wèi)inear和SoftMax函數(shù)。激活函數(shù)的主要作用是提供網(wǎng)絡(luò)的非線性建模能力。如果沒有激活函數(shù),那么該網(wǎng)絡(luò)僅能夠表達線性映射,此時即便有再多的隱藏層,其整個網(wǎng)絡(luò)跟單層神經(jīng)網(wǎng)絡(luò)也是等價的。因此也可以認為,只有加入了激活函數(shù)之后,深度神經(jīng)網(wǎng)絡(luò)才具備了分層的非線性映射學習能力。當然激活函數(shù)應(yīng)具有的基本特性有:(1)可微性:當優(yōu)化方法是基于梯度的時候,這個性質(zhì)是必須的。(2)單調(diào)性:當激活函數(shù)是單調(diào)的時候,單層網(wǎng)絡(luò)能夠保證是凸函數(shù)。(3)輸出值的范圍:當激活函數(shù)輸出值是有限的時候,基于梯度的優(yōu)化方法會更加穩(wěn)定,因為特征的表示受有限權(quán)值的影響更顯著;當激活函數(shù)的輸出是無限的時候,模型的訓練會更加高效,不過在這種情況下,一般需要更小的學習率。8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3110BPTT算法將循環(huán)神經(jīng)網(wǎng)絡(luò)看作是一個展開的多層前饋網(wǎng)絡(luò),其中“每一層”對應(yīng)循環(huán)網(wǎng)絡(luò)中的“每個時刻”。這樣,循環(huán)神經(jīng)網(wǎng)絡(luò)就可以按照前饋網(wǎng)絡(luò)中的反向傳播算法進行參數(shù)梯度計算。在“展開”的前饋網(wǎng)絡(luò)中,所有層的參數(shù)是共享的,因此參數(shù)的真實梯度是所有“展開層”的參數(shù)梯度之和,其誤差反向傳播示意圖如圖所示。4.循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度計算Lt-2ht-2xt-2Lt-1ht-1xt-1Lthtxt

t,t

t,t-1

t-1,t-1

t,t-2

t-1,t-2

t-2,t-2誤差反向傳播示意圖8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3111給定一個訓練樣本_x001A_??,??_x001B_,其中??=_x001A__x001A_??_x001B_1_x001B_,_x001A_??_x001B_2_x001B_,

?_x001A_,??_x001B_??_x001B__x001B_為長度是T的輸入序列,y=_x001A__x001A_??_x001B_1_x001B_,_x001A_??_x001B_2_x001B_,

?_x001A_,??_x001B_??_x001B__x001B_是長度為T的標簽序列。即在每個時刻t,都有一個監(jiān)督信息_x001A_??_x001B_??_x001B_,定義時刻t的損失函數(shù)為4.循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度計算

整個序列的損失函數(shù)關(guān)于隱層間參數(shù)U的梯度為(8-9)(8-10)(8-11)式(8-9)中,??_x001A__x001A_?_x001B_??_x001B__x001B_為第t時刻的輸出;L為可微分的損失函數(shù),比如交叉熵。那么整個序列上損失函數(shù)為

8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3112計算偏導數(shù)_x001A_??_x001A_??_x001B_??_x001B__x001B_????_x001B_先來計算公式(8-11)中第??時刻損失對參數(shù)??的偏導數(shù)_x001A_??_x001A_??_x001B_??_x001B__x001B_????_x001B_

。因為參數(shù)??和隱藏層在每個時刻??_x001A_1≤??≤??_x001B_的凈輸入_x001A_??_x001B_??_x001B_=??_x001A_?_x001B_???1_x001B_+??_x001A_??_x001B_??_x001B_+??有關(guān),因此第??時刻損失的損失函數(shù)_x001A_??_x001B_??_x001B_關(guān)于參數(shù)_x001A_??_x001B_????_x001B_的梯度為:4.循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度計算式(8-12)中,_x001A__x001A_??_x001B_+_x001B__x001A_??_x001B_??_x001B__x001B_??_x001A_??_x001B_????_x001B__x001B_表示“直接”偏導數(shù),即公式_x001A_??_x001B_??_x001B_=??_x001A_?_x001B_???1_x001B_+??_x001A_??_x001B_??_x001B_+??中保持_x001A_?_x001B_???1_x001B_不變,對_x001A_??_x001B_????_x001B_進行求偏導數(shù),得到(8-12)(8-13)8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3113式(8-13)中,_x001A__x001A__x001A_?_x001B_???1_x001B__x001B__x001B_??_x001B_為第???1時刻隱層狀態(tài)的第??維;_x001A_??_x001B__x001B__x001A_??_x001B__x001B_除了第??行值為??外,其余都為0的向量。定義_x001A_??_x001B_??,??_x001B_=_x001A_??_x001A_??_x001B_??_x001B__x001B_??_x001A_??_x001B_??_x001B__x001B_為第??時刻的損失對第??時刻隱藏神經(jīng)層的凈輸入_x001A_??_x001B_??_x001B_的導數(shù),則4.循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度計算

將式(8-14)和(8-13)代入公式(8-12)得到(8-14)(8-15)

將式(8-15)寫成矩陣形式為(8-16)8.1

循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3114將式(8-16)代入到將式(8-11)得到整個序列的損失函數(shù)L關(guān)于參數(shù)U的梯度:4.循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度計算同理可得,L關(guān)于權(quán)重W、偏置b以及參數(shù)V的梯度為:(8-17)(8-18)在BPTT算法中,參數(shù)的梯度需要在一個完整的“前向”計算和“反向”計算后才能得到并進行參數(shù)更新。(8-19)(8-20)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理8.2改進的循環(huán)神經(jīng)網(wǎng)絡(luò)8.3深層循環(huán)神經(jīng)網(wǎng)絡(luò)8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)of31158.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用習題8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3116循環(huán)神經(jīng)網(wǎng)絡(luò)在學習過程中的主要問題是長期依賴問題。在BPTT算法中,將公式(8-14)展開得到1.梯度爆炸與梯度消失如果定義???_x001A_????????_x001A__x001A_??_x001B_′_x001B__x001A__x001A_??_x001B_??_x001B__x001B__x001B__x001A_??_x001B_??_x001B__x001B_,則(8-21)(8-22)若??>1,當?????→∞時,_x001A_??_x001B_?????_x001B_→∞,會造成系統(tǒng)不穩(wěn)定,此時稱為梯度爆炸問題(GradientExplodingProblem);相反,若??<1,當?????→∞時,_x001A_??_x001B_?????_x001B_→0,會出現(xiàn)和深度前饋神經(jīng)網(wǎng)絡(luò)類似的梯度消失問題(GradientVanishingProblem)。值得注意的是,在循環(huán)神經(jīng)網(wǎng)絡(luò)中的梯度消失不是說_x001A_??_x001A_??_x001B_??_x001B__x001B_????_x001B_的梯度消失了,而是_x001A_??_x001A_??_x001B_??_x001B__x001B_??_x001A_?_x001B_??_x001B__x001B_的梯度消失了(當?????比較大時)。也就是說,參數(shù)??的更新主要靠當前時刻??的幾個相鄰狀態(tài)_x001A_?_x001B_??_x001B_來更新,長距離的狀態(tài)對??沒有影響。8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3117為了避免梯度爆炸或消失問題,一種最直接的方式就是選取合適的參數(shù),同時使用非飽和的激活函數(shù),盡量使得這種方式需要足夠的人工調(diào)參經(jīng)驗,限制了模型的廣泛應(yīng)用。采用比較有效的方式改進模型或優(yōu)化方法來緩解循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度爆炸和梯度消失問題。1.梯度爆炸與梯度消失梯度爆炸一般而言,循環(huán)網(wǎng)絡(luò)的梯度爆炸問題比較容易解決,主要通過權(quán)重衰減或梯度截斷來避免。梯度消失梯度消失是循環(huán)神經(jīng)網(wǎng)絡(luò)的主要問題。除了使用一些優(yōu)化技巧外,更有效的方式就是改變模型。

8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31182.長短時記憶神經(jīng)網(wǎng)絡(luò)LongShort-TermMemoryNeuralNetwork一般就叫做LSTM,是一種RNN特殊的類型,可以學習長期依賴信息。LSTM由Hochreiter&Schmidhuber(1997)提出,并在近期被AlexGraves進行了改良和推廣。在很多問題,LSTM都取得相當巨大的成功,并得到了廣泛的使用。LSTM通過刻意的設(shè)計來避免長期依賴問題。記住長期的信息在實踐中是LSTM的默認行為,而非需要付出很大代價才能獲得的能力,所有RNN都具有一種重復神經(jīng)網(wǎng)絡(luò)模塊的鏈式的形式。LSTM能避免RNN的梯度消失問題,其使用“累加”的形式計算狀態(tài),這種累加形式導致導數(shù)也是累加形式,因此避免了梯度消失。8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31192.長短時記憶神經(jīng)網(wǎng)絡(luò)所有循環(huán)神經(jīng)網(wǎng)絡(luò)都有一個重復結(jié)構(gòu)的模型形式,在標準的RNN中,重復的結(jié)構(gòu)是一個簡單的循環(huán)體,如圖所示的A循環(huán)體。(1)LSTM的結(jié)構(gòu)tanhhtxtAht-1xt-1Aht-1xt-1循環(huán)神經(jīng)網(wǎng)絡(luò)重復結(jié)構(gòu)圖8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31202.長短時記憶神經(jīng)網(wǎng)絡(luò)LSTM的循環(huán)體是一個擁有四個相互關(guān)聯(lián)的全連接前饋神經(jīng)網(wǎng)絡(luò)的復制結(jié)構(gòu),如圖所示。(1)LSTM的結(jié)構(gòu)

×tanh+

××tanhhtxt

tanh×+

××tanhht-1xt-1

tanh×+

××tanhht+1xt+1AA

LSTM結(jié)構(gòu)圖8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31212.長短時記憶神經(jīng)網(wǎng)絡(luò)LSTM結(jié)構(gòu)圖中具體的符號語義如圖所示。其中英文對應(yīng)的意思是:NeuralNetworkLayer:該圖表示一個神經(jīng)網(wǎng)絡(luò)層;PointwiseOperation:該圖表示一種操作;VectorTransfer:每一條線表示一個向量,從一個節(jié)點輸出到另一個節(jié)點;Concatenate:該圖表示兩個向量的合并,即由兩個向量合并為一個向量;Copy:該圖表示一個向量復制了兩個向量,其中兩個向量值相同。(1)LSTM的結(jié)構(gòu)NeuralNetworkLayerPointwiseOperationVectorTransferConcatenateCopy

LSTM符號語義圖8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31222.長短時記憶神經(jīng)網(wǎng)絡(luò)1)核心設(shè)計LSTM設(shè)計的關(guān)鍵是神經(jīng)元的狀態(tài),即為圖所示頂部的水平線。神經(jīng)元的狀態(tài)類似傳送帶一樣,按照傳送方向從左端被傳送到右端,在傳送過程中基本不會改變,只是進行一些簡單的線性運算:加或減操作。神經(jīng)元間通過線性操作能夠小心地管理神經(jīng)元的狀態(tài)信息,將這種管理方式稱為門操作(gate)。門操作能夠隨意地控制神經(jīng)元狀態(tài)信息的流動,如圖所示,它由一個sigmoid激活函數(shù)的神經(jīng)網(wǎng)絡(luò)層和一個點乘運算組成。LSTM有三個門來管理和控制神經(jīng)元的狀態(tài)信息。(2)LSTM結(jié)構(gòu)分析

tanh×+

××tanhCt-1Cththtxtftitot

×LSTM的C線LSTM的基本控制門8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)232.長短時記憶神經(jīng)網(wǎng)絡(luò)2)遺忘門LSTM的第一步是決定要從上一個時刻的狀態(tài)中丟棄什么信息,其是由一個sigmoid全連接的前饋神經(jīng)網(wǎng)絡(luò)的輸出來管理,將這種操作稱為遺忘門(forgetgatelayer),如圖8-9所示。這個全連接的前饋神經(jīng)網(wǎng)絡(luò)的輸入是_x001A_?_x001B_???1_x001B_和_x001A_??_x001B_??_x001B_組成的向量,輸出是_x001A_??_x001B_??_x001B_向量。_x001A_??_x001B_??_x001B_向量是由1和0組成,1表示能夠通過,0表示不能通過。其函數(shù)式為:(2)LSTM結(jié)構(gòu)分析

tanh×+

××tanhCt-1Cththt-1xtftitotLSTM的遺忘門圖(8-25)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31242.長短時記憶神經(jīng)網(wǎng)絡(luò)3)輸入門第二步?jīng)Q定哪些輸入信息要保存到神經(jīng)元的狀態(tài)中。這由兩隊前饋神經(jīng)網(wǎng)絡(luò)決定,如圖8-10所示。首先是一個有sigmoid層的全連接前饋神經(jīng)網(wǎng)絡(luò),稱為輸入門(inputgatelayer),其決定了哪些值將被更新;然后是一個tanh層的全連接前饋神經(jīng)網(wǎng)絡(luò),其輸出是一個向量_x001A_??_x001B_??_x001B_,_x001A_??_x001B_??_x001B_向量可以被添加到當前時刻的神經(jīng)元狀態(tài)中;最后根據(jù)兩個神經(jīng)網(wǎng)絡(luò)的結(jié)果創(chuàng)建一個新的神經(jīng)元狀態(tài)。其函數(shù)關(guān)系為:(2)LSTM結(jié)構(gòu)分析Ct

tanh×+

××tanhCt-1Cththt-1xtftitotLSTM的輸入門(8-26)(8-27)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31252.長短時記憶神經(jīng)網(wǎng)絡(luò)4)狀態(tài)控制第三步就可以更新上一時刻的狀態(tài)_x001A_??_x001B_???1_x001B_為當前時刻的狀態(tài)_x001A_??_x001B_??_x001B_了。上述的第一步的遺忘門計算了一個控制向量,此時可通過這個向量過濾了一部分_x001A_??_x001B_???1_x001B_信息,如圖8-11所示的乘法操作;上述第二步的輸入門根據(jù)輸入向量計算了新狀態(tài),此時可以通過這個新狀態(tài)和_x001A_??_x001B_???1_x001B_狀態(tài)構(gòu)建一個新的狀態(tài)_x001A_??_x001B_??_x001B_,如圖8-11所示的加法操作。其函數(shù)關(guān)系為:(2)LSTM結(jié)構(gòu)分析

tanh×+

××tanhCt-1CththtxtftitotLSTM狀態(tài)控制圖(8-28)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)5)輸出門最后一步就是決定神經(jīng)元的輸出向量_x001A_?_x001B_??_x001B_是什么,此時的輸出是根據(jù)上述第三步的_x001A_??_x001B_??_x001B_狀態(tài)進行計算的,即根據(jù)一個sigmoid層的全連接前饋神經(jīng)網(wǎng)絡(luò)過濾掉一部分_x001A_??_x001B_??_x001B_狀態(tài)作為當前時刻神經(jīng)元的輸出,如圖8-12所示。其函數(shù)關(guān)系為:(2)LSTM結(jié)構(gòu)分析

tanh×+

××tanhCt-1Cththt-1xtftitothtLSTM的輸出門(8-29)(8-30)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)上述介紹的LSTM結(jié)構(gòu)是一個正常的網(wǎng)絡(luò)結(jié)構(gòu),然而并不是所有的LSTM網(wǎng)絡(luò)都是這種結(jié)構(gòu),實際上,LSTM有很多種變體,即為多種變化形態(tài)。如下介紹幾種常用形態(tài)結(jié)構(gòu):1)PeepholeConnections一種流行的LSTM變體是由Gers&Schmidhuber(2000)提出的網(wǎng)絡(luò)結(jié)構(gòu),如圖所示。(3)LSTM的延伸網(wǎng)絡(luò)LSTM的peepholes連接圖

tanh×+

××tanhCt-1ht-1xthtCtht8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)1)PeepholeConnections通過將上一時刻的狀態(tài)Ct-1合并到各個門上,從而更詳細控制各個門的管理。其具體的各層函數(shù)關(guān)系式為:(3)LSTM的延伸網(wǎng)絡(luò)(8-31)(8-32)(8-33)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)2)CoupledForgetandInputGates另一種變體是使用耦合的遺忘門和輸入門,如圖所示。LSTM網(wǎng)絡(luò)中的輸入門和遺忘門有些互補關(guān)系,因此同時用兩個門比較冗余。為了減少LSTM網(wǎng)絡(luò)的計算復雜度,將這兩個門合并為一個門。其具體的函數(shù)關(guān)系為:(3)LSTM的延伸網(wǎng)絡(luò)LSTM變體形式圖

tanh×+

××tanhCt-1Cththt-1xtftot1-ht(8-34)8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)3)GatedRecurrentUnit門限循環(huán)單元(GatedRecurrentUnit,GRU)是一種比LSTM更加簡化的版本,是LSTM的一種變體,如圖8-15所示。在LSTM中,輸入門和遺忘門是互補關(guān)系,因為同時用兩個門比較冗余。GRU將輸入門與遺忘門合并成一個門:更新門(UpdateGate),同時還合并了記憶單元和神經(jīng)元的活性值。(3)LSTM的延伸網(wǎng)絡(luò)××+

rt

1-zt×tanhxtht-1htGRU模型結(jié)構(gòu)圖8.2

改進的循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.長短時記憶神經(jīng)網(wǎng)絡(luò)3)GatedRecurrentUnitGRU模型中有兩個門:更新門??和重置門??,更新門??用來控制當前的狀態(tài)需要遺忘多少歷史信息和接受多少新信息。重置門??用來控制候選狀態(tài)中有多少信息是從歷史信息中得到。GRU模型的更新關(guān)系式為:(3)LSTM的延伸網(wǎng)絡(luò)(8-35)(8-36)(8-37)(8-38)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理8.2改進的循環(huán)神經(jīng)網(wǎng)絡(luò)8.3深層循環(huán)神經(jīng)網(wǎng)絡(luò)8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)of31328.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用習題8.3

深層循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)33如果將深度定義為網(wǎng)絡(luò)中信息傳遞路徑長度的話,循環(huán)神經(jīng)網(wǎng)絡(luò)可以看作是既“深”又“淺”的網(wǎng)絡(luò)。一方面來說,如果把循環(huán)網(wǎng)絡(luò)按時間展開,長時間間隔的狀態(tài)之間的路徑很長,循環(huán)網(wǎng)絡(luò)可以看作是一個非常深的網(wǎng)絡(luò)了。從另一方面來說,如果同一時刻網(wǎng)絡(luò)輸入到輸出之間的路徑為_x001A_??_x001B_??_x001B_→_x001A_??_x001B_??_x001B_,那么這個網(wǎng)絡(luò)是非常淺的。既然增加深度可以極大地增強前饋神經(jīng)網(wǎng)絡(luò)的處理能力,那么如何增加循環(huán)神經(jīng)網(wǎng)絡(luò)的深度呢?增加循環(huán)神經(jīng)網(wǎng)絡(luò)的深度主要是增加同一時刻網(wǎng)絡(luò)輸入到輸出之間的路徑_x001A_??_x001B_??_x001B_→_x001A_??_x001B_??_x001B_

,比如增加隱藏狀態(tài)到輸出_x001A_?_x001B_??_x001B_→_x001A_??_x001B_??_x001B_,以及輸入到隱藏狀態(tài)_x001A_??_x001B_??_x001B_→_x001A_?_x001B_??_x001B_之間的路徑的深度。8.3

深層循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3134一種常見的做法是將多個循環(huán)網(wǎng)絡(luò)堆疊起來,稱為堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)(StackedRecurrentNeuralNetwork,SRNN)。一個堆疊的簡單循環(huán)神經(jīng)網(wǎng)絡(luò)也稱為循環(huán)網(wǎng)絡(luò)多層感知器(RecurrentMulti-layerPerception,RMLP)。下圖給出了按時間展開的堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)。h1(3)x1y1h2(3)x2y2h3(3)x3y3h4(3)x4y4hT(3)xTyTh1(2)h2(2)h3(2)h4(2)hT(2)h1(1)h2(1)h3(1)h4(1)hT(1)按時間展開的堆疊循環(huán)神經(jīng)網(wǎng)絡(luò)8.3

深層循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)(8-39)式(8-39)中,_x001A_??_x001B__x001A_??_x001B__x001B_,_x001A_??_x001B__x001A_??_x001B__x001B_和_x001A_??_x001B__x001A_??_x001B__x001B_為權(quán)重矩陣和偏置向量,當??=1時,_x001A_?_x001B_??_x001B__x001A_0_x001B__x001B_=_x001A_??_x001B_??_x001B_。第八章循環(huán)神經(jīng)網(wǎng)絡(luò)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理8.2改進的循環(huán)神經(jīng)網(wǎng)絡(luò)8.3深層循環(huán)神經(jīng)網(wǎng)絡(luò)8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)of31368.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用習題8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3137從單向的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中可以知道它的下一刻預(yù)測輸出是根據(jù)前面多個時刻的輸入來共同影響的,而有些時候預(yù)測可能需要由前面若干輸入和后面若干輸入共同決定,這樣會更加準確。鑒于單向循環(huán)神經(jīng)網(wǎng)絡(luò)在某些情況下的不足,提出了雙向循環(huán)神經(jīng)網(wǎng)絡(luò),因為在許多應(yīng)用中是需要能關(guān)聯(lián)未來的數(shù)據(jù),而單向循環(huán)神經(jīng)網(wǎng)絡(luò)屬于關(guān)聯(lián)歷史數(shù)據(jù),所以對于未來數(shù)據(jù)的關(guān)聯(lián)就提出了反向循環(huán)神經(jīng)網(wǎng)絡(luò),兩個方向的網(wǎng)絡(luò)結(jié)合到一起就能關(guān)聯(lián)歷史與未來了。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BidirectionalRecurrentNeuralNetwork,Bi-RNN)由兩層循環(huán)神經(jīng)網(wǎng)絡(luò)組成,它們的輸入相同,只是信息傳遞的方向不同。8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of3138雙向循環(huán)神經(jīng)網(wǎng)絡(luò)按時刻展開的結(jié)構(gòu)如圖8-17所示,可以看到向前和向后層共同連接著輸出層,其中包含了6個共享權(quán)值,分別為輸入到向前層和向后層兩個權(quán)值、向前層和向后層各自隱含層到隱含層的權(quán)值、向前層和向后層各自隱含層到輸出層的權(quán)值。x1y1x2y2x3y3x4y4xTyTh1(2)h2(2)h3(2)h4(2)hT(2)h1(1)h2(1)h3(1)h4(1)hT(1)+++++按時間展開的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)假設(shè)第1層按時間順序,第2層按時間逆序,在時刻??時的隱藏狀態(tài)定義為_x001A_?_x001B_??_x001B__x001A_1_x001B__x001B_和_x001A_?_x001B_??_x001B__x001A_2_x001B__x001B_,則(8-40)式(8-42)中,⊕為向量拼接操作。從圖8-17以及式(8-40)、式(8-41)以及式(8-42)中可以看出一般的規(guī)律:正向計算時,隱藏層的值_x001A_?_x001B_??_x001B__x001A_1_x001B__x001B_與_x001A_?_x001B_???1_x001B__x001A_1_x001B__x001B_有關(guān);反向計算時,隱藏層的值_x001A_?_x001B_??_x001B__x001A_2_x001B__x001B_與_x001A_?_x001B_??+1_x001B__x001A_2_x001B__x001B_有關(guān);最終的輸出取決于正向和反向計算的求和。從式(8-40)、式(8-41)以及式(8-42)中還可以看到,正向計算和反向計算不共享權(quán)值,也就是說_x001A_??_x001B__x001A_1_x001B__x001B_和_x001A_??_x001B__x001A_2_x001B__x001B_、_x001A_??_x001B__x001A_1_x001B__x001B_和_x001A_??_x001B__x001A_2_x001B__x001B_、_x001A_??_x001B__x001A_1_x001B__x001B_和_x001A_??_x001B__x001A_2_x001B__x001B_、_x001A_??_x001B__x001A_1_x001B__x001B_和_x001A_??_x001B__x001A_2_x001B__x001B_都是不同的權(quán)重矩陣。雙向RNN需要的內(nèi)存是單向RNN的兩倍,因為在同一時間點,雙向RNN需要保存兩個方向上的權(quán)重參數(shù),在分類的時候,需要同時輸入兩個隱藏層輸出的信息。(8-41)(8-42)第八章循環(huán)神經(jīng)網(wǎng)絡(luò)8.1循環(huán)神經(jīng)網(wǎng)絡(luò)的工作原理8.2改進的循環(huán)神經(jīng)網(wǎng)絡(luò)8.3深層循環(huán)神經(jīng)網(wǎng)絡(luò)8.4雙向循環(huán)神經(jīng)網(wǎng)絡(luò)of31408.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用習題8.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用第八章循環(huán)神經(jīng)網(wǎng)絡(luò)of31411.情感分析情感分析(SentimentAnalysis),又稱傾向性分析,意見抽取(OpinionExtraction),意見挖掘(OpinionMining),情感挖掘(SentimentMining),主觀分析(SubjectivityAnalysis),它是對帶有情感色彩的主觀性文本進行分析、處理、歸納和推理的過程。情感分析最常用的做法就是在文中找到具有各種感情色彩屬性的詞,統(tǒng)計每個屬性詞的個數(shù),哪個類多,這段話就屬于哪個屬性。但是這存在一個問題,例如don'tlike,一個屬于否定,一個屬于肯定,統(tǒng)計之后變成0了,而實際上應(yīng)該是否定的態(tài)度。再有一種情況是,前面幾句是否定,后面又是肯定,那整段到底是中立還是肯定呢,為了解決這樣的問題,就需要考慮上下文的環(huán)境。8.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用第八章循環(huán)神經(jīng)網(wǎng)絡(luò)2.語音識別語音識別技術(shù)是一門交叉技術(shù),近二十年來,語音識別技術(shù)取得顯著進步,開始從實驗室走向市場。人們預(yù)計,未來10年內(nèi),語音識別技術(shù)將進入工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務(wù)、消費電子產(chǎn)品等各個領(lǐng)域。語音識別技術(shù),也被稱為自動語音識別,其目標是將人類的語音中的詞匯內(nèi)容轉(zhuǎn)換為計算機可讀的輸入,要實現(xiàn)語音識別,其實現(xiàn)過程如圖所示。語音識別方法主要是模式匹配法,其包括兩個階段,其一是訓練階段,用戶將詞匯表中的所有詞依次說一遍,并且將其特征矢量作為模板存入模型庫;其二是識別階段,將輸入語音的特征矢量依次與模型庫中的每個模板進行相似度比較,將相似度最高者作為識別結(jié)果的輸出。語音識別過程8.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用第八章循環(huán)神經(jīng)網(wǎng)絡(luò)3.機器翻譯機器翻譯(MachineTranslation,簡稱MT)是采用電子計算機來進行自然語言之間翻譯的一門新興實驗性學科,是將一種源語言語句變成意思相同的另一種源語言語句,如將英語語句變成同樣意思的中文語句。機器翻譯也是計算語言學的一個應(yīng)用領(lǐng)域,它的研究是建立在語言學、數(shù)學和計算技術(shù)這三門學科的基礎(chǔ)之上,語言學家提供適合于機器進行加工的詞典和語法規(guī)則,數(shù)學家把語言學家提供的材料進行形式化和代碼化,計算技術(shù)專家給機器翻譯提供軟件手段和硬件設(shè)備,缺少上述任何一方面,機器翻譯就不能實現(xiàn)。機器翻譯效果的好壞,也完全取決于上述三方面的共同努力。機器翻譯與語言模型的關(guān)鍵區(qū)別在于,機器翻譯需要將源語言語句序列輸入后,才進行輸出,即輸出第一個單詞時,便需要從完整的輸入序列中進行獲取第二個單詞、依次進行。8.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用第八章循環(huán)神經(jīng)網(wǎng)絡(luò)3.機器翻譯機器翻譯如圖所示。將整個句子輸入循環(huán)神經(jīng)網(wǎng)絡(luò)后,這個時候最后一刻的輸出就已經(jīng)處理完了整個句子。機器翻譯示意圖8.5循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用第八章循環(huán)神經(jīng)網(wǎng)絡(luò)4.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語言模型基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語言模型就是把詞依次輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)中,每輸入一個詞,循環(huán)神經(jīng)網(wǎng)絡(luò)就輸出截止到目前為止,下一個最可能的詞。例如,當依次輸入:我-昨天-上學-遲到-了。神經(jīng)網(wǎng)絡(luò)的輸出如圖所示。RNN輸入與輸出示例8.5循環(huán)神

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論