AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
57/100 第六週:📌 轉換器架構與注意力機制(Transformers & Attention)🔍
57.Encoder-Decoder 架構 ✉️ 編碼與解碼的完美協作!
________________________________________
🎯 單元導讀:
在機器翻譯、摘要生成、問答系統等任務中,模型面臨的挑戰是:
如何將輸入語句「理解並轉換」為另一種形式?
這正是 Encoder-Decoder 架構誕生的初衷:
Encoder 負責「理解」輸入內容,Decoder 負責「生成」對應輸出。
本課將帶你理解這對神經網路搭檔如何協作完成複雜的序列轉換任務,並揭開 Transformer 架構中 Encoder-Decoder 的關鍵互動機制。
________________________________________
🧱 一、Encoder-Decoder 架構總覽
輸入序列(X) → [ Encoder ]
↓
中間表示(語意向量)
↓
輸出序列(Y) ← [ Decoder ]
功能分工:
模組 任務功能
✉️ Encoder 將輸入語句轉換為高階語意向量
📨 Decoder 根據語意向量與先前輸出生成新詞彙
Transformer 模型的核心流程是透過 編碼器(Encoder) 與 解碼器(Decoder) 的合作:輸入序列 X 會先進入 Encoder,轉換成一組包含上下文語意的中間向量表示;
這些向量再被傳遞給 Decoder,作為解碼依據,結合已生成的輸出序列 Y,逐步預測接下來的詞。這種架構讓模型能全面理解輸入內容,並在生成輸出時考慮整體語意與結構,是機器翻譯、摘要與問答等任務的基礎。
________________________________________
🔁 二、運作流程說明(以翻譯任務為例)
輸入句子(英文):"The cat sat on the mat."
1. Encoder:
o 將每個詞轉為詞嵌入向量
o 通過多層 Self-Attention + Feed Forward,捕捉全句語意
o 最後輸出:每個位置的語意表示(不是壓縮成單一向量,而是「語境表示矩陣」)
2. Decoder:
o 在訓練階段輸入已知的「前一個詞」(例如 "Le")
o 使用 Masked Self-Attention:避免看到未來詞
o 使用 Encoder-Decoder Attention:從 Encoder 輸出的語意表示中取得關聯資訊
o 輸出下一個法文字「chat」
3. 如此重複,直到產出完整句子
________________________________________
🧠 三、核心設計:Encoder-Decoder Attention
Transformer 中的 Encoder-Decoder Attention 是解碼器的核心設計之一,它讓 Decoder 在生成每個詞時,不只是依賴自己先前已輸出的內容(透過 Self-Attention 理解上下文),還能透過 Encoder-Decoder Attention 對 Encoder 輸出的語意向量進行查詢,找出與當前生成位置最相關的輸入詞。
這就像 Decoder 一邊說話、一邊「回頭看」輸入句子中最關鍵的部分,使翻譯或回應更貼切自然,是實現輸入輸出對齊的關鍵機制。
________________________________________
🧩 四、與 RNN Seq2Seq 架構的比較
相較於傳統的 Seq2Seq(RNN)架構,Transformer 的 Encoder-Decoder 設計在多個面向都有突破。RNN 通常將整個輸入序列壓縮成單一向量來表示語意,容易在長句中遺失資訊;而 Transformer 保留每個位置的語境向量,使語意保留更完整。在處理方式上,RNN 必須逐詞處理(串行),而 Transformer 則能同時計算(全並行),大幅提高訓練效率。更重要的是,Transformer 的 Self-Attention 機制讓模型能輕易捕捉長距離依賴,克服了 RNN 隨序列增長記憶衰減的問題,成為現代自然語言處理的主流架構。
________________________________________
🌐 五、典型應用場景
任務類型 說明
🈂️ 機器翻譯 Encoder 理解源語言 → Decoder 輸出目標語言
📝 自動摘要 Encoder 理解長文 → Decoder 精煉生成摘要
🤖 問答系統 Encoder 理解問題與上下文 → Decoder 生成答案
🎨 圖片描述生成 Encoder 使用 CNN 理解圖片 → Decoder 輸出語句
________________________________________
📚 六、小結與啟示:
✅ Encoder-Decoder 架構是「輸入理解 → 輸出生成」任務的標準架構。
✅ 兩者透過 Attention 互動,形成類似「訊息壓縮 → 回應重建」的智慧轉換。
✅ Transformer 中的這個架構取代了 RNN,成為語言模型、新一代 AI 的主力核心。
________________________________________
1️⃣ Decoder 為什麼不能直接看到完整輸出序列?遮罩的意義是什麼?
ANS:
Decoder 在訓練時是根據「已產生的詞」來預測下一個詞,因此不能「偷看」未來的詞。這就是為什麼需要使用遮罩(masking)機制,在 Self-Attention 中阻擋 Decoder 注意未來的輸出,強迫它只能依據目前和過去的詞做預測。這樣的設計能模擬真實生成時的行為,確保訓練與推理過程一致,有助於提升模型泛化能力與語句流暢度。
2️⃣ Encoder-Decoder Attention 在翻譯任務中扮演什麼角色?
ANS:
在翻譯任務中,Encoder-Decoder Attention 的角色就像橋梁,讓 Decoder 能在每一步生成詞彙時,選擇性地關注輸入句子中最相關的詞語。例如,當 Decoder 要產生「他」時,它可以透過這個注意力機制對應到 Encoder 輸入中的「John」。這種對齊功能讓翻譯更準確,也讓模型能靈活處理語序不同的語言。
3️⃣ 如果把 Encoder 換成圖像處理模型,是否還能使用 Decoder 生成描述?
ANS:
可以,這正是圖像描述(Image Captioning)任務中的典型做法。輸入圖像會先透過 CNN 或 Vision Transformer 提取為特徵向量(就像語言中的 Encoder 輸出),然後用文字 Decoder 接收這些向量作為語意資訊,逐步產生描述句子。這證明 Transformer Decoder 是模態無關的生成模組,只要 Encoder 能提供有意義的表示,它就能進行語言生成。