RNN及其變體的數學理解
迴圈神經網路(RNN)是一種特殊的深度學習(DL)型別,擅長按順序分析輸入。它們廣泛應用於多個領域,例如自然語言處理(NLP)、語言翻譯等。本文將探討一些流行的 RNN 變體,並深入研究其背後的數學原理。
迴圈神經網路的基礎
迴圈神經網路是一種特殊的神經網路結構,可以透過維護內部狀態來處理順序資訊。這些狀態也被稱為隱藏狀態。RNN 對序列中的每個元素都以相同的方式執行,同時保持並改變其隱藏狀態。這是它背後的基本原理。透過將隱藏狀態用作序列中先前元素的記憶體,神經網路可以捕獲依賴關係和時間相關資料。
RNN 的數學公式
考慮一個簡單的具有一個隱藏層的 RNN。給定長度為 T 的輸入序列,我們可以將時間點 t 處的輸入序列表示為 x(t),將時間點 t 處的隱藏狀態表示為 h(t)。RNN 使用以下計算來更新其隱藏狀態。
W(hh)h(t-1) + W(xh)x(t) + b(h) = h(t) [Equation 1] W(hy)h(t) + b(y) = y(t). [Equation 2]
在公式 1 中,W(hh) 表示隱藏到隱藏的互動權重矩陣,W(xh) 表示輸入到隱藏關聯的權重矩陣,b(h) 表示隱藏層的偏置向量,f 表示逐元素實現的啟用函式。公式 2 表示在時間步 t 獲得的結果,其中 W(hy) 是連線隱藏層到輸出層的權重矩陣,b(y) 是輸出層的偏置向量,g 是用於生成輸出的啟用函式。
透過時間反向傳播 (BPTT)
為了訓練 RNN,我們需要計算梯度並更新模型引數。RNN 中的梯度計算演算法稱為透過時間反向傳播 (BPTT)。透過時間步反向傳播 (BPTT) 演算法是標準反向傳播技術的修改版本。
探索 RNN 變體
(a) 長短期記憶網路 (LSTM)
LSTM 是 RNN 的一種變體,它解決了梯度消失問題,並且可以捕獲長期依賴關係。LSTM 引入了三個門控機制——輸入門、遺忘門和輸出門,以及一個記憶單元。這些門控機制控制資料在記憶單元內部和外部的流動,使網路能夠根據需要保留或丟棄特定資訊。
(b) 門控迴圈單元 (GRU)
這種 RNN 變體簡化了 LSTM 的設計,同時實現了類似的結果。GRU 將細胞狀態和隱藏狀態合併,並將 LSTM 的遺忘門和輸入門合併成一個更新門。這種簡化降低了計算複雜度,減少了所需的運算和引數。
(c) 雙向 RNN
有時,做出準確的預測需要依賴過去和未來的時間步的資訊。雙向 RNN (BiRNN) 透過向前和向後兩個方向處理序列,來捕獲兩個時間方向上的依賴關係。BiRNN 在命名實體識別和語音識別等任務中取得了成功。
(d) 注意力機制
將注意力機制新增到 RNN 中,使網路能夠關注輸入序列的相關部分。注意力機制構建了所有隱藏狀態的加權和,而不是僅僅依賴 RNN 的最終隱藏狀態,從而為輸入序列的重要部分賦予更大的權重。這使模型能夠靈活地關注某些特徵,並提高其在機器學習任務中的效能。
(e) 基於 Transformer 的模型
RNN 及其變體獲得了廣泛的普及,但是,它們在平行計算和解決長距離依賴方面存在缺點。基於 Transformer 的模型是由 Vaswani 等人在 2017 年首次提出的,已成為一種強大的替代方案。與 RNN 不同,Transformer 使用自注意力機制來處理整個輸入序列。
自注意力是 Transformer 中的主要數學組成部分。它使模型能夠在進行預測時考慮輸入序列中不同位置的相對權重。透過計算注意力權重(將序列中的每個位置與其他所有位置進行比較),模型能夠有效地捕獲區域性和全域性依賴關係。
在自然語言處理任務(如機器翻譯和語言生成)中,它們取得了令人印象深刻的結果。大型預訓練模型(如 BERT、GPT 和 T5)以它們為基礎,極大地推動了各種 NLP 應用的最新發展。
儘管 Transformer 越來越受歡迎,但它們不應被視為 RNN 的直接替代品。在語音識別和時間序列分析等應用中,RNN 仍然表現良好,在這些應用中,時間資料和處理順序至關重要。根據問題的性質,應選擇 RNN 或 Transformer(或兩者的組合)。
結論
迴圈神經網路 (RNN) 及其變體徹底改變了順序資訊建模領域。RNN 能夠識別時間相關性並處理可變長度的輸入,這使得它們在各種領域取得了最先進的結果。在這篇博文中,我們探討了 RNN 的數學知識,包括透過時間反向傳播 (BPTT) 演算法及其基本公式。我們還介紹了一些流行的 RNN 變體,包括 LSTM、GRU、雙向 RNN 和注意力機制。這些變體透過解決梯度消失、長期依賴關係和捕獲雙向資訊等問題,幫助 RNN 在各種應用中取得成功。隨著深度學習的發展,RNN 及其衍生產品可能會繼續主導順序資料評估,從而推動語音識別、自然語言處理等領域的創新。