---
# System prepended metadata

title: 【Hung-yi Lee Machine Learning L4】深度學習

---

# 1. 深而非寬
## 1.1. 深層網路具有更佳表現
根據 Interspeech 2011 論文，於語音辨識任務中比較不同深度的神經網路，其錯誤率如下表：

| 層數 × 神經元數 | 語音辨識錯誤率（%） |
| --------- | ---------- |
| 1 × 3772  | 22.5       |
| 1 × 4634  | 22.6       |
| 1 × 16000 | 22.1       |



可以觀察到，當層數逐漸增加時，錯誤率穩定下降，顯示網路深度能有效提升表現。

即使將單層神經元數擴展至極大，如下列配置：

| 層數 × 神經元數 | 語音辨識錯誤率（%） |
| --------- | ---------- |
| 1 × 3772  | 22.5       |
| 1 × 4634  | 22.6       |
| 1 × 16000 | 22.1       |

其效果仍不如深層架構，證明僅增加寬度無法取代深度。

## 1.2. 架構比較：Fat vs. Deep
Fat 結構（寬而淺）指單層使用大量神經元；Deep 結構（窄而深）則使用多層堆疊，每層少量神經元。兩者在相同參數數量下，Deep 結構具備更高表現力與泛化能力。

在輸入維度為 $x$ 的情況下，Fat 結構需使用 $2^K$ 個神經元才能產生 $2^K$ 個線段：

$y = \sum_{i=1}^{2^K} c_i \cdot \max(0, w_i x + b_i)$。

而 Deep 結構僅需 $K$ 層，每層 2 個神經元，即可生成同樣段數的分段線性函數。

## 1.3. 數學構造證明：分段區間指數成長
以每層含兩個 ReLU 神經元為例：

1.第一層輸出 $a_1$：2 段

2.第二層輸出 $a_2$：4 段

3.第三層輸出 $a_3$：8 段

依此推論，$K$ 層的深層網路可產生 $2^K$ 段分段線性函數。相對於 Shallow 架構所需的 $2^K$ 個神經元，Deep 架構更具參數效率。

【Shallow 架構】

1.較大假設空間（larger $|\mathcal{H}|$）

2.容易 overfitting

【Deep 架構】

1.較小假設空間（smaller $|\mathcal{H}|$）

2.泛化能力更佳

# 2.隱藏層的必要性
## 2.1. 函數逼近與分段線性
在數學上，任意連續函數皆可透過分段線性函數（piecewise linear function）近似。神經網路可透過激活函數的組合達成此目標，特別是 ReLU 或 sigmoid 函數。透過下式構造，可近似任意目標函數：

$f(x) \approx b + \sum_{i=1}^{n} c_i \cdot \phi(w_i x + b_i)$。

其中，$b$ 為偏差項，$c_i$ 為輸出層權重，$\phi$ 為非線性激活函數（如 ReLU 或 sigmoid），$w_i x + b_i$ 為每個神經元的加權輸入。

因此，一個分段線性函數可以表達為：

$\text{piecewise linear} = \text{constant} + \sum \text{simple basis functions}$。

這是單層神經網路表達能力的基礎。

## 2.2. Sigmoid、Hard Sigmoid 與 ReLU 的表示能力
以 sigmoid 為例，其函數形式為：

$\sigma(z) = \frac{1}{1 + e^{-z}}$。

可進一步用於構造如下輸出：

$y = c \cdot \sigma(b + w x)$。

其中，$c$ 為縮放常數，可調整輸出範圍。

若使用 ReLU（Rectified Linear Unit）則表達形式更為簡潔：

$y = c \cdot \max(0, b + w x)$。

ReLU 函數具有以下特性：

1.線性且稀疏（非負區間有效）

2.可構造出任意多段的線性函數

透過數個 ReLU 函數的加總，可拼接出更複雜的分段函數，如：

$f(x) \approx \sum_{i=1}^{n} c_i \cdot \max(0, b_i + w_i x)$

這樣的表示能力即為單層隱藏層神經網路的核心。

# 3. 隱藏層的實作
## 3.1. 單隱藏層的結構與運作
一個典型的單隱藏層神經網路架構如下：

$y = b + \sum_{i=1}^{n} c_i \cdot \phi(w_i x + b_i)$

其中，輸入 $x$ 經由每個神經元的線性轉換 $w_i x + b_i$，經過激活函數 $\phi$ 處理後輸出 $a_i = \phi(w_i x + b_i)$，所有 $a_i$ 經加權合成產出最終輸出 $y$。

以 ReLU 為激活函數時，每個神經元可視為產生一段線性片段，整體輸出為其線段加總所構成之分段線性函數（piecewise linear function）。

透過調整參數組 $(w_i, b_i, c_i)$，該網路能夠逼近任意連續函數。
## 3.2. 單層不夠高效
根據 Universal Approximation Theorem，只要使用非線性激活函數，單隱藏層神經網路即可逼近任意連續函數，公式如下：

$\forall \ \varepsilon > 0,\ \exists\ f(x) = \sum_{i=1}^{n} c_i \cdot \phi(w_i x + b_i)\ \text{such that} \ |f(x) - g(x)| < \varepsilon$。

但此定理僅保證存在性，不代表在實務上具備效能。其限制包括：

1.需要大量神經元 $n$ 才能達成精準逼近。

2.每個神經元獨立運算，缺乏中間抽象表示。

3.訓練困難，需處理高維度參數空間。

4.易發生 overfitting，泛化能力受限。



# 4.深度網路的理解方式
## 4.1. 剪紙比喻：複雜圖形來自簡單刀法
觀察複雜剪紙圖樣的製作過程，可以發現整體圖形並非一次完成，而是透過數次簡單的摺疊與剪裁疊代生成。每一次剪裁對應神經網路中一層的處理。透過多層的「簡單操作」，最終得以產生高度複雜的輸出。

這說明：若將複雜任務分解為多層處理，每層只需執行簡單運算，便能以低成本實現高表現力。深層網路即為此類「層疊式剪紙系統」，具備結構重用與建構複雜形狀的能力。

## 4.2. 程式設計比喻：避免將所有邏輯寫在 main 函數中
良好的程式設計通常會將複雜任務拆解為多個模組與函數：

1.主程式（main）只保留核心流程。

2.重複子問題透過函數封裝後多次使用。

3.程式邏輯具備階層、結構清晰、維護容易。

深層神經網路與此相似：

1.每層專責處理輸入特徵的一部分抽象。

2.輸出層在前面層之上進一步整合資訊。

3.結構化設計促進學習效率與模型可解釋性。

反之，若將所有邏輯集中於單一層（如單層網路），則結構雜亂、無法重用，訓練與泛化皆受影響。

## 4.3. 邏輯電路比喻：層級結構可重用中間結果
以 parity check 為例，計算一組位元中 1 的個數是否為奇數：

1.若使用兩層邏輯電路，需建構所有可能輸入組合之布林表，計算資源為 $O(2^d)$。

2.若改用多層結構，可透過 XOR 閘逐層整合結果，總成本降至 $O(d)$。

對應神經網路：

1.Shallow 架構無法重用中間計算結果，每個輸出需獨立建構。

2.Deep 架構具備階層式重用特徵，能有效減少總參數與運算資源。

3.此證明深層架構非僅是視覺上「更高」，而是在資訊處理上具備結構性與效率性優勢。

# 5.技術總結
無論從數學理論、實作效率、電路設計、程式架構或實驗結果觀之，皆顯示：

深度是神經網路表現力與效率的關鍵。在設計機器學習模型時，應避免過度依賴單層寬度，轉而利用多層結構達成更強泛化能力與更佳訓練效率。 

## 5.1. 單層神經網路具有理論表示能力，但效能有限
根據 Universal Approximation Theorem，單隱藏層神經網路在理論上可逼近任意連續函數：

$\forall\ \varepsilon > 0,\ \exists\ f(x) = \sum_{i=1}^{n} c_i \cdot \phi(w_i x + b_i)\ \text{such that}\ |f(x) - g(x)| < \varepsilon$。

然而，在實際應用上，單層架構存在以下限制：

1.需大量神經元以達期望表現。

2.參數空間龐大，訓練困難。

3.缺乏結構性，不利於中間特徵重用。

4.容易 overfitting，泛化能力差。

## 5.2. 深層神經網路具備結構優勢與表示效率
深層架構能透過層層組合簡單單元，建構複雜非線性函數，並具備以下優點：

1.使用較少參數即可表示高度複雜函數。

2.中間層具備抽象與重用能力，提升學習效率。

3.模型結構對應現實世界的多層次邏輯（如語言、視覺、推理）。

4.在實驗數據中表現顯著優於寬層模型。



