再來我們進到了機器學習的部分啦,我們之後會使用到的模型是LSTM(Long Short-Term Memory),不過,在了解LSTM之前,我們先來探討它的前身——RNN (Recurrent Neural Network,循環神經網路)。
RNN的出現,主要是因為一般的神經網路在處理有前後關係的資料時,表現得不太理想。像是前饋神經網路(Feedforward Neural Networks, FNN) 每一層的輸出只會往下一層傳遞,輸入與輸出是獨立的,彼此之間沒有影響,因此完全不記得之前發生過什麼事。但RNN不同,它不只把輸出傳給下一層,還能把輸出回傳給自己,這樣就能「記住」之前的資訊,讓後面的輸入可以參考前面的結果。這樣一來,RNN就能夠處理像文字、影片或聲音這種有順序性的資料。
舉個例子來說,假如我們要訓練一個模型來猜下一個字母是什麼。當我們輸入「h」的時候,RNN會想:「欸,我之前是不是看過『he』這樣的組合?」然後就會猜測下一個字母可能是「l」。這就是RNN的厲害之處,它能夠考慮整個句子的意思,而不是只看眼前的字母。
不過呢,RNN也並非是完美的。當我們處理非常長的序列資料時,RNN往往會遭遇一個問題——隨著時間的推移,它會逐漸「忘記」最初的資訊。這是因為RNN每次更新記憶時,較新的資訊會覆蓋掉較舊的資訊,因此越早輸入的內容會被逐漸遺忘。這種「短期記憶」的特性使得RNN在處理長期依賴的問題時表現不佳,無法有效保留重要的上下文資訊。
為了彌補這一缺陷,LSTM (長短期記憶網路) 被發明出來。LSTM在RNN的基礎上加強了記憶功能,它通過特殊的結構能夠有效地保留長期的資訊,解決了RNN的記憶衰退問題。LSTM我們將會在下一篇文章中進行介紹。