遞歸神經(jīng)網(wǎng)絡(luò)解釋

?

如今,不同的機(jī)器學(xué)習(xí)技術(shù)用于處理不同類型的數(shù)據(jù)。最難處理和預(yù)測的數(shù)據(jù)類型之一是順序數(shù)據(jù)。順序數(shù)據(jù)與其他類型的數(shù)據(jù)不同,因為雖然可以假設(shè)典型數(shù)據(jù)集的所有特征都是與順序無關(guān)的,但不能假設(shè)順序數(shù)據(jù)集是無關(guān)的。為了處理這種類型的數(shù)據(jù),提出了遞歸神經(jīng)網(wǎng)絡(luò)的概念。它在結(jié)構(gòu)上與其他人工神經(jīng)網(wǎng)絡(luò)不同。當(dāng)其他網(wǎng)絡(luò)在前饋過程或反向傳播過程中沿線性方向“行進(jìn)”時,循環(huán)網(wǎng)絡(luò)遵循遞歸關(guān)系而不是前饋傳遞,并使用隨時間的反向傳播進(jìn)行學(xué)習(xí)。

遞歸神經(jīng)網(wǎng)絡(luò)由多個固定激活函數(shù)單元組成,每個時間步長一個。每個單元都有一個內(nèi)部狀態(tài),稱為單元的隱藏狀態(tài)。此隱藏狀態(tài)表示網(wǎng)絡(luò)當(dāng)前在給定時間步中持有的過去知識。此隱藏狀態(tài)在每個時間步更新,以表示網(wǎng)絡(luò)對過去的了解的變化。使用以下遞歸關(guān)系更新隱藏狀態(tài):

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖1遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖2?編輯

注意:通常,要理解遞歸神經(jīng)網(wǎng)絡(luò)的概念,它通常以展開的形式進(jìn)行說明,本文將遵循此規(guī)范。在每個時間步,使用上面給出的遞歸關(guān)系計算新的隱藏狀態(tài)。這個新生成的 hidden state 確實用于生成一個新的 hidden state,依此類推。遞歸神經(jīng)網(wǎng)絡(luò)的基本工作流程如下:

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖3遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖4?編輯

請注意,這是h0網(wǎng)絡(luò)的初始隱藏狀態(tài)。通常,它是一個零向量,但它也可以有其他值。一種方法是將有關(guān)數(shù)據(jù)的假設(shè)編碼到網(wǎng)絡(luò)的初始隱藏狀態(tài)中。例如,對于確定知名人士發(fā)表的演講語氣的問題,該人過去演講的語氣可能會被編碼到初始隱藏狀態(tài)。另一種技術(shù)是將初始隱藏狀態(tài)設(shè)為可訓(xùn)練參數(shù)。盡管這些技術(shù)對網(wǎng)絡(luò)增加了一點(diǎn)細(xì)微差別,但將隱藏狀態(tài)向量初始化為零通常是一個有效的選擇。

各經(jīng)常性單位的工作:

  1. 將先前隱藏的狀態(tài)向量和當(dāng)前輸入向量輸入。
  2. 請注意,由于隱藏狀態(tài)和當(dāng)前輸入被視為向量,因此向量中的每個元素都放置在與其他維度正交的不同維度中。因此,當(dāng)所涉及的元素為非零且元素位于同一維度時,每個元素與另一個元素相乘時,僅給出非零值。
  3. 元素級將隱藏狀態(tài)向量乘以隱藏狀態(tài)權(quán)重,并類似地執(zhí)行當(dāng)前輸入向量和當(dāng)前輸入權(quán)重的元素性乘法。這將生成參數(shù)化的隱藏狀態(tài)向量和當(dāng)前輸入向量。請注意,不同向量的權(quán)重存儲在可訓(xùn)練權(quán)重矩陣中。
  4. 執(zhí)行兩個參數(shù)化向量的向量加法,然后計算元素雙曲正切以生成新的隱藏狀態(tài)向量。

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖5遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖6?編輯

在循環(huán)網(wǎng)絡(luò)的訓(xùn)練期間,網(wǎng)絡(luò)還會在每個時間步長生成一個輸出。此輸出用于使用梯度下降訓(xùn)練網(wǎng)絡(luò)。

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖7遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖8?編輯

所涉及的反向傳播類似于典型人工神經(jīng)網(wǎng)絡(luò)中使用的反向傳播,但有一些細(xì)微的變化。這些變化被記錄為:-設(shè)網(wǎng)絡(luò)在任何時間步的預(yù)測輸出為遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖9遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖10?編輯 ,實際輸出為遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖11遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖12?編輯 。然后每個時間步的誤差由下式給出:

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖13遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖14?編輯

誤差由所有時間步的誤差之和給出。

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖15遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖16?編輯

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖17遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖18?編輯

同樣,該值遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖19遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖20?編輯 可以計算為每個時間步的梯度之和。

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖21遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖22?編輯

使用微積分的鏈?zhǔn)椒▌t,并利用時間步 t 的輸出是循環(huán)單元的當(dāng)前隱藏狀態(tài)的函數(shù)這一事實,產(chǎn)生了以下表達(dá)式:-

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖23遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖24?編輯

