註:本文同步更新在Notion!(數學公式會比較好閱讀)
是一種專門處理序列數據的神經網路架構,具有記憶過去資訊的能力,並能夠處理序列間的時間依賴性。與前饋式神經網路不同,RNN 的結構允許信息在不同的時間步之間進行傳遞,因此在解決自然語言處理 (NLP)、語音識別和時間序列預測等問題中有廣泛應用。
RNN 的特點在於它的遞迴結構,即在每個時間步驟中,它會根據當前的輸入和前一個時間步的隱藏狀態進行更新。
這種隱藏狀態的遞迴更新,使得 RNN 能夠保留並處理序列中前面時間步的資訊,適合處理序列數據中的依賴關係。
RNN 的核心是遞迴性。每一個時間步的隱藏狀態都是由前一個時間步的隱藏狀態與當前輸入所決定,這使得網路具備了處理序列依賴性的能力。
時間步間的信息傳遞:隱藏狀態 h_t 的計算公式顯示,每個時間步的輸出與上一個時間步的隱藏狀態密切相關,因此網路能夠"記住"之前的資訊,並將其應用於後續的計算中。
RNN 中的隱藏狀態計算涉及矩陣乘法和非線性激活函數。這裡的重點是使用遞迴公式來描述時間步之間的依賴關係。舉例來說,在 NLP 中,RNN 可以通過遞迴結構記住之前單詞的語境,並利用這些資訊來生成後續的預測。
透過反向傳播算法(Backpropagation Through Time, BPTT),我們可以將誤差從後向前傳遞,並更新權重。這個過程在數學上是對序列中每個時間步的梯度進行累積。
在長序列中,反向傳播時的梯度可能會逐步衰減,最終導致前面的時間步無法有效影響後面的輸出。這樣,RNN 難以捕捉長期依賴關係。
相反,當梯度在反向傳播過程中不斷增大時,可能會導致權重更新過於劇烈,最終使模型不穩定。
為了解決這些問題,研究者提出了多種改進方法,例如長短期記憶網路 (LSTM) 和門控循環單元 (GRU)。這些改進型架構通過引入門控機制,有效緩解了梯度消失和梯度爆炸的問題。
再來會開始介紹遞迴式神經網路,包含序列介紹、長短時間記憶Elman、GRU...ヽ(́◕◞౪◟◕‵)ノ