CH4.3 深度學習原理與框架
深度學習原理與框架
人工神經元/感知器 → 激活函數引入非線性 → 前向傳播(做預測)與反向傳播(調參數,靠鏈式法則計算梯度)→ 過擬合與正則化技術 → 深度模型架構家族:MLP → CNN(卷積/池化/全連接)→ RNN(LSTM/GRU)→ Transformer(注意力機制/自注意力/多頭注意力)→ 生成式模型(自編碼器/GAN)→ 主流框架(TensorFlow、PyTorch)。
1. 人工神經元與感知器
人工神經元是受生物神經元啟發設計的數學模型:接收多個輸入,加權求和後透過激活函數產生輸出:
感知器(Perceptron)是最早的人工神經元模型之一(Frank Rosenblatt, 1957),使用步階函數(Step Function)作為激活函數,可解決線性可分的二元分類問題,但無法解決非線性可分問題,如經典的 XOR 問題,這正是後續多層神經網路發展的動機。
2. 激活函數:賦予非線性的關鍵
若沒有激活函數,或只用線性激活函數,無論神經網路有多少層,最終輸出都只是輸入的線性組合,等同於單層線性模型。激活函數的根本作用就是引入非線性,讓神經網路能逼近任意複雜的函數關係。
| 激活函數 | 公式 | 輸出範圍 | 適用位置 |
|---|---|---|---|
| Sigmoid | \(\sigma(x)=\dfrac{1}{1+e^{-x}}\) | (0,1) | 二元分類輸出層 |
| Tanh | \(\tanh(x)=\dfrac{e^x-e^{-x}}{e^x+e^{-x}}\) | (-1,1) | 隱藏層,需正負對稱輸出時 |
| ReLU | \(\text{ReLU}(x)=\max(0,x)\) | [0,∞) | 深度網路隱藏層(計算快、緩解梯度消失) |
| Softmax | \(\text{Softmax}(z_i)=\dfrac{e^{z_i}}{\sum_j e^{z_j}}\) | 總和為 1 的機率分佈 | 多類別單選輸出層 |
3. 前向傳播與反向傳播
| 步驟 | 目標 | 說明 |
|---|---|---|
| 前向傳播(Forward Propagation) | 做預測 | 輸入資料逐層計算(加權求和 + 激活函數),一路推進到輸出層產生預測結果 |
| 反向傳播(Backpropagation) | 調整參數 | 比較預測與真實答案計算損失,透過鏈式法則(Chain Rule)將誤差從輸出層反向傳遞至每一層,計算損失對各權重的梯度,再由優化器更新權重 |
「前向傳播做預測,反向傳播找錯改錯」——前向推論一次,反向沿鏈式法則逐層歸因,兩者反覆循環構成一次完整的訓練迭代。
4. 過擬合與正則化技術
過擬合(Overfitting):模型在訓練資料表現優異,但在未見過的新資料上表現顯著下降。常見成因:模型過於複雜、訓練資料不足、訓練時間過長。特徵:訓練集損失低、準確率高;驗證集損失高、準確率明顯低於訓練集。
| 正則化技術 | 核心概念 |
|---|---|
| L1 正則化(Lasso) | 加入權重絕對值總和,促使部分權重縮為零,達到特徵選擇效果 |
| L2 正則化(Ridge) | 加入權重平方和,防止權重過大,讓模型更平滑穩定 |
| Elastic Net | 結合 L1 與 L2,兼具特徵選擇與權重平滑 |
| Dropout | 訓練時隨機屏蔽部分神經元,避免神經元間過度依賴 |
| 早停法(Early Stopping) | 驗證集損失不再下降時提前停止訓練 |
> 詳細原理與公式請對照 CH5.4 模型調整與優化。
5. 深度模型架構家族
(1) 多層感知器(MLP)
由輸入層、隱藏層、輸出層構成的前饋(Feedforward)全連接網路,資訊單向流動。優點:概念簡單、可逼近任意複雜非線性函數。缺點:對輸入的空間或序列關係不敏感(會把圖片、文字攤平成一維向量,丟失空間/序列資訊)、參數量大、易過擬合、缺乏可解釋性。
(2) 卷積神經網路(CNN)
| 結構層 | 功能 |
|---|---|
| 卷積層(Convolutional Layer) | 卷積核在輸入上滑動提取局部特徵,透過權重共享(Weight Sharing)大幅減少參數,並使模型具位置不變性 |
| 激活函數層 | 通常接 ReLU,增加非線性表達能力 |
| 池化層(Pooling Layer) | 降採樣縮減特徵映射尺寸(最大池化/平均池化),增加平移不變性 |
| 全連接層(Fully Connected Layer) | 將高層次抽象特徵扁平化後進行最終分類/迴歸 |
CNN 的權重共享(Weight Sharing)同時達成兩個效果:大幅減少參數量(降低過擬合風險)與辨識位置不變的特徵(例如無論貓的眼睛在圖像左邊或右邊都能被同一濾波器辨識),這是 CNN 相對 MLP 最核心的優勢來源。
CNN 衍伸模型演進:AlexNet(首次證明深層 CNN 的威力)→ VGG(堆疊小型 3×3 卷積核加深網路)→ GoogLeNet/Inception(並行不同尺度卷積)→ ResNet(殘差連接解決梯度消失,可建構數百層網路)→ DenseNet(特徵極大重用)→ MobileNet/EfficientNet(輕量化、高效部署)。
(3) 遞迴神經網路(RNN)
專為序列資料設計,神經元間存在循環連接,隱藏狀態 \(H_t\) 由當前輸入與前一時間步隱藏狀態共同決定,使當前輸出依賴過去的「記憶」。權重跨時間步共享,訓練使用時間上的反向傳播(BPTT, Backpropagation Through Time)。
| 缺點 | 說明 |
|---|---|
| 梯度消失(Vanishing Gradient) | 長序列中梯度指數級衰減,難以學習遠距離依賴 |
| 梯度爆炸(Exploding Gradient) | 梯度指數級增長,訓練不穩定 |
| 訓練速度慢 | 序列性計算本質上是串行的,難以平行化 |
RNN 衍伸模型:
| 模型 | 核心機制 | 特點 |
|---|---|---|
| LSTM(Long Short-Term Memory) | 輸入門、遺忘門、輸出門 + 獨立細胞狀態(Cell State) | 有效解決梯度消失,能捕捉長期依賴 |
| GRU(Gated Recurrent Unit) | 更新門、重置門(只有兩個門) | LSTM 簡化版,計算量更少,效果相當 |
| 雙向 RNN(Bi-RNN) | 同時訓練正向與反向兩個方向的 RNN | 能同時考慮過去與未來的上下文,適合命名實體辨識 |
(4) Transformer 架構
Transformer(2017《Attention Is All You Need》)完全基於注意力機制,捨棄 RNN 的循環結構與 CNN 的卷積結構,可並行化處理序列並捕捉長距離依賴。
| 組件 | 功能 |
|---|---|
| 編碼器(Encoder)堆疊 | 將輸入序列轉換為富含上下文資訊的表示 |
| 解碼器(Decoder)堆疊 | 接收編碼器輸出與已生成的部分序列,自迴歸生成目標序列,內含遮罩自注意力避免「偷看」未來 |
| 自注意力(Self-Attention) | 將輸入映射為 Query(我在找什麼)、Key(我能提供什麼)、Value(我提供的內容),計算任意兩元素間的關聯權重 |
| 多頭注意力(Multi-Head Attention) | 並行執行多次獨立自注意力,從不同「表示子空間」捕捉多樣關係 |
| 位置編碼(Positional Encoding) | 用正弦/餘弦函數將位置資訊注入詞嵌入,彌補無循環結構帶來的順序缺失 |
| 殘差連接與層歸一化 | 緩解深層網路梯度消失,穩定訓練並減少內部協變偏移(ICS) |
Transformer 自注意力機制的計算複雜度與序列長度的平方成正比 O(L²),處理極長序列時計算量與記憶體消耗巨大,這是其主要限制,因此才衍生出 Longformer、Reformer 等稀疏注意力/長序列 Transformer 變體。
Transformer 衍伸模型:BERT(僅用編碼器,雙向上下文預訓練,擅長語言理解)、GPT 系列(僅用解碼器,單向自迴歸,擅長文本生成)、T5(統一為 Text-to-Text 框架)、Vision Transformer(ViT,將圖像切成 Patch 序列輸入 Transformer)。
(5) 生成式模型
| 模型 | 結構 | 訓練目標 | 優缺點 |
|---|---|---|---|
| 自編碼器(Autoencoder) | 編碼器(壓縮至瓶頸層)+ 解碼器(重構回原維度) | 最小化重構誤差 | 優點:降維、特徵學習、去噪、異常偵測;缺點:只能重構而非生成全新多樣樣本 |
| GAN(生成對抗網路) | 生成器(Generator)vs 判別器(Discriminator) | 零和博弈,生成器騙過判別器 | 優點:生成品質極高;缺點:訓練不穩定,易發生模式崩潰(Mode Collapse) |
自編碼器的目標是「重構」輸入(學習壓縮表示),GAN 的目標是「生成」全新樣本(透過對抗學習資料分佈)——這是兩種生成式模型最本質的差異,也是選擇題常考的辨析重點。
6. 主流深度學習框架比較
| 框架 | 開發者 | 核心特性 | 定位 |
|---|---|---|---|
| TensorFlow | 早期靜態計算圖,2.x 起支援 Eager Execution;跨平台部署(CPU/GPU/TPU/行動裝置/網頁) | 生產級部署生態完整(TFX、TensorFlow Serving) | |
| Keras | (已整合進 TensorFlow) | 高階 API,極簡、模組化,tf.keras | 快速原型開發 |
| PyTorch | Meta(Facebook AI Research) | 動態計算圖(Define-by-Run),Pythonic 介面,內建 Autograd 自動微分 | 學術研究與快速實驗的主流選擇 |
| JAX | 結合 NumPy 易用性、自動微分與 GPU/TPU 高效運算 | 數值計算庫而非端到端框架 | |
| MXNet | Apache/AWS | 混合式程式設計(符號式+命令式) | 多語言綁定 |
「TensorFlow 早期像寫劇本先寫完再演(靜態圖),PyTorch 像即興演出邊寫邊演(動態圖)」——這個對比是框架選型與考題辨析的最快記憶法。
📝 章節考題自測(先作答,再點開解答)
Q1. 在深度學習中,用於學習資料中局部特徵的網路架構通常是什麼?
(A) 循環神經網路(RNN) (B) 決策樹 (C) 卷積神經網路(CNN) (D) 隨機森林
解答與解析
參考 Ans: (C) 卷積神經網路(CNN)透過卷積層偵測局部特徵,尤其擅長處理影像、語音等具空間或時間結構的資料。
Q2. 下列何者是為了引入非線性,使神經網路能學習複雜模式的元件?
(A) 損失函數 (B) 激活函數 (C) 隱藏層 (D) 梯度下降
解答與解析
參考 Ans: (B) 激活函數為神經網路帶來非線性能力,若沒有激活函數,多層網路仍只是線性變換,無法表現複雜的關係。
Q3. Transformer 模型中用來捕捉輸入序列不同位置間依賴關係的核心機制是什麼?
(A) 池化機制 (B) 注意力機制(Attention) (C) 決策樹分支 (D) 激活函數
解答與解析
參考 Ans: (B) Transformer 核心在於注意力機制,透過計算序列中各元素間的關聯權重捕捉長距離依賴,徹底取代傳統 RNN 的循環架構。
Q4. 下列關於 LSTM 與 GRU 的敘述,何者正確?
(A) LSTM 只有兩個門,GRU 有三個門 (B) GRU 是 LSTM 的簡化版,只包含更新門與重置門 (C) 兩者皆無法處理長期依賴問題 (D) GRU 的參數量比 LSTM 多
解答與解析
參考 Ans: (B) GRU 是 LSTM 的簡化版本,只包含更新門(Update Gate)與重置門(Reset Gate)兩個門,計算複雜度與參數量比 LSTM 少,但在許多任務上仍能達到相當性能;LSTM 則有輸入門、遺忘門、輸出門三個門加上獨立細胞狀態。
Q5. 自編碼器(Autoencoder)與生成對抗網路(GAN)最本質的差異為何?
(A) 自編碼器目標是重構輸入,GAN 目標是透過對抗學習生成全新樣本 (B) 兩者訓練目標完全相同 (C) GAN 不能用於影像生成 (D) 自編碼器一定比 GAN 生成品質更好
解答與解析
參考 Ans: (A) 自編碼器透過最小化重構誤差學習壓縮表示,主要用於降維、特徵學習與異常偵測;GAN 透過生成器與判別器的對抗學習資料分佈,能生成全新且多樣的樣本,這是兩者最核心的差異。
Q6. 下列何者是 CNN 中「權重共享(Weight Sharing)」帶來的效果?
(A) 增加參數量以提升表達力 (B) 減少參數量並使模型具位置不變性 (C) 使模型無法辨識平移後的特徵 (D) 只能用於全連接層
解答與解析
參考 Ans: (B) 同一卷積核在輸入不同位置共享權重,減少了模型的參數數量,同時使 CNN 能辨識圖像中位置不變的特徵,例如無論物體在圖像何處都能被同一濾波器偵測到。
Q7. PyTorch 相較於早期 TensorFlow 最大的架構特點差異為何?
(A) PyTorch 使用靜態計算圖,TensorFlow 使用動態計算圖 (B) PyTorch 使用動態計算圖(Define-by-Run),運算定義時立即執行 (C) 兩者計算圖機制完全相同 (D) PyTorch 不支援自動微分
解答與解析
參考 Ans: (B) PyTorch 最大特點是動態計算圖,運算在定義時立即執行,行為更像標準 Python 代碼,簡化了調試與實驗流程;早期 TensorFlow(1.x)則採靜態計算圖,需先構建完整圖形再執行。
Q8. 機器學習模型若過度學習訓練資料中的雜訊,導致泛化能力下降,此現象稱為什麼?
(A) 欠擬合 (B) 過擬合 (C) 特徵縮放 (D) 梯度爆炸
解答與解析
參考 Ans: (B) 過擬合是指模型在訓練資料上表現極好,卻無法在未知新資料上維持預測效能,通常因模型過於複雜,學習到不具代表性的雜訊所致。
Q9. 感知器(Perceptron)最主要的限制是什麼?
(A) 無法處理任何分類問題 (B) 無法解決非線性可分問題,如 XOR 問題 (C) 計算成本過高,無法實作 (D) 只能用於迴歸任務
解答與解析
參考 Ans: (B) 單一感知器只能解決線性可分的分類問題,無法解決如 XOR 這類非線性可分的問題,這正是後續發展多層神經網路(MLP)以引入非線性能力的關鍵動機。
Q10. Transformer 架構的自注意力機制計算複雜度與序列長度的關係為何?
(A) 呈線性關係 O(L) (B) 與序列長度無關 (C) 與序列長度平方成正比 O(L²) (D) 呈對數關係 O(log L)
解答與解析
參考 Ans: (C) 自注意力機制的計算複雜度與序列長度的平方 O(L²) 成正比,處理極長序列時計算量與記憶體消耗巨大,這是原始 Transformer 的主要限制,也是 Longformer、Reformer 等長序列變體要解決的問題。