請注意,上述表達(dá)式中使用的權(quán)重矩陣 W 對于輸入向量和隱藏狀態(tài)向量是不同的,并且僅以這種方式用于符號的便利性。

因此,出現(xiàn)了以下表達(dá)式:-

遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖25遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖26?編輯

因此,Back-Propagation Through Time 與典型的 Back-Propagation 的唯一區(qū)別在于,每個時間步的誤差相加以計算總誤差。遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖27遞歸神經(jīng)網(wǎng)絡(luò)解釋的圖28?編輯

盡管基本的遞歸神經(jīng)網(wǎng)絡(luò)相當(dāng)有效,但它可能會遇到一個重大問題。對于深度網(wǎng)絡(luò),反向傳播過程可能會導(dǎo)致以下問題:

  • 消失的梯度:當(dāng)梯度變得非常小并趨于零時,就會發(fā)生這種情況。
  • 分解梯度:當(dāng)梯度由于反向傳播而變得太大時,會發(fā)生這種情況。

Exploding Gradients 的問題可以通過使用 hack 來解決 – 通過在時間上回傳遞的梯度設(shè)置閾值。但是這種解決方案并不被視為問題的解決方案,也可能降低網(wǎng)絡(luò)的效率。為了解決這個問題,開發(fā)了遞歸神經(jīng)網(wǎng)絡(luò)的兩種主要變體——長短期記憶網(wǎng)絡(luò)門控遞歸單元網(wǎng)絡(luò)

遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 是一種人工神經(jīng)網(wǎng)絡(luò),旨在處理順序數(shù)據(jù)。與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)不同,RNN 可以在處理當(dāng)前狀態(tài)時考慮序列的先前狀態(tài),從而允許它們對數(shù)據(jù)中的時間依賴關(guān)系進(jìn)行建模。

RNN 的主要特點(diǎn)是隱藏單元之間存在遞歸連接,這允許信息從一個時間步傳遞到下一個時間步。這意味著每個時間步的隱藏狀態(tài)不僅是該時間步輸入的函數(shù),也是前一個隱藏狀態(tài)的函數(shù)。

在 RNN 中,每個時間步的輸入通常是表示序列當(dāng)前狀態(tài)的向量,每個時間步的輸出是表示該時間步的預(yù)測值或分類的向量。隱藏狀態(tài)也是一個向量,在每個時間步中,根據(jù)當(dāng)前輸入和之前的隱藏狀態(tài)進(jìn)行更新。

基本的 RNN 架構(gòu)存在梯度消失問題,這使得在長序列上訓(xùn)練變得困難。為了解決這個問題,已經(jīng)開發(fā)了幾種 RNN 變體,例如長短期記憶 (LSTM) 和門控循環(huán)單元(GRU)網(wǎng)絡(luò),它們使用專門的門來控制通過網(wǎng)絡(luò)的信息流并解決梯度消失問題。

RNN 的應(yīng)用包括語音識別、語言建模、機(jī)器翻譯、情感分析和股票預(yù)測等。總體而言,RNN 是處理順序數(shù)據(jù)和建模時間依賴關(guān)系的強(qiáng)大工具,使其成為許多機(jī)器學(xué)習(xí)應(yīng)用程序的重要組成部分。

遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 的優(yōu)點(diǎn)是:

  1. 處理順序數(shù)據(jù)的能力:RNN 可以處理不同長度的連續(xù)數(shù)據(jù),使其在自然語言處理、語音識別和時間序列分析等應(yīng)用中非常有用。
  2. 內(nèi)存:RNN 能夠通過使用隱藏狀態(tài)來保留有關(guān)序列中先前輸入的信息。這使 RNN 能夠執(zhí)行預(yù)測句子中的下一個單詞或預(yù)測股票價格等任務(wù)。
  3. 多功能性:RNN 可用于各種任務(wù),包括分類、回歸和序列到序列映射。
  4. 靈活性:RNN 可以與其他神經(jīng)網(wǎng)絡(luò)架構(gòu)(如卷積神經(jīng)網(wǎng)絡(luò) (CNN) 或前饋神經(jīng)網(wǎng)絡(luò))結(jié)合使用,為特定任務(wù)創(chuàng)建混合模型。

但是,RNN 也有一些缺點(diǎn):

  1. 梯度消失問題:梯度消失問題可能發(fā)生在 RNN 中,尤其是在具有多層或長序列的 RNN 中,這使得學(xué)習(xí)長期依賴關(guān)系變得困難。
  2. 計算成本高昂:RNN 的計算成本很高,尤其是在處理長序列或使用復(fù)雜架構(gòu)時。
  3. 缺乏可解釋性:RNN 可能難以解釋,尤其是在理解網(wǎng)絡(luò)如何做出預(yù)測或決策方面。
  4. 總體而言,雖然 RNN 有一些缺點(diǎn),但它們處理順序數(shù)據(jù)和保留先前輸入內(nèi)存的能力使其成為許多機(jī)器學(xué)習(xí)應(yīng)用的強(qiáng)大工具。

?

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP