版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章:循環神經網絡1986年,Elman等人提出了用于處理序列數據的循環神經網絡(RecurrentNeuralNetwork,RNN),如同CNN是專門用于處理二維數據信息(如圖像)的神經網絡,RNN是一個在時間上傳遞,且專用于處理序列信息的神經網絡,網絡的深度就是時間的長度。在傳統的前饋神經網絡中,每一層的神經元信號只能向下一層傳播,樣本的處理在時刻上是獨立的,但由于RNN具有循環連接,神經元在這個時刻的輸出可以直接影響下一個時間點的輸入,因此該神經網絡能夠處理和預測時間序列方面的問題。如果將CNN看成是前饋神經網絡的具體化,那么RNN則是反饋神經網絡的具體化。RNN不僅可以擴展到更長的序列,還可以處理可變長度的序列,因此RNN的誕生解決了傳統神經網絡在處理序列信息方面的局限性。本章將首先介紹序列的特征,然后重點介紹RNN原理及它的兩個重要子集LSTM和GRU,最后介紹RNN在各個領域中的應用。引言第五章
循環神經網絡第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.1序列的特征5.1.1序列的概念5.1.2序列的意義5.1.1序列的概念序列不僅是RNN讀取數據的方式,而且是RNN最為獨特的特征。那么到底什么才是序列呢?讓我們拋棄抽象的數學定義,直接給出生活中隨處可見的例子:1、句子、段落、文章等都可以看作是文本序列,其通常會被切分成一個個單詞或字符,形成一個序列,如圖5.1所示:圖5.1
字符串序列2、一段視頻是一系列圖像幀組成的序列,如圖5.2所示:圖5.2
圖片序列5.1.1序列的概念3、一條按照時間順序記錄的溫度數據組成的序列,如圖5.3所示:圖5.3
數據序列除了以上的例子,常見的序列還有時間和振幅構成的音頻信號、生物堿基組成的DNA、圖像的行或列等等。序列是指按時間順序排列的一組數據點,每個數據點通常對應于特定的時刻。廣義上來說,任何按照有序排列的數據都可以被認為是一個序列,其中每個元素被稱為序列的一個項。另外,序列可以是有限的,也可以是無限的。總的來說,序列數據通常具有時間順序或空間上的關聯,它的順序性是其主要特征,序列中項的位置信息對于理解和處理數據具有重要意義。因此序列在許多領域中都有廣泛的應用,包括自然語言處理、時間序列分析、音頻處理等。5.1序列的特征5.1.1序列的概念5.1.2序列的意義5.1.2序列的意義普通神經網絡只能單獨處理一個個的輸入,前一個輸入和后一個輸入是完全沒有關系的。但是,某些任務需要理解和處理序列信息,即分析前面輸入和后面輸入的關系。比如,在理解一句話的意思時,單獨理解這句話的每個詞是不行的,需要處理這些詞連接起來的整個字符串序列。又比如,處理視頻的時候,不能單獨分析視頻的每一幀,而是要分析這些幀連接起來的整個圖片序列。5.1.2序列的意義以自然語言處理的一個最簡單詞性標注任務來說:1.任務的要求:將“我
愛
跑步”三個單詞標注詞性為
我/n愛/v跑步/n。2.任務的輸入是:我
愛
跑步(已經分詞好的句子)。3.任務的輸出是:我/n愛/v跑步/n(詞性標注好的句子)。對于這個任務來說,當然可以直接用普通的神經網絡來做,給網絡訓練數據格式:“我”→單獨的單詞標注,“愛”→單獨的單詞標注,“跑步”→單獨的單詞標注。但是很明顯,一個句子中,按照語法規則來說,前一個單詞的詞性對于當前單詞的詞性預測是有很大影響的。比如預測“跑步”的時候,由于前面的“愛”是一個動詞,那么很顯然跑步作為名詞的概率就會遠大于動詞的概率,這是因為動詞后面接名詞很常見,而動詞后面接動詞很少見。為了解決一些類似的問題,能夠更好地處理和利用序列的信息,RNN就誕生了。第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.2循環神經網絡的模型5.2.1RNN的結構5.2.2RNN的訓練5.2.3RNN的實現5.2.1RNN的結構RNN跟傳統神經網絡最大的區別在于每次都會將前一次的輸出結果,帶到下一次的隱藏層中,一起訓練。在RNN結構中,每個時間步都有一個隱藏狀態(HiddenState),它可以接收當前時間步的輸入和上一個時間步的隱藏狀態作為新輸入。隱藏狀態的輸出不僅取決于當前時間步的輸入,還取決于之前所有時間步的輸入,即一個序列當前的輸出與前面的輸出也有關,會對前面的信息進行記憶并應用于當前輸出的計算中。這種循環連接使得RNN在處理序列時保持一種記憶狀態,不僅可以處理變長序列,還能捕捉到序列中的時序信息,RNN的結構如圖
5.4所示。圖中每個圓圈可以看作是一個單元,而且同一顏色的單元做的事情也是一樣的,x表示時間序列輸入,h表示隱藏層的值,o為輸出層的值,上標表示層數,下標表示時間圖5.4
RNN的結構圖5.2.1RNN的結構進一步,整個RNN結構可以折疊成圖5.5中左半圖的形式,圖中U、W、V分別為前一隱藏層的輸入連接權值、當前時刻的輸入連接權值和當前時刻的輸出連接權值。RNN在t時刻展開時,如圖5.5右半圖所示,從圖中可以看出RNN的關鍵點是ht的值不僅取決于xt,還取決于ht-1。圖5.5RNN結構簡化圖總體上講,RNN的整體結構就是其中一個單元網絡結構的重復使用,因此稱為循環神經網絡。相比普通的神經網絡,RNN的不同之處在于其隱藏層之間的節點是有連接的,并且隱藏層的輸入不僅包括輸入層的輸入還包括上一時刻隱藏層的輸出,這使得RNN可以通過循環反饋連接保留前面所有時刻的信息,賦予了RNN記憶功能,這些特點促使RNN非常適用于對時序信號的建模和預測。5.2循環神經網絡的模型5.2.1RNN的結構5.2.2RNN的訓練5.2.3RNN的實現5.2.2RNN的訓練RNN的訓練是一種基于時間的反向傳播算法(BackPropagationThroughTime,BPTT)。該算法是針對循環層設計的訓練算法,它的基本原理和反向傳播算法一樣,包含三個步驟:1.前向計算每個神經元的輸出值;2.反向計算每個神經元的誤差項值,它是誤差函數E對神經元J的加權輸入的偏導數;3.計算每個權值的梯度,進一步用隨機梯度下降算法更新連接權值。在t時刻輸入xt與隱藏層ht的關系可以用以下數學公式表達:或者式中f是隱藏層激活函數,通常是非線性的,例如Tanh函數或ReLU函數,bt為偏置值。從上式可以看到,ht不僅和當時時刻的輸入xt有關,也和上一時刻的隱藏層ht-1有關。在一般神經網絡中,每一個網絡層的參數不是共享的,而在RNN中,所有層均共享同樣的參數U,W,V,只是輸入不同,因此大大地減少了網絡中需要學習的參數。5.2循環神經網絡的模型5.2.1RNN的結構5.2.2RNN的訓練5.2.3RNN的實現5.2.3RNN的實現從RNN的結構特征可以看出,它適合解決與時間序列相關的問題。可以將一個序列上不同時刻的數據依次傳入RNN的輸入層,而輸出是對序列中下一個時刻的預測,也可以是對當前時刻信息的處理結果。RNN要求每一個時刻都有一個輸入,但是不規定每一個時刻都需要有輸出。RNN往前看可以獲得任意多個輸入值,其輸出層o和隱藏層h的遞歸推導方法如下:如果反復把上式代入,得到:式中g是輸出層激活函數,通常為Softmax函數。從上述遞歸推導可以看出,RNN的輸出層o和輸入信息xt的前t個時刻都有關,即當前時刻的輸出包含了歷史信息,這說明RNN對歷史信息進行了保存。5.2.3RNN的實現在RNN的實現中,有幾點需要注意:(1)可以將隱藏的狀態ht看作網絡的記憶,它捕獲有關所有先前時間步驟中發生的事件的信息,輸出ot根據時間t的記憶計算,但在實踐中,ht通常無法從太多時間步驟中捕獲信息。另外,時間t的計算依賴t-1時刻的計算結果,這樣限制了模型的并行能力,同時順序計算的過程中RNN會因為長期依賴導致信息丟失問題。(2)與每層使用不同參數的傳統深度神經網絡不同,RNN共享相同的參數,這反映了在每個步驟執行相同任務的事實,只是使用不同的輸入,這大大減少了需要學習的參數總數。第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.3LSTM神經網絡RNN的主要缺點是長期依賴問題。最有效的解決方法是進行選擇性遺忘,同時也進行有選擇的更新。1997年,Hochreiter和Schmidhuber提出了長短期記憶單元(LongShort
TermMemory,LSTM)神經網絡,它是RNN的一種特殊類型,使用“累加”的形式計算狀態,這種累加形式導致網絡導數也是累加形式,從而解決了標準RNN時間維度的梯度消失問題。另外,標準RNN結構的存儲上下文信息的范圍有限,從而限制了RNN的應用。5.3LSTM神經網絡LSTM型循環神經網絡用LSTM單元替換標準結構中的神經元節點,每個LSTM單元使用輸入門、輸出門和遺忘門控制序列信息的傳輸,從而實現較大范圍上下文信息的保存與傳輸,相比普通的RNN,LSTM能夠在更長的序列中有更好的表現。普通RNN只有記憶單元(MemoryCell)用來存儲所有的信息,而LSTM多了輸入門、輸出門和遺忘門,如圖5.6所示。如何理解這里的門呢?在現實生活中,門就是用來控制進出的,門關上了,你就進不去房子了,門打開你才能進去,同理,這里的門是用來控制每一時刻信息的記憶與遺忘。也就是說,LSTM會選擇性地存儲信息,因為它能力強,具有門控裝置,所以可以盡情地選擇。圖5.6
LSTM門的作用5.3LSTM神經網絡5.3.1LSTM的結構5.3.2LSTM的特點5.3.1LSTM的結構所有RNN都是一個重復結構的模型。在標準的RNN中,重復結構是一個簡單的循環體,一個使用普通Tanh函數的RNN可以用圖5.7表示。在這里,可以看到t-1時刻的輸出值ht-1被復制到了t時刻,與t時刻的輸入xt整合后經過一個帶權重和偏置的Tanh函數后形成輸出ht,并繼續將數據復制到t+1時刻......5.3.1LSTM的結構然而LSTM的循環體是一個擁有多個相互關聯的全連接網絡的復制結構,如圖5.8所示,圖中x為輸入數據,h為LSTM單元的隱藏層輸出,具有短期記憶功能,C為LSTM內存單元的值,能夠保持長期記憶??梢詫⑸窠浽碾[藏態簡單理解成遞歸神經網絡對于輸入數據的"記憶",用Ct表示神經元在t時刻過后的"記憶",這個向量涵蓋了在t+1時刻前神經網絡對于所有輸入信息的概括總結。由于隱藏態和記憶共同作用,所以稱此結構為LongShort-TermMemory。5.3.1LSTM的結構LSTM利用前面提到的遺忘門、輸入門和輸出門三個門來管理和控制神經元的狀態信息。LSTM的更新與前向傳播一樣,可以分為以下四個步驟:(1)遺忘門LSTM的第一步是用遺忘門(ForgetGate)來控制歷史信息對當前記憶單元狀態值的影響,為記憶單元提供重置的方式,即確定從上一個時刻的狀態中遺忘或丟棄一些信息。具體來說,遺忘門的任務就是接收一個長期記憶Ct-1(上一個單元模塊傳過來的輸出)并決定要遺忘Ct-1的哪個部分。比如,在語言模型中,我們想要通過一個詞來預測下一個詞,單元模塊Ct-1中可能包含一些下一個模塊單元不需要的屬性,就可以將這些屬性在單元模塊C中遺忘。5.3.1LSTM的結構LSTM的遺忘門是一個具有
Sigmoid全連接的前饋神經網絡,如圖5.9所示。圖5.9LSTM的遺忘門
5.3.1LSTM的結構(2)輸入門:LSTM的第二步用輸入門(InputGate)來控制當前輸入數據對記憶單元狀態值的影響,即確定哪些輸入信息要保存到神經元的單元狀態中。LSTM的輸入門是由兩個全連接前饋神經網絡組成的,如圖5.10所示。圖5.10
LSTM的輸入門
5.3.1LSTM的結構
圖5.11LSTM的狀態控制5.3.1LSTM的結構(4)輸出門最后一步就是用輸出門(OutputGate)來控制記憶單元狀態值的輸出,如圖5.12所示。首先通過Sigmoid層生成一個過濾向量ot,來確定單元狀態的哪部分需要輸出,然后通過一個Tanh函數計算當前時刻的Ct狀態向量,即將向量中的每個元素的范圍變換到[-1,1]之間,最后,兩者相乘得到輸出ht。其函數關系為:圖5.12LSTM的輸出門5.3LSTM神經網絡5.3.1LSTM的結構5.3.2LSTM的特點5.3.2LSTM的特點
根據LSTM的原理可知,主要有以下特點:(1)三個門結構:LSTM包含三個門結構,分別為輸入門、遺忘門和輸出門。這些門決定了信息如何進入、被存儲或被遺忘,以及如何輸出。(2)記憶:LSTM的核心是稱為記憶的結構,它可以保留、修改或訪問內部狀態。通過門結構,模型可以學會在記憶中何時存儲、忘記或檢索信息。(3)梯度消失問題:LSTM特別擅長學習、存儲和使用長期信息,從而避免了傳統RNN在長序列上的梯度消失問題。5.3.2LSTM的特點
總的來說,LSTM適合時間序列建模,主要有以下原因:(1)序列數據的特性:時間序列數據具有順序性,先前的數據點可能會影響后面的數據點,LSTM設計之初就是為了處理帶有時間間隔、延遲和長期依賴關系的序列數據。(2)長期依賴:在時間序列分析中,某個事件可能會受到很早之前事件的影響,傳統的RNN由于梯度消失的問題,很難捕捉這些長期依賴關系,但是LSTM結構可以有效地處理這種依賴關系。(3)記憶細胞:對于時間序列預測,能夠記住過去的信息是至關重要的,LSTM的記憶細胞可以為模型提供這種存儲和檢索長期信息的能力。(4)靈活性:LSTM模型可以與其他神經網絡結構(如CNN)結合,用于更復雜的時間序列任務,例如多變量時間序列或序列生成。第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.4GRU神經網絡門控循環單元(GatedRecurrentUnit,GRU)是LSTM的一種變體,與傳統的RNN不同,GRU通過一系列門控機制來控制信息的流動,以便更有效地捕捉長期依賴關系,是一種用于處理序列數據的神經網絡模型,雖然GRU的實驗效果與LSTM相似,但是前者更易于計算,從某種程度上,GRU也是對LSTM結構復雜化的優化。其核心思想是使用門控機制來控制信息的流動和記憶,將前一時刻的隱狀態信息傳遞到下一時刻。相比于傳統的RNN,它能夠更好地處理長期依賴問題,而相比于LSTM,它的結構更簡單,參數更少,計算更高效。5.4GRU神經網絡5.4.1GRU的結構5.4.2GRU的特點5.4.1GRU的結構與LSTM不同的是,首先GRU只有兩個門控結構,分別是重置門(ResetGate)和更新門(UpdateGate),而沒有遺忘門。重置門控制要遺忘多少過去的信息,更新門控制前面記憶信息繼續保留到當前時刻的數據量,或者說決定有多少前一時間步的信息和當前時間步的信息要被繼續傳遞到未來。其次,GRU取消直接線性自更新的記憶單元,而是在隱藏單元中利用門控進行線性自更新,公式化表達如下:
5.4.1GRU的結構(1)更新門圖5.13展示了更新門在整個單元的位置和運算過程。具體地,在時間步t,首先使用公式:計算更新門,其中xt為第t個時間步的輸入向量,即輸入信息x的第t個分量,它會經過一個線性變換(與權值矩陣Wz相乘)。ht-1保存的是前一個時間步t-1的信息,它同樣也會經過一個線性變換。更新門將這兩部分信息拼接并輸入到Sigmoid激活函數中,通過激活函數將結果壓縮0到1之間,其中0表示完全忽略之前的隱狀態信息,只依賴于當前的輸入信息,1表示完全保留之前的隱狀態信息,因此更新門可以讓網絡選擇性地記住或忘記之前的狀態信息。圖5.13
GRU的更新門也就是說,更新門的作用是幫助模型決定到底要將多少過去的信息傳遞到未來,或決定到底前一時間步和當前時間步的信息有多少是需要繼續傳遞的。這一點非常重要,因為模型能決定從過去復制所有的信息以減少梯度消失的風險。(2)重置門本質上來說,重置門主要決定了到底有多少過去的信息需要遺忘,可以使用前面的公式:該表達式與更新門的表達式是一樣的,ht-1和xt先經過一個線性變換,再拼接輸入到Sigmoid激活函數以輸出激活值,只不過與更新門線性變換的參數和用處不一樣而已,圖5.14展示了重置門的位置和運算過程。5.4.1GRU的結構圖5.14GRU的重置門5.4.1GRU的結構(3)當前記憶內容接下去具體討論一下這些控制門如何影響最終的輸出,圖5.15展示了該計算過程。在重置門的使用中,新的記憶內容將通過重置門來儲存過去相關的信息,可以使用前面的公式:圖5.15當前記憶內容首先計算重置門rt與ht-1的Hadamard乘積,因為前面計算的重置門是一個由0到1組成的向量,它會衡量門控開啟的大小,比如某個元素對應的門控值為0,那么它就代表這個元素的信息完全被遺忘掉,即Hadamard乘積結果將確定所要保留與遺忘的以前信息。然后經過一個線性變換,即左乘權值矩陣W,同時輸入xt也經過同樣的一個線性變換,最后將這兩部分的計算結果拼接再輸入到Tanh激活函數中,其輸出作為當前的記憶內容。5.4.1GRU的結構(4)當前時間步的最終記憶最后一步,網絡需要計算ht,其目的是保留當前單元的信息并傳遞到下一個單元中。在這個過程中,需要使用更新門,它決定了當前記憶內容h和前一時間步ht-1中所收集的信息是什么。整個過程可以使用前面的公式:其中zt為更新門的激活結果,它以門控的形式控制了信息的流入。1-zt與ht-1的Hadamard乘積表示前一時間步保留到最終記憶的信息,該信息加上當前記憶保留至最終記憶的信息(zt與ht-1的Hadamard乘積)就等于最終門控循環單元輸出的內容,上述表達可以用圖5.16所示。圖5.16當前時間步的最終記憶5.4.1GRU的結構通過門控機制,GRU能夠更靈活地管理信息流動,并在每個時間步中適應序列數據的不同特征。此外,GRU不會隨時間而清除以前的信息,它會保留相關的信息并傳遞到下一個單元,也就是說,它利用了全部信息并避免梯度消失問題,使得其在長期依賴建模和序列任務中具有優秀的性能表現。5.4GRU神經網絡5.4.1GRU的結構5.4.2GRU的特點5.4.2GRU的特點根據GRU的原理可知,GRU主要有以下優點:(1)由于門控機制允許選擇性信息保留和遺忘,因此比傳統RNN更擅長捕獲長期依賴性信息。(2)相比LSTM,GRU只有兩個門控機制(重置門和更新門),結構更為簡單。(3)比其他類型的RNN更少的參數,需要更少的訓練時間,并且不易過度擬合。(4)可用于各種NLP任務,包括語言建模、情感分析和機器翻譯。5.4.2GRU的特點GRU的缺點:(1)在需要對復雜的順序依賴關系進行建模的任務中,它的表現可能不如LSTM。(2)門控機制的解釋和網絡內的信息流可能比傳統的RNN更難。(3)可能需要對超參數進行一些調整以實現最佳性能。(4)在處理非常長的序列時,可能仍然會遇到與其他類型的RNN相同的問題,例如梯度消失問題。第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.5梯度消失和爆炸無論是CNN還是RNN,其基本構成都是神經網絡,因此神經網絡的優化不可避免會使用反向傳播算法,也就是說,各網絡層的梯度計算會涉及激活函數的導函數取值。隨著神經網絡的層數變多、結構越來越復雜,模型在訓練過程中就會遇到梯度消失和梯度爆炸導致模型不能有效收斂。5.5梯度消失和爆炸梯度消失(VanishingGradient)指的是在反向傳播過程中,隨著網絡深度的增加,梯度逐漸變得非常小,甚至接近于零,導致網絡參數無法有效更新,從而訓練無法進行或收斂非常緩慢。將梯度傳播過程想象在爬一座很高的山(網絡的層數很多),你希望通過不斷得到反饋來指導向上爬得更高(訓練模型)。但是,你的教練在給你反饋的時候,每次反饋的力度越來越小,就像每次告訴你“向上爬”時,給你的鼓勵聲越來越微弱,甚至最后變成了耳語。結果,你聽不清楚反饋,甚至最終聽不到任何聲音,導致你根本不知道自己應該做什么,爬得越來越慢,甚至停下來不動。在深度神經網絡中,梯度消失就像這種情況,網絡在反向傳播時,逐層的梯度(就是反饋信息)變得越來越小,最終導致網絡的學習幾乎停止,模型無法更新。5.5梯度消失和爆炸梯度爆炸(ExplodingGradient)是指在反向傳播過程中,梯度變得非常大,導致權重更新過于劇烈,網絡參數無法穩定訓練,甚至可能導致數值溢出。同樣類比于前面的爬山,教練給你的反饋很強烈,每次都是“爬得更快”,這聽起來不錯,但問題是,教練的聲音越來越大,每次反饋都比前一次強烈得多。最后,你根本無法承受這么大的力量,導致你失去控制,甚至可能摔倒。在神經網絡中,梯度爆炸就像這種情況,反饋的強度(梯度)變得非常大,導致網絡的權重(就像你爬山時的步伐)調整得過于劇烈,訓練過程變得不穩定。5.5梯度消失和爆炸
從上式就能看出,存在d-i次導數矩陣連乘,如果每一項的偏導數都大于1或者小于1,并且網絡層數足夠深,就會產生梯度爆炸或梯度消失的問題,就比如:5.5梯度消失和爆炸進一步分析RNN的梯度消失和梯度爆炸問題,它與CNN略有不同。CNN中不同的層有不同的參數,各是各的梯度,而RNN中同樣的權重在各個時間步共享,但由于通過時間進行反向傳播梯度,最終的梯度等于各個時間步的梯度的和?;仡檲D5.5,并結合多變量函數的鏈路法則,損失L關于輸入權值U的梯度可表示為可以看到,在這個結果中,導數包含了T部分,其中最后一部分包含了和CNN類似的偏導相乘,這也是導致RNN梯度消失或爆炸的關鍵。注意,T表示總的時間步數,oT表示最后一步的輸出。那為何LSTM能緩解梯度消失或梯度爆炸問題呢?這是因為LSTM構建了一條信息高速公路,允許梯度直接流動。根據圖5.8,并結合鏈路法則,可以得到時間步t到t-k的梯度(推導過程參考相關文獻)為5.5梯度消失和爆炸當網絡學習到
(保留記憶)時,存在通過以上分析可知,LSTM通過細胞狀態的線性記憶通道和門控的可控衰減因子,在數學本質上顯著緩解了梯度消失問題。這種“以門控守護梯度”的設計思想,啟發了后續GRU等架構的創新,成為網絡解決時序問題的里程碑突破。5.5梯度消失和爆炸因此,網絡層數的增加會加劇梯度消失或爆炸的風險,那么如何來避免或緩解這兩種情況的發生呢?針對梯度爆炸問題,相對比較簡單,采用的方法包括梯度裁剪和權值正則化。其中梯度裁剪的主要思想是設置一個梯度剪切閾值,然后在更新梯度的時候,如果梯度超過這個閾值,那么就將其強制限制在這個范圍之內,這樣就可以防止梯度爆炸。而正則化則是通過對網絡權重做正則限制過擬合來防止梯度爆炸,具體地其中λ是正則項系數,如果發生梯度爆炸,權值的范數||W||會變得非常大,通過正則化項,可以選L1范數正則或L2范數正則,可以部分限制梯度爆炸的發生,后續第12章也會專門解釋正則化。5.5梯度消失和爆炸對于梯度消失問題,具體的解決方法包括:
1.
選擇ReLU函數作為激活函數。這是因為ReLU函數的導數在正數部分是恒等于1,因此在深層網絡中不會導致梯度消失和爆炸,然而導數的負數部分恒為0,也會導致一些神經元無法激活。2.
使用批歸一化(BatchNormalization)。其是一種通過在每層的輸入上對數據進行標準化來減少梯度變化的方法,它通過對當前小批次的均值和方差進行歸一化,使得每一層的輸入分布保持穩定,這樣可以有效解決每一層的輸入分布隨著網絡參數的更新而發生變化的現象。批歸一化不僅有助于提高網絡的訓練速度和穩定性,還可以在一定程度上緩解梯度爆炸問題。因為通過歸一化處理,每一層的輸入數據的分布變得更加穩定,從而使得梯度的變化也更加平穩。3.
使用殘差連接。如在前面提到的ResNet中,殘差連接通過直接將輸入信息傳遞到后續層,避免梯度過度衰減,使得梯度更容易傳遞到前層。4.
權重初始化。采用合適的權重初始化方法,可以有效控制梯度的大小,避免過大或過小。第五章
循環神經網絡5.1序列的特征5.2循環神經網絡的模型5.3LSTM神經網絡5.4GRU神經網絡5.5梯度消失和爆炸5.6RNN的應用5.6RNN的應用5.6.1文本生成5.6.2機器翻譯5.6.3情感分析5.6.4股票預測5.6.5語音處理5.6.6圖像描述5.6.1文本生成所謂的文本生成,其原理就是根據前一個字符(或前一串字符)來預測下一個字符出現的概率。文本生成是一種語言建模問題,是許多NLP任務的核心,包括語音到文本、對話系統和文本摘要。經過訓練的語言模型可以根據文本中先前使用的單詞序列來學習單詞出現的可能性。在預測的時候需要給RNN一段初始的序列進行預訓練,預訓練的過程并不需要實際的輸出結果,只是為了生成具有記憶的隱藏狀態,然后將隱藏狀態保留,傳入之后的網絡,不斷地更新句子,直到達到要求的輸出長度。如圖5.17所示,生成文本的過程就是每個字不斷輸入網絡,然后將輸出作為下一次的輸入,不斷循環遞歸,因為其會無限循環下去,因此需要設置一個長度讓其停止。圖5.17文本生成5.6RNN的應用5.6.1文本生成5.6.2機器翻譯5.6.3情感分析5.6.4股票預測5.6.5語音處理5.6.6圖像描述5.6.2機器翻譯經機器翻譯是模擬人腦的翻譯過程,近年來發展非常迅速,已經遠遠超過統計機器翻譯,成為機器翻譯的主流技術。接下去來簡單描述下神經機器翻譯的過程,主要包括編碼和解碼兩個重要步驟。如圖5.18所示,給定源語言句子“Growthratesaresteadyinrecentyears.”,RNN在每個時刻,根據上一個時刻的隱藏層ht-1和當前的輸入xt,生成當前時刻的隱藏狀態ht,并基于當前的隱藏狀態預測當前時刻的可能輸出,這個過程類似前面提到的文本生成。圖5.18機器翻譯編碼過程5.6.2機器翻譯具體地,機器翻譯的編碼過程基本如下:首先將句子里的第一個詞“Growth”輸入RNN,產生第一個隱藏狀態h1,此時隱藏狀態h1便包含了第一個詞“Growth”的信息。下一步輸入第二個詞“rates”,RNN將第二個詞的信息同第一個隱藏狀態h1進行融合,產生第二個隱藏狀態h2,如此則第二個隱藏狀態h2便包含了前兩個詞“Growthrates”的信息。用同樣的方法依次將源語言句子里所有的詞輸入網絡,每輸入一個詞都會同前一時刻的隱藏狀態進行融合,產生一個包含當前詞信息和前邊所有詞信息的新隱藏狀態。當把整個句子所有的詞輸入進去之后,最后的隱藏狀態理論上包含了所有詞的信息,便可以作為整個句子的語義向量表示,該語義向量稱為源語言句子的上下文向量。5.6.2機器翻譯從上面的描述可知,編碼器將源語言句子編碼為一個源語言句子的上下文向量,解碼器的任務就是根據編碼器生成的該上下文向量,生成目標語言句子的符號化表示,如圖5.19所示。圖5.19機器翻譯解碼過程具體地,給定源語言的上下文向量,解碼器首先產生第一個隱藏狀態s1,并基于該隱藏狀態預測第一個目標語言詞“近”,然后第一個目標語言詞“近”會被作為下一個時刻的輸入,連同第一個隱藏狀態s1以及上下文向量Ct,來產生第二個隱藏狀態s2,該隱藏狀態s2包含了目標語言句子第一個詞“近”的信息和源語言句子的信息,并用來預測目標語言句子第二個詞“幾年”。第二個目標語言詞“幾年”會被再次作為輸入來產生第三個隱藏狀態,如此循環下去,直到預測到一個句子的結束符</S>為止。5.6RNN的應用5.6.1文本生成5.6.2機器翻譯5.6.3情感分析5.6.4股票預測5.6.5語音處理5.6.6圖像描述5.6.3情感分析情感分析在第1章中也簡單提到,其是一種將自然語言文本情感進行分類或分析的技術,意在提煉出一句話中的感情色彩,比如高興,普通,驚訝,傷心,憤怒等。但一般為了簡化問題,會將這些感情劃分為3類:積極、中立和消極,如圖5.20所示。因此可以將情感分析任務建模成一個文本三分類問題。圖5.20情感分析5.6.3情感分析以下是一個情感分析的例子:假設有一條電影評論:“這部電影真是太棒了!劇情扣人心弦,演員表演精彩,完全值得一看?!鼻楦蟹治龅哪繕耸桥袛噙@條評論是積極的、消極的還是中性的,這里就可以通過情感分析技術將這個過程自動化。對于這個例子,情感分析模型可能會將其歸類為積極情緒,因為評論中使用了諸如“太棒了”、“扣人心弦”、“精彩”等積極的詞匯。具體地,首先需要把文本數據進行分詞和向量化處理,其目的是能夠將文本數據轉化為數字形式,便于RNN進行處理。然后,需要構建RNN,在網絡中設置一個或多個循環神經元作為輸入,數值型的情感標簽作為輸出。在訓練過程中,使用標注好的數據對RNN進行訓練,通過調整網絡的參數,使其能夠更好地對情感進行分類。一旦網絡訓練完成,直接輸入待判別的文本數據,RNN將輸出所對應的情感類別。情感分析的應用范圍非常廣泛,除了電影評論之外,它還可以應用于社交媒體分析、產品評論分析、輿情監控等領域。例如,企業可以利用情感分析來分析用戶在社交媒體上對其產品的評論,從而了解用戶的情感傾向和對產品的反饋,以做出相應的調整和改進。5.6RNN的應用5.6.1文本生成5.6.2機器翻譯5.6.3情感分析5.6.4股票預測5.6.5語音處理5.6.6圖像描述5.6.4股票預測當將RNN應用于股票預測時,通常采用時間序列數據作為輸入,包括歷史股票價格、交易量和其他相關指標。假設想要預測某支股票未來一個月的價格走勢,可以收集過去幾年該股票的每日交易數據,包括開盤價、收盤價、最高價和最低價等信息,然后將這些數據組織成時間序列,作為RNN的輸入來訓練網絡。對于RNN的選擇,可以使用簡單的結構,如LSTM或GRU,也可以使用更復雜的結構,如多層堆疊的LSTM。一旦網絡訓練完成,就可以使用它對未來一個月的股票價格進行預測。具體來說,先將過去一個月的股票交易數據作為當前網絡輸入,然后使用網絡生成下一個時間步的預測值。通過不斷迭代這個過程,可以獲得一個未來一個月的股票價格預測序列。需要注意的是,股票市場的波動受到許多因素的影響,包括經濟指標、公司業績、行業發展、全球事件等。因此,股票預測并不是一件簡單的事情,很難做到百分之百準確。然而,通過使用RNN等深度學習技術,可以利用大量的歷史數據和相關因素來輔助預測,提高預測的準確性和可靠性。5.6RNN的應用5.6.1文本生成5.6.2機器翻譯5.6.3情感分析5.6.4股票預測5.6.5語音處理5.6.6圖像描述5.6.5語音處理當將RNN應用于語音信號轉換為文本時,通常也會使用LSTM或GRU等結構。假設有一段包含某人說話的音頻文件,目標是將這段音頻中的語音內容轉換為文字,以實現語音識別的功能。首先需要對音頻文件進行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河源市龍川縣教育系統招聘教師筆試真題2025
- 消防系統維修保養合同、方案(2026版)
- 中山市小欖鎮招聘公辦中小學教師筆試真題2025
- 茂名高州市城區學校定向選聘教師筆試真題2025
- (正式版)DB34∕T 1502-2011 《脫水竹筍生產技術規范》
- 2026 年小學秋季開學第一課集會活動防踩踏安全教育
- 2026 年臨床護理帶教常見問題及改進對策
- 夏季皮膚瘙癢防護護理
- 2025-2026學年陜西省西安市閻良區八年級(下)期中物理試卷(含答案)
- 英語秦淮區六校2025年七年級下冊期中試卷(原卷版)
- 2026年心理健康全科專任小學教師招聘考試筆試試題(含答案)
- 2026年新疆第三師圖木舒克市高校畢業生“三支一扶”計劃招募(347人)筆試參考試題及答案詳解
- 2026年三支一扶考試綜合基礎知識考試卷及答案(六)
- 2026-2030中國減肥市場發展動向分析與未來營銷創新策略研究報告
- 高標準農田建設項目監理服務方案投標文件(技術方案)
- 新生兒灌腸操作規范
- 2026年防疫員技師實操題庫及評分細則
- 醫院供氧中心工作制度
- GB/T 46585-2025建筑用絕熱制品試件線性尺寸的測量
- 童話故事創意寫作訓練教案
- GB/T 25606-2025土方機械產品識別代碼系統
評論
0/150
提交評論