Ⅰ 為何 RNN 無法處理長序列
RNN 無法處理長序列的問題,主要是因為它存在長期依賴(long-term dependency)的問題。在 RNN 中,每個時間步的輸出都與前面的時間步有關,這種關系會隨著時間步的增加而增加,從而導致梯度消失或梯度爆炸。
為了解決這個問題,一些研究者提出了一些方法,如長短時記憶網路(LSTM)和門控循環單元(GRU),它們可以更好地處理長序列數據。
Ⅱ 一文看懂RNN
本文將幫助你深入理解RNN,特別是其在處理時間序列數據方面的獨特能力。假設你已經對深度學習和基礎的NLP有所了解,比如word2vec。
傳統的神經網路,如前饋網路,其信息僅單向傳遞,無法捕捉到時間序列數據中的時間關聯。然而,RNN,即循環神經網路,正是為解決這一問題而設計的。它引入了循環結構,允許信息在網路內部循環,從而保留了時間序列中的序列關系。
RNN的典型結構可以通過一個直觀的展開來解釋。以一個序列數據(x_1, x_2, ..., x_t)為例,每個時間步的輸入x_i不僅會被輸入到RNN層,還結合上一時間步的隱藏狀態h_{i-1}進行計算。這個過程可以用公式表示為每個h的計算,其中涉及參數W_h和W_x,以及雙曲正切函數tanh。值得注意的是,盡管圖示為多層結構,實際上每層僅包含一個RNN循環,參數是共享的。