昨天提到了一個被廣泛應用的模型架構 CNN
,CNN因為他優異的表現被廣泛應用於圖像處理、物體檢測與影像分類等任務。但是當我們處理帶有時間依賴性或順序關係的數據時,CNN的問題就顯現出來了。
在這些情況下,RNN 提供了一種更合適的解決方法,所以今天我們就會來了解RNN是甚麼囉!!
循環神經網路(Recurrent Neural Network, RNN),之所以被叫做循環,是因為他存在這個特性(廢話),以一個例子來說,當我們在讀文章的時候,我們並不會每讀一個字就完全忘記前面的內容,我們應該會記住之前讀過的字或是句子,然後根據這些已知資訊來理解接下來的內容。
但是傳統的神經網路並不會這樣,而RNN卻是可以做到的。
所以RNN是一種用於處理序列數據的神經網路結構,適合處理與時間或順序相關的問題。與傳統前饋神經網路(如多層感知器,MLP)不同,RNN具有記憶能力,能夠利用先前輸入的信息來影響後續的輸出。
接續上面的閱讀文章來說每次讀一個字(輸入),網路會根據已經讀過的內容(之前的隱藏狀態)來理解當前字的意義,之後,RNN 會把當前字的資訊和之前的資訊一起「記住」,並傳遞給下一個Time Step(下一個字)。
Time Step 是指在處理時間序列或序列數據時,每一個離散的時間點或輸入步驟。這個概念在像 循環神經網路(RNN) 這樣的模型中非常重要,因為它們通常是逐步處理數據的,並根據過去的時間點來做出當前的決策。
現在我們來看看這張圖片。
聽起來RNN好像很厲害,在處理時間序列資料和時間依賴性問題上有很大的優勢,但其實他也有很明顯的缺點,這些缺點限制了他在某些應用中的表現。
而這個問題可以透過RNN的變形來解決,也就是LSTM來解決,那甚麼是LSTM,我們明天就會一起來探討LSTM囉。