1. 神經網路: 在LLM之前
以下內容是我根據Recurrent Neural Networks (RNNs): A gentle Introduction and Overview這篇論文的讀後重點整理 https://arxiv.org/pdf/1912.05911
在了解Agent之前我們需要先來了解什麼是LLM,但是了解L L M是什麼之前,我們必須先要了解什麼是神經網路!
*註 以下內文圖片皆出自於Recurrent Neural Networks (RNNs): A gentle Introduction and Overview這篇論文
Feed Forward NN (前饋神經網路)
這是最傳統的神經網路架構,訊息像單行道一樣,只能從輸入層一路向前傳遞到輸出層。它擅長處理彼此獨立的靜態資料(如分類圖片),但當面對人類的「語言」時就碰壁了。因為語言是具有前後文關聯的「序列型資料」(Sequence Data),而前饋神經網路缺乏時間概念,無法把上一個字和下一個字串聯起來。這種「沒有記憶」的致命傷,促使了能處理時間序列的 RNN 誕生。

Recurrent NN (循環神經網路)
為了讓網路有記憶,RNN 引入了「隱藏狀態(Hidden State, H)」來暫存上下文的記憶體。而網路如何處理這些記憶,則由「權重矩陣(W)」來決定。

權重矩陣就像是一個「記憶加工公式」,負責決定:「當前進來的字,和前一步留下來的記憶,要如何融合並傳到下一步」。(e.g. 「小明出生在台灣,他很台…」 加工成=> 「一個跟台灣有強烈連結的小明 」)
但電腦不知道人類的語言規則,怎麼知道”很台“代表“跟台灣有強烈連結” ?
因此,工程師會需要先透過非常龐大的數據來訓練這個RNN,讓他知道: 「今天很熱,等一下要上學,所以我穿短褲」這句話中,天氣很熱才是穿短褲的原因。
Backpropagation Through Time (BPTT)
而工程師在訓練RNN時,會使用使用「隨時間反向傳播(BPTT)」演算法,透過偏微分計算誤差,並回頭更新 W。

沿用「今天很熱,等一下要上學,所以我穿短褲」這句話作範例,一開始RNN會忙猜: 因為去上學,所以我穿短褲。接著工程師會告訴RNN: 「錯!上學不是穿短褲的主因,隔壁班小明上學都穿長褲。天氣熱才是主因!」,此時RNN開始透過BPTT演算法,到著回去看。
- 倒回 [去上學]: 偏微分計算發現,因為 W去上學 權重給太高,才導致錯誤。於是把 W去上學 的數值調低。
- 再倒回 [天氣熱]: 偏微分計算發現,這個關鍵線索被冷落了。於是把 W天氣熱 的數值大幅調高。

Vanishing Gradient (梯度消失)
然而,如果今天句子長度越來越長:「[今天天氣熱] … (中間過了 80 個字,講了上學路上買早餐、遇到同學、進教室、交作業) … 所以我 [穿短褲]。」,BPTT演算法會需要倒退80步,才能發現原來是天氣引響穿著。
微積分的「連鎖律(Chain Rule)」會導致致命問題:長距離的反向傳播需要將這些變數連續相乘數十次。只要其中相乘的值小於 1,連續狂乘的結果就會讓梯度呈指數級萎縮,最終趨近於 0。導致 RNN 根本記不住太久以前的前文,成了嚴重的「失憶症」。
Long Short-Term Memory Units (LSTMs)
Long Short-Term Memory Units (LSTMs) , 長短期記憶網路,便是科學家們發明來解決這個問題的。

科學家將原本的隱藏狀態 H 拆分成 C(Cell State,細胞狀態)用來當作記憶 與 H(Hidden State,隱藏狀態)紀錄最終的輸出結果,並新增了三個 「門」來控制這兩個變數。
1. 遺忘門(Forget Gate):決定哪些舊記憶該丟垃圾桶
當新字詞進來時,遺忘門會第一個跳出來審查舊記憶 Ct-1。
「小明昨天去吃了牛排。隔天,小華...」當讀到
「小華」時,遺忘門會發現:「主詞換人了!前面關於『小明』和『牛排』的記憶已經不重要了!」便把變數 C 裡面關於小明的記憶直接乘以 0,清出空間給新主角。
2. 輸入門(Input Gate):決定哪些新資訊該記下來
「隔天,小華在路上看到一隻黑色的狗,然後他走進了【微積分】考場...」輸入門開始篩選:
「黑色的狗」?這跟後面的推理可能沒關係,分配低權重。「微積分考場」?這超級重要!立刻打包放進變數 C。
3. 輸出門(Output Gate):決定現在要吐出什麼答案
「小華看著發下來的考卷,不禁悲從中來,因為他根本不會算 [ ]」輸出門這時會去翻變數 C,把剛剛輸入門嚴格存下來的
「微積分」提煉出來,讓 AI 在空格裡信心滿滿地吐出:「導函數」或「極限」。
Deep Recurrent Neural Networks (DRNNs)
到這裡好像已經很完美了,但你要知道,人類的語言可是這世界上最複雜的東西,一句話的意思,真的是表面上的那樣嗎? 電腦又要怎麼知道這句話背後的意思是什麼? 因此有了DRNN誕生,用來理解「抽象」這件事的。
舉個例子: 「老王在暗巷裡點燃了打火機,火光照亮了他臉上的刀疤。」大部分人的第一直覺應該都是: 「老王可能不太好相處的感覺」、「老王感覺是壞人」,但對電腦來說,它只會覺得老王就只是一個「臉上有刀疤的人」。
在 DRNN 的世界裡,隱藏狀態 H 不只會傳給同一個層級的下一個字,還會當作輸入,直接餵給它頭頂上的那一層 RNN。
- 縱向(時間軸): 負責處理時間的先後順序(一邊讀字一邊往後傳)。
- 橫向(空間/層級軸): 負責進行「特徵的抽象化」。

以剛剛的老王座舉例,對第一層RNN而言:
- 任務: 處理最基礎的詞彙、文法和語調。
- 大腦運作: 讀到
「老王」(名詞)、「點燃」(動詞)、「打火機」(名詞)。 - 傳遞訊息: 它不探討動機,只是把看見的字串聯起來,做成基礎筆錄,然後往上拋給第二層。
第二層RNN:
- 任務: 接收第一層的筆錄,開始在時間軸上捕捉「動作與場景」的局部關聯。
- 大腦運作: 把
「暗巷」、「點燃」、「火光」串在一起。它的隱藏狀態得出結論:「這是一個在黑暗中尋找光線的動作,環境有點危險。」 - 傳遞訊息: 提煉出情境氛圍後,繼續往上拋給第三層。
還是不確定想表達什麼,於是傳給第三層:
- 任務: 站在巨人的肩膀上,進行最高難度的「語義與情感分析」。
- 大腦運作: 它結合了中層傳上來的「危險暗巷情境」,又看到了後面的
「刀疤」。此時最高層的 $H$ 融會貫通,得出終極結論:「這是一部懸疑犯罪電影的開頭,老王可能是一個有故事的反派角色。」
結
DRNN 是人類在 Transformer 技術(之後會說到) 問世前,為了榨出 AI 語意理解極限的暴力嘗試。它證明了「深度」在自然語言處理中的重要性——想理解人類複雜的語言,AI 的大腦必須既有縱向的記憶(Time),也要有橫向的深度(Depth)。
