RNN/ LSTM/ Transformer 系列.2

更新 發佈閱讀 9 分鐘

二、長短期記憶 (Long Short-Term Memory/ LSTM)**

(**註:關於 RNN/ LSTM/ Transformer 系列.1&RNN 說明,請參考以下網址: https://vocus.cc/article/68bf7c99fd897800013126c7)


▷ LSTM 的概念

1. LSTM 是為了解決 RNN 的「梯度消失」問題而誕生的。
▪︎ RNN的問題:隱藏狀態的更新是透過多層非線性函數,梯度的函數會隨著反覆地權重計算而趨近0,導致梯度消失。
▪︎ 在當時(1990s)的直覺的解決方式:改變函數的計算方式 
▪︎ LSTM 的創新**:不從原本的傳輸資訊管道下手找解決方法,另闢蹊徑,開一條用不同方式控管傳輸資訊的通道來傳輸資訊。也就是,提供一條幾乎線性***的通路,讓梯度能穩定傳遞下去。
(**註:LSTM 雖在1997年提出,但與其他許多 AI 創新理念相同,受限於硬體算力、資料集規模,直到2000s~2010s才隨著 GPU 與大數據出現而得以實現、大放異彩。)
(***註:使用加法更新,非單純乘法堆疊,所以說是「幾乎」線性。)

2. RNN&LSTM 的傳輸方式
▪︎ RNN 的傳輸方式:隱藏狀態每一次的更新都來自前一次的計算,從而導致梯度遞減消失。 
▪︎ LSTM 的傳輸方式: 不讓「每一次的更新都來自前一次的計算」只作用在隱藏狀態,而是用細胞狀態所保留的完整資訊,加上隱藏狀態中已透過計算的函數,兩者一起運算,並且設定遺忘、輸入、輸出三個Gate,來作為審核放行、與創生的閘道。 
→如此,既保留隱藏狀態最關鍵的「當前最新狀態」,也仍擁有能對應完整上下文的資訊。 

3. LSTM 的構成元素
不同於 RNN 是一條運作隱藏狀態的資訊傳輸線(i.e.「記憶」),LSTM 包含了兩條的資訊傳輸線:
▪︎ 隱藏狀態 (Hidden State)
一如 RNN,這條線負責在每個時間點傳遞短期的「輸出」資訊。這其實就是保留RNN 的「記憶」,它包含了當前時間點的運算結果,但問題就是資訊會隨著傳遞而衰退。

▪︎ 細胞狀態 (Cell State) 與它的三個門 (Gate)
這是LSTM 的核心,專門用來儲存和傳遞長期的關鍵資訊的傳輸線,負責長期記憶。它更新的方式不像隱藏狀態那樣,受非線性函數影響,而是以線性函數的方式計算,並使用三個「門 (Gate)」控制:
(1) 遺忘門 (Forget Gate):負責「更新」整個細胞狀態的長期記憶
決定「丟掉」什麼,審視舊的記憶,並決定哪些資訊已過時不重要,可被忘記。
(2) 輸入門 (Input Gate):負責「更新」整個細胞狀態的長期記憶
決定「保留」什麼,審視當前輸入,決定哪些新的資訊是重要的,應該被儲存。
(3) 輸出門 (Output Gate):負責「輸出」最終輸出的短期記憶(i.e.隱藏狀態)
決定「使用」什麼,審視(1)&(2)更新後的「加入了新資訊並刪除不需要的舊記憶」的「當前」的「長期記憶」,決定要以哪些作為當前的輸出。
→透過三個門共同協作,LSTM 得以捨棄、更新和使用資訊。

4. LSTM 的命名
根據LSTM 的構成,便可知其名稱「長短期記憶/Long Short-Term Memory」,其實就是分別指:「短記憶/隱藏狀態 (Hidden State)」,與「長記憶/細胞狀態 (Cell State)」。我會理解為「一組相互扶持的好幫手」的概念。


▷ LSTM 的運作流程-細胞狀態**

(**註:隱藏狀態運作 RNN 已說明,請參考網址 https://vocus.cc/article/68bf7c99fd897800013126c7且細胞狀態正是 LSTM核心,所以這裡以細胞狀態的流程說明為主。)

1. 輸入:LSTM 接收三個輸入
(1.a) 上一個時間點的「隱藏狀態」:上一次的最終輸出,當下最新狀況,代表舊的短期記憶。
(1.b) 上一個時間點的「細胞狀態」:動態保持更新、從序列最初就開始運行的長期記憶,代表舊的長期記憶。
(1.c) 當前時間點的「輸入」:代表最新輸入的資訊。

2. 記憶更新與使用:遺忘門、輸入門、輸出門
2.1 更新組 (遺忘門&輸入門)
兩道門會同時參考上述 (1.a)、(1.c) 兩個輸入,來決定如何更新「細胞狀態」,也就是更新(1.b)。
▪︎ 遺忘門:根據 (1.a)、(1.c) 決定舊的「細胞狀態」要保留多少。
▪︎ 輸入門:根據 (1.a)、(1.c) 決定新的輸入要加入多少到「細胞狀態」裡。
→這兩道門的結果會相乘與相加,產生一個新的「細胞狀態」,即 (2.a)。
2.2 輸出組 (輸出門)
輸出門會參考上一個時間點的「隱藏狀態」(1.a) 與當前時間點的輸入 (1.c),來決定要從新的「細胞狀態」,也就是 (2.a),取出哪些資訊。

3. 輸出:最終產生兩個輸出
(3.a) 新的「隱藏狀態」:這就是當前的最終輸出。(→同時在下一輪計算中,也等同回到「(1.a)」的角色。)
(3.b) 新的「細胞狀態」:它會被傳遞到下一個時間點,作為下一輪運算的長期記憶。(→同時在下一輪計算中,也等同回到「(1.b)」的角色。)

→→總結:
在1-3的整個過程中,雖然在隱藏狀態中的資訊,其活化函數可能因計算被稀釋,但由於有細胞狀態動態保持更新、從序列最初就開始運行的長期記憶,將能使得用以判斷更新狀態的那個最終函數的計算,不會發生像只有隱藏狀態時那樣地被稀釋的狀況,從而解決梯度消失的問題。
如果用專業技術的說法,就是:
RNN 容易梯度消失,始因於隱藏狀態的更新需要經過層層非線性函數,而LSTM 透過細胞狀態,提供近乎線性的傳輸路徑,使梯度能穩定傳遞。

❖ 小囉唆的說明Again:為什麼需要「隱藏狀態」?
為什麼不只保留「細胞狀態」一條線就好?(*至少我在學的時候是這麼想的。)

其實正是因為隱藏狀態與細胞狀態的「並存」,才能使一個「序列關係」的輸入被妥善處理。它們有各自需要做的事。

▪︎ 細胞狀態:負責核心的「長期記憶」。透過三個門的精準篩選,得以避開使用非線性函數的方式,將所需的資訊完整保存。
▪︎ 隱藏狀態:負責每個當下時間點的「輸出」,也就是「當下的『短期記憶』」。每一次的輸出,都是將「當前的輸入資訊」加上細胞狀態中的資訊,整合得出的,所以它是一個「在當下」的、「短期」的狀態。

→簡言之,細胞狀態儲存和傳遞長期記憶,而隱藏狀態則是當下時間點的最終輸出,兩者缺一不可。

→→或者,用另一種方式說明:
保留隱藏狀態這條線,是為了「提供上下文」好讓輸出門決定該使用哪些資訊來輸出新的「短期記憶 (i.e.隱藏狀態)」。有了隱藏狀態所提供的「當前時間點的語境/情境」,加上細胞狀態的長期記憶,輸出門就能將兩者整合,生成一個既有長期記憶又符合當下語境/情境的完整輸出。


▷ RNN 與 LSTM 的同異

▪︎ RNN 與 LSTM 的相同之處
兩者都是「循環神經網路 (RNN)」
 ↳ 單純的 RNN:記憶 (隱藏狀態)+循環
 ↳ 長短期記憶網路 LSTM:隱藏狀態+細胞狀態

▪︎ RNN 與 LSTM 的根本區別
RNN 與 LSTM 最主要的區別,就是 LSTM 多了「細胞狀態」傳輸線。
也可以說,不同於 RNN 單純將輸入更新到隱藏狀態的記憶中(被動性),LSTM 利用細胞狀態的三個門實現篩選管理記憶(主動性)。
並且,正是因為 LSTM 有細胞狀態這種傳輸方式,使得 RNN 的梯度消失問題得以改善。RNN 的梯度消失問題根源於多重非線性函數的計算,導致活化函數的遞減,LSTM 的細胞狀態與三個門控管方式,則是採取幾乎線性函數的方式,從而避免梯度消失的問題。


▷ 總結:處理「序列關係」的神經網路之原罪

雖然 LSTM 解決了 RNN 的梯度消失問題,但不論是 LSTM 或 RNN,作為被創造來處理「序列關係」的神經網路,都同樣繼承了一個本質:序列處理。

這個本質,同時也是一個根本性的限制。按照 RNN 與 LSTM 的設計邏輯,當接收輸入時,必須要按照序列,有序地 token by token 依次運算,這在序列(ex自然語言語句)長度增加,或是資料量體巨大時(ex大數據訓練模型),依序運算將難以克服規模與速度。

而這也正是轉換器 (Transformer) 的誕生契機:以一種完全「不是」依序處理序列的方式,突破依序處理序列所帶來的「規模」與「速度」的限制。



留言
avatar-img
留言分享你的想法!
avatar-img
不是雞湯,但是又如何
3會員
297內容數
不是雞湯,但 是又如何 不是雞湯,但是 又如何
2025/09/09
前言: 神經網路模型,有處理圖片這類以「空間關係」數據為主的卷積神經網路 (CNN),也有處理以「時間或順序關係 (i.e. 序列數據/Sequential Data)」數據為主的「循環神經網路(Recurrent Neural Network/ RNN。 這次要一口氣介紹三個都是處理「序列」和
2025/09/09
前言: 神經網路模型,有處理圖片這類以「空間關係」數據為主的卷積神經網路 (CNN),也有處理以「時間或順序關係 (i.e. 序列數據/Sequential Data)」數據為主的「循環神經網路(Recurrent Neural Network/ RNN。 這次要一口氣介紹三個都是處理「序列」和
2025/08/28
「人工智慧 +1」自學 Day8:「生成式對抗網路GANs」(Generative Adversarial Networks) (**非常有趣的概念!) ▷概念:什麼是 GANs? ▪︎ 定義 GANs 本質上就是一個由兩個神經網路模型「生成器(Generator)」與「判別器(Discrimi
2025/08/28
「人工智慧 +1」自學 Day8:「生成式對抗網路GANs」(Generative Adversarial Networks) (**非常有趣的概念!) ▷概念:什麼是 GANs? ▪︎ 定義 GANs 本質上就是一個由兩個神經網路模型「生成器(Generator)」與「判別器(Discrimi
2025/08/25
「人工智慧 +1」自學 Day7:AI 的倫理議題&AI 的獨特性 (透過這篇,我想要來探討我對於 AI 學習&應用最為關注的主題:AI 的倫理議題。) - 前言: 為何有需要探討 AI 的倫理議題?這主要是因為涉及了 AI 這項技術的獨特性。AI 作為一項人類社會前所未見的創新發明,再一次
Thumbnail
2025/08/25
「人工智慧 +1」自學 Day7:AI 的倫理議題&AI 的獨特性 (透過這篇,我想要來探討我對於 AI 學習&應用最為關注的主題:AI 的倫理議題。) - 前言: 為何有需要探討 AI 的倫理議題?這主要是因為涉及了 AI 這項技術的獨特性。AI 作為一項人類社會前所未見的創新發明,再一次
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
特徵工程是機器學習中的核心技術,通過將原始數據轉換為有意義的特徵,以提升模型的準確性和穩定性。常見的特徵工程方法包括異常值檢測、特徵轉換、特徵縮放、特徵表示、特徵選擇和特徵提取。本文將深入探討這些方法的適用情況及具體實施流程,以幫助讀者有效利用特徵工程來優化機器學習模型表現。
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
延續上一篇訓練GAM模型,這次我們讓神經網路更多層更複雜一點,來看訓練生成的圖片是否效果會更好。 [深度學習][Python]訓練MLP的GAN模型來生成圖片_訓練篇 資料集分割處理的部分在延續上篇文章,從第五點開始後修改即可,前面都一樣 訓練過程,比較圖 是不是CNN的效果比MLP還要好,
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
Thumbnail
本文主要介紹,如何利用VAE變分自編碼器來訓練生成圖片。 訓練集資料將採用TF影像資料庫中的fashion_mnist VAE變分自編碼器簡單介紹 •VAE(Variational Auto-Encoder)中文名稱變分自編碼器,主要是一種將原始資料編碼到潛在向量空間,再編碼回來的神經網路。
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
GNN發展背景 傳統的深度學習模型如在計算機視覺(CV)和自然語言處理(NLP)領域中極為成功,主要是處理結構化數據如影像和文本。這些數據類型通常具有固定且規律的結構,例如影像是由有序的像素點組成。然而,在真實世界中,許多數據是非結構化的,如化合物結構(原子和分子)。這些數據雖然具有一定的規則性,
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
Thumbnail
長短期記憶(英語:Long Short-Term Memory,LSTM)是一種時間循環神經網路(RNN),論文首次發表於1997年。 LSTM(長短期記憶)是一種特定類型的遞歸神經網絡(RNN),在許多需要處理時間序列數據或順序數據的應用中非常有用。 以下是一些常見的 LSTM 應用:
Thumbnail
給定一個輸入陣列,計算最長遞增子序列的總數。本題和Longest Common Subsequence相似,需要設定一個計數器,記錄最長遞增子序列的數量。透過DP模型的化簡方式來解決問題。時間複雜度為O(n^2),空間複雜度為O(n)。主要使用回頭看的技巧,找出比較小的元素去延伸遞增子序列的長度。
Thumbnail
給定一個輸入陣列,計算最長遞增子序列的總數。本題和Longest Common Subsequence相似,需要設定一個計數器,記錄最長遞增子序列的數量。透過DP模型的化簡方式來解決問題。時間複雜度為O(n^2),空間複雜度為O(n)。主要使用回頭看的技巧,找出比較小的元素去延伸遞增子序列的長度。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News