---
# System prepended metadata

title: 【機器學習2022】 1~4 機器學習原理介紹
tags: [機器學習]

---

20251010 筆記，內容可能有錯，請參考來源影片。

[李宏毅機器學習2022影片](https://www.youtube.com/playlist?list=PLJV_el3uVTsPM2mM-OQzJXziCGJa8nJL8)


今天影片內容

[【機器學習2022】開學囉~ 又要週更了~](https://youtu.be/7XZR0-4uS5s?si=bOnuc4M4bLd62KRp)


[【機器學習 2022】再探寶可夢、數碼寶貝分類器 — 淺談機器學習原理](https://youtu.be/_j9MVVcvyZI?si=XWd6-rEjGdtl0qKC)


[【機器學習 2022】為什麼用了驗證集 (validation set) 結果卻還是過擬合(overfitting)了呢？](https://youtu.be/xQXh3fSvD1A?si=ZilXlHjzvZg3ANhe)


[【機器學習 2022】魚與熊掌可以兼得的深度學習](https://youtu.be/yXd2D5J0QDU?si=DJZQr3wxnraHt_VN)


### 【機器學習2022】開學囉~ 又要週更了~ 大綱


**I. 課程安排與學習步調**
**II. 機器學習與深度學習核心概念**
    A. 機器學習的定義：尋找函式
    B. 深度學習與類神經網路
    C. 函式的輸入與輸出類型及任務
    D. 前六講作業範例
**III. 主要學習種類**
    A. 監督式學習 (Supervised Learning)
    B. 自我監督式學習 (Self-Supervised Learning) 與基礎模型 (Foundation Model)
    C. 生成對抗網路 (Generative Adversarial Networks, GAN)
    D. 強化學習 (Reinforcement Learning, RL)
**IV. 進階課題 (Advanced Topics)**
    A. 異常檢測 (Anomaly Detection)
    B. 可解釋性 AI (Explainable AI)
    C. 模型攻擊與防禦 (Model Attack/Defense)
    D. 領域適應 (Domain Adaptation)
    E. 模型壓縮 (Model Compression)
    F. 機器終身學習 (Lifelong Learning)
    G. 元學習 (Meta Learning)

---

### I. 課程安排與學習步調
本課程總共有 **15 講**。課程錄影目前都已放在課程網頁上，學習可以立即開始，學生可以自行決定學習步調，也可以花一個週末把所有課程看完。
每講都有一個對應的作業。上課時間除了助教講解作業之外，今年還會講述一些**與作業無關的新內容**，但學生可以自行決定是否要來聽講。

### II. 機器學習與深度學習核心概念

#### A. 機器學習的定義：尋找函式
機器學習 (Machine Learning, ML) **具體而言就是叫機器幫我們找到一個函式**。
這個函式通常是**人類寫不出來的複雜函式**。
*   **舉例：**
    *   **語音辨識：** 函式的輸入是**聲音訊號**，輸出是**對應的文字**。
    *   **影像辨識：** 函式的輸入是**一張圖片**，輸出是**圖片裡的內容**。
    *   **圍棋 (如 AlphaGo)：** 函式的輸入是**棋盤上黑子跟白子的位置**，輸出是**下一部要落子的位置**。

#### B. 深度學習與類神經網路
本課程會特別著重在機器學習中的一個關鍵技術，稱為**深度學習 (Deep Learning)**。 當談論深度學習時，意指機器要找到的函式是用**類神經網路**來表示的。

#### C. 函式的輸入與輸出類型及任務
*   **輸入類型：**
    *   **向量 (Vector)**
    *   **矩陣 (Matrix)：** 例如在做影像辨識時，圖片通常用矩陣表示。
    *   **序列 (Sequence)：** 例如語音辨識、翻譯，輸入是一段聲音訊號、一句話或一段文字。
*   **輸出類型及對應任務：**
    *   **數值 (Value)：** 這種任務稱為**迴歸 (Regression)**。
    *   **類別 (Category)：** 機器從提供的選項中選擇一個，稱為**分類 (Classification)**。
    *   **更複雜的輸出：** 例如讓機器寫一段話、寫一篇文章，甚至**畫圖**。

#### D. 前六講作業範例
*   **第 1 個作業：** COVID-19 確診率的預測。輸入是**向量**，輸出是**數值** (Regression)。
*   **第 2 個作業：** Phoneme (音素) 分類。輸入是**向量**，輸出是**類別** (Classification)。
*   **第 3 個作業：** 影像辨識。輸入是**圖片**（向量），輸出是**類別**。
*   **第 4 個作業：** 說話者辨識 (Speaker Verification/Diarization)。輸入是**序列**（一段聲音），輸出是**類別**。
*   **第 5 個作業：** 機器翻譯。輸入是一個**序列**（如中文），輸出是另一個**序列**（如英文）。
*   **第 6 個作業：** 動漫人物人臉的生成。

### III. 主要學習種類

#### A. 監督式學習 (Supervised Learning)
這是第 1 到第 5 個作業採用的方法。
*   **執行方式：** 必須收集大量訓練資料，且每筆資料都需要有**標記 (label)**。
*   **範例：** 訓練寶可夢與數碼寶貝分類器。需收集動物並標記它是寶可夢還是數碼寶貝。
*   **問題：** 標記資料是**非常耗費人工**的。為了每個新任務都收集足夠標記資料非常麻煩。

#### B. 自我監督式學習 (Self-Supervised Learning) 與基礎模型 (Foundation Model)
*   **動機：** 解決監督式學習中標記資料不足且耗時的問題。
*   **概念：** 模型在訓練新任務之前，先透過**預訓練 (pre-training)** 練成一些「基本功」。
*   **基本功訓練：** 針對影像辨識，預訓練不需任何標註，只需要網路上**大量未標註的影像資料**。機器會學會一些基本任務，例如分辨左右反轉或變色的圖片是否為同一物體。
*   **應用：** 一旦練好基本功，就可以在下游任務 (downstream tasks) 上取得好結果，例如分類寶可夢/數碼寶貝或蘋果/橘子。
*   **基礎模型 (Foundation Model)：** 預訓練模型被稱為基礎模型。擁有好的預訓練模型，就像擁有好的作業系統（如 Android 或 iOS），能處理困難部分，讓開發新任務變得簡單。
*   **BERT 範例：** **BERT** 是最知名的 Foundation Model 之一。BERT 在大眾印象中是龐大的怪物，因為它有 **3.4 億個參數**。

#### C. 生成對抗網路 (Generative Adversarial Networks, GAN)
*   **用途：** 允許在**沒有成對** $x$ 和 $y$ 關聯資料的情況下，讓機器自動找出它們之間的關聯。
*   **範例：** 語音辨識。傳統上需收集聲音訊號並標註對應的文字。使用 GANs 技術，只需讓機器**聽大量聲音訊號，並閱讀大量文字**（不需要來自相同來源），機器就有辦法自動學會語音辨識。

#### D. 強化學習 (Reinforcement Learning, RL)
*   **適用情境：** 當**不知道如何標註資料**，但**可以判斷好壞**時使用。
*   **範例：** 訓練機器下圍棋。人類不知道看到某盤式時，最佳的落子位置在哪（無法標註），但知道下贏了是好、輸了是不好（可定義成功）。

### IV. 進階課題 (Advanced Topics)

#### A. 異常檢測 (Anomaly Detection) (第8講)
目的是讓機器具備**回答「我不知道」的能力**。例如，如果分類器只訓練過寶可夢和數碼寶貝，當它看到一隻真正的暴龍時，應該能夠識別出這是一個異常，而不是被迫回答它是寶可夢或數碼寶貝之一。

#### B. 可解釋性 AI (Explainable AI) (第9講)
要求模型不只是回答正確答案，還要**告訴我們為什麼**。
*   **可解釋性 AI 的重要性：** 避免模型學到錯誤的或虛假的關聯性。
*   **實例：** 在寶可夢/數碼寶貝分類器實驗中，模型達到了 98.4% 的高正確率，但檢查後發現，模型是根據圖片檔案格式（寶可夢是 PNG 檔，數碼寶貝是 JPG 檔，導致背景不同）進行分類，**機器實際上什麼都沒學到**。

#### C. 模型攻擊 (Model Attack/Defense) (第10課)
即使影像辨識系統號稱與人類相當，但仍存在弱點。**攻擊方式：** 在貓的圖片中加入**人眼看不到的微小雜訊**，機器可能會以高信心地將其誤判為海星，會探討攻擊技術和防禦的可能性。

#### D. 領域適應 (Domain Adaptation) (第11講)
處理訓練資料與測試資料**分佈不相似 (distribution mismatch)** 的情況。例如，模型用黑白手寫數字訓練，但用彩色數字測試時，正確率會從 99.5% **暴跌至 57.5%**。

#### E. 模型壓縮 (Model Compression) (第13課)
由於模型（如 BERT）非常巨大，在運算資源有限時（如手機或智慧手錶）難以運行，模型壓縮可以讓模型變小，減少計算量和記憶體儲存空間。

#### F. 終身學習 (Lifelong Learning) (第14課)
探討邁向「天網」的挑戰，即為何機器無法不斷學習新技術。

#### G. 元學習 (Meta Learning) (第15課)
**學習如何學習 (Learn to Learn)**。
*   **核心：** 機器從大量任務中**自己發明新的學習演算法**，不再使用人設計的演算法。
*   **與小樣本學習 (Few-shot Learning) 的關係：** Meta Learning 與 Few-shot Learning (用少量標註資料學習) 非常相關。由於人設計的演算法無法讓機器只看一兩個範例就學會，因此需要 Meta Learning 來發明新演算法，實現小樣本學習。

### 【機器學習 2022】再探寶可夢、數碼寶貝分類器 — 淺談機器學習原理 大綱


**I. 機器學習基礎與過度擬合 (Overfitting) 的理論探討**
    A. 機器學習三步驟回顧
    B. 參數數量與過度擬合的關係
**II. 寶可夢與數碼寶貝分類器案例研究**
    A. 資料觀察與函式 (Function) 定義
    B. 模型複雜度與參數空間 ($\mathcal{H}$)
    C. 損失函式 (Loss Function) 定義與誤差率
**III. 理想 (Ideal) 與現實 (Reality) 的差距分析**
    A. 理想狀態 ($H^o$ 與 $\mathcal{D}^o$)
    B. 現實狀態 ($H^{train}$ 與 $\mathcal{D}^{train}$) 與隨機取樣的影響
    C. 數學邊界：壞訓練資料的出現機率
**IV. 機器學習的兩難困境 (The Dilemma)**
    A. 模型複雜度 (Capacity) 對結果的影響
    B. 深度學習 (Deep Learning) 如何克服兩難

---

### I. 機器學習基礎與過度擬合 (Overfitting) 的理論探討

#### A. 機器學習三步驟回顧
機器學習的目標是**找到一個函式**。這個過程包含三個步驟：
1.  **定義一個有未知參數的函式** (function)。
2.  **決定損失函式** (loss function, $\mathcal{L}$)。
3.  **執行最佳化** (optimization)，找到能讓 $\mathcal{L}$ 最小化的參數。

#### B. 參數數量與過度擬合的關係
為什麼參數越多，越容易發生**過度擬合 (overfitting)**。
過度擬合意味著：在訓練資料上觀察到的損失（L）**與**實際測試時觀察到的損失（L ) 之間的差距會變大。

### II. 寶可夢與數碼寶貝分類器案例研究

#### A. 資料觀察與函式定義
*   **任務困難點：** 寶可夢（Pokémon）與數碼寶貝（Digimon）兩群生物長相非常相似（例如，都有類似暴龍的生物，像是 小火龍/亞古獸）。
*   **特徵觀察：** 兩者在**畫風**上有顯著差異。數碼寶貝多為**人型**，線條較**複雜**。寶可夢則走**圓潤**的兒童路線，線條較**簡單**。
*   **函式假設：** 透過**邊線偵測 (Edge Detection)** 來量化線條的複雜程度。複雜度以**白色像素點的數量**表示。
    *   觀察結果：數碼寶貝的白色點平均而言比寶可夢多。
*   **分類函式 ($f_H$)：** 定義一個函式 $f$，輸入一張圖片，計算其線條複雜度。如果複雜度**超過某個閾值 ($H$)**，則判斷為數碼寶貝；反之則為寶可夢。
*   **未知參數：** 閾值 $H$。

#### B. 模型複雜度與參數空間 ($\mathcal{H}$)
*   **參數集合 ($\mathcal{H}$)：** 假設線條複雜度範圍為 1 到 10,000，則 $H$ 的所有可能整數值組成了集合 $\mathcal{H}$。
*   **模型複雜度：** $\mathcal{H}$ 的絕對值 $|\mathcal{H}|$（即可能選擇的函數數量）稱為**模型複雜度**。模型複雜度越高，可選擇的函數越多。

#### C. 損失函式 (Loss Function) 定義與誤差率
*   **訓練資料 ($\mathcal{D}$)：** 包含成對的 (圖像 $x$, 正確標籤 $y$)。
*   **單筆損失 ($l$)：** 如果函式 $f_H$ 的輸出與正確答案 $y$ **不一致**，則 $l$ 為 1；**一致**則為 0。
*   **總體損失 ($\mathcal{L}$)：** $\mathcal{L}$ 是所有單筆損失的平均值，實質上就是**錯誤率 (error rate)**。雖然錯誤率不可微，但在此處比交叉熵 (cross entropy) 更為直觀，且不影響後續的討論。

### III. 理想 (Ideal) 與現實 (Reality) 的差距分析

#### A. 理想狀態 ($H^o$ 與 $\mathcal{D}^o$)
*   **理想資料集 ($\mathcal{D}^o$)：** 假設可以收集到**全宇宙所有**寶可夢和數碼寶貝的資料。
*   **最佳參數 ($H^o$)：** 能夠在 $\mathcal{D}^o$ 上將損失 $\mathcal{L}$ 降到最低的參數 $H$。這是**最理想的狀態**。
*   **模擬結果：** 假設 $\mathcal{D}^o$ 包含 819 隻寶可夢和 971 隻數碼寶貝。計算得出 $H^o = 4824$，理想錯誤率 $\mathcal{L}(H^o, \mathcal{D}^o) = 0.28$。

#### B. 現實狀態 ($H^{train}$ 與 $\mathcal{D}^{train}$) 與隨機取樣的影響
*   **訓練資料集 ($\mathcal{D}^{train}$)：** 現實中我們只能從 $\mathcal{D}^o$ 中**取樣**出部分資料，稱為 $\mathcal{D}^{train}$。
*   **現實參數 ($H^{train}$)：** 在 $\mathcal{D}^{train}$ 上將損失降到最低的參數 $H$。
*   **目標：** 期望現實結果（$H^{train}$ 在 $\mathcal{D}^o$ 上的表現）與理想結果（$H^o$ 在 $\mathcal{D}^o$ 上的表現）**差距越小越好**。
*   **取樣影響：**
    *   **情境一（好取樣）：** 即使 $H^{train}$ 在 $\mathcal{D}^{train}$ 上的損失 $\mathcal{L}(H^{\text{train}}, \mathcal{D}^{\text{train}}) = 0.27$ 低於理想損失 $0.28$，它在理想資料集上的表現 $\mathcal{L}(H^{\text{train}}, \mathcal{D}^o) = 0.28$，與理想狀態**接近**。
    *   **情境二（壞取樣）：** 由於取樣分佈與 $\mathcal{D}^o$ 差異大，儘管它在 $\mathcal{D}^{train}$ 上的損失 $\mathcal{L}(H^{\text{train}, 2}, \mathcal{D}^{\text{train}, 2}) = 0.20$ 很好，但它在理想資料集上的表現 $\mathcal{L}(H^{\text{train}, 2}, \mathcal{D}^o) = 0.37$，**差距遙遠**。

#### C. 數學邊界：壞訓練資料的出現機率
*   **好訓練資料的條件：** 若要讓 $H^{train}$ 在 $\mathcal{D}^o$ 上的表現接近 $H^o$，則需要 $\mathcal{D}^{train}$ 是一個好的樣本。
*   **好的 $\mathcal{D}^{train}$：** 對於**所有**可能的 $H \in \mathcal{H}$ 來說，其在 $\mathcal{D}^{train}$ 上的損失 $\mathcal{L}(H, \mathcal{D}^{train})$ 與在 $\mathcal{D}^o$ 上的損失 $\mathcal{L}(H, \mathcal{D}^o)$ 的差異必須很小。
*   **壞訓練資料的機率：** 抽樣到壞的訓練資料的機率存在一個上界 (upper bound)：
    $$P(\mathcal{D}^{\text{train}} \text{ is bad}) \le |\mathcal{H}| \times 2 \exp(-2N\epsilon^2)$$
    *   其中 $N$ 是訓練資料的數量。
    *   $|\mathcal{H}|$ 是模型複雜度（可選擇函數的數目）。
    *   $\epsilon$ 決定了可接受的理想與現實的差距程度。

*   **控制機率：**
    1.  **增加 $N$：** 增加訓練資料的數量 $N$ 可以顯著降低抽到壞資料集的機率。
    2.  **減少 $|\mathcal{H}|$：** 降低模型複雜度 $|\mathcal{H}|$。

*   **連續參數問題：** 如果模型參數是**連續**的（如一般類神經網路），則 $|\mathcal{H}|$ 應為**無窮大**。這會導致數學上推導出的機率上界大於 1 甚至無窮大，失去實用性。
    *   *VC Dimension* 是一種處理連續參數模型複雜度的指標，但本課程不深入討論。

### IV. 機器學習的兩難困境 (The Dilemma)

我們陷入一個兩難困境：
*   **模型複雜度大 (大 $|\mathcal{H}|$)：** 理論上可以找到一個接近完美（損失 $\mathcal{L}$ 很低）的 $H^o$（**好理想**，低偏差/Bias）。但抽樣到壞資料的機率高，現實結果與理想結果差距大（**高變異/Variance**）。
*   **模型複雜度小 (小 $|\mathcal{H}|$)：** 現實結果與理想結果差距小（**低變異**）。但因為可選函數少，找到的最佳 $H^o$ 可能損失仍很高（**壞理想**，高偏差）。

我們需要找到一個方法，使 $H^o$ 在 $\mathcal{D}^o$ 上的損失很低，**同時** $H^{train}$ 在 $\mathcal{D}^o$ 上的結果又接近 $H^o$。

**結論預告：** 深度學習 (Deep Learning) 是一種能讓這個「魚與熊掌可以兼得」的方法。

### 【機器學習 2022】為什麼用了驗證集 (validation set) 結果卻還是過擬合(overfitting)了呢？ 大綱



**I. 驗證集 (Validation Set) 概念與用途回顧**
    A. 傳統機器學習三步驟回顧
    B. 驗證集在模型選擇中的角色

**II. 驗證 (Validation) 過程的訓練視角**
    A. 驗證過程與模型的集合 ($H_{val}$)
    B. 驗證等同於在 $D_{val}$ 上進行訓練

**III. 驗證集上發生過度擬合 (Overfitting) 的原因分析**
    A. 理論基礎回顧
    B. 影響驗證集好壞的兩大因素
    C. $H_{val}$ 複雜度過高的情境

---

### I. 驗證集 (Validation Set) 概念與用途回顧

#### A. 傳統機器學習三步驟回顧
在開始探討之前，需要先理解許多同學在使用驗證集 (validation set, $D_{val}$) 後，在測試集 (testing set) 上仍然發生過度擬合 (overfeitting) 的原因。

#### B. 驗證集在模型選擇中的角色
假設有三個模型 $H_1, H_2, H_3$。
1.  首先，使用訓練資料 ($D_{train}$) 找出每個模型類別中最好的函式候選者，分別為 $h_1^*, h_2^*, h_3^*$。
2.  **目的：** 不會直接用 $D_{train}$ 來決定哪個 $h^*$ 比較好。
3.  **執行：** 必須在**驗證集** ($D_{val}$) 上評估這些候選者 ($h_1^*, h_2^*, h_3^*$) 的好壞。這涉及計算它們在 $D_{val}$ 上的**損失函式 (loss)**。
4.  **選取：** 選擇在 $D_{val}$ 上損失最低的那個函式 ($H$)。
5.  **應用：** 將選定的函式用於測試集 (testing set)，該測試集代表了所有可能的資料 ($D^o$)。

### II. 驗證 (Validation) 過程的訓練視角

#### A. 驗證過程與模型的集合 ($H_{val}$)
我們可以將整個「使用驗證集來挑選模型」的過程視為一種訓練。
這個過程可以寫成：我們有一個由 $h_1^*, h_2^*, h_3^*$ 組成的集合，稱之為 $\mathcal{H}_{val}$。

#### B. 驗證等同於在 $D_{val}$ 上進行訓練
在做驗證時，我們實際上是在 $\mathcal{H}_{val}$ 集合中找到某一個函式 $H$，使其在驗證集 ($D_{val}$) 上的損失 (L) 最小。
*   **本質：** 這等同於在 $D_{val}$ 上做訓練 (training)。
*   **區別：** 只是 $\mathcal{H}_{val}$ 裡的候選函式數量**非常少**（在範例中只有三個）。

### III. 驗證集上發生過度擬合 (Overfitting) 的原因分析

#### A. 理論基礎回顧
在前面的課程中提到，現實結果（在訓練集上觀察到的損失）與理想結果（在測試集上觀察到的損失）之間的差距過大，是因為抽樣到**不好的訓練資料**。抽到壞資料的機率取決於兩個主要因素：訓練資料的大小，以及模型的複雜度 (model complexity)。

#### B. 影響驗證集好壞的兩大因素
當我們將驗證集 ($D_{val}$) 視為訓練資料時，其結果（在 $D_{val}$ 上看到的損失）與理想結果（在 $D^o$ 或 testing set 上的表現）之間的差距大小，取決於兩個因素：
1.  **$D_{val}$ 的大小**。
2.  **對應模型的複雜度**，即 $\mathcal{H}_{val}$ 集合的複雜度。

當抽到的驗證集是「不好」的資料集時，你在驗證集上看到的現狀，就會與你的理想狀態（實際在測試集上的表現）差距非常大。

#### C. $H_{val}$ 複雜度過高的情境
雖然 $\mathcal{H}_{val}$（候選模型集合）通常比深度網路的可選函式數量（無限多）小很多，但在某些情況下，$\mathcal{H}_{val}$ 可能會變得非常大：
*   **超參數 (Hyperparameter) 決定：** 如果你使用驗證集來決定模型的超參數（例如，網路架構的層數或每層神經元的數量）。
*   **複雜的搜索空間：** 假設你決定搜索 1 到 10 層的網路架構，且每層有 1 到 1000 個神經元。如果你決定要測試 $1000^{10}$ 個模型，那麼你的 $\mathcal{H}_{val}$ 集合就會變得非常巨大。
*   **結論：** 當 $\mathcal{H}_{val}$ 變得很大時，你就很有可能發生**在驗證集上過度擬合** (overfeitting) 的情況。即使使用了驗證集來選擇模型，如果選擇的範圍太廣（模型複雜度太高），仍可能導致你在 $D_{val}$ 上看到的結果與真正在測試集上的結果相差太大。

### 【機器學習 2022】魚與熊掌可以兼得的深度學習 大綱


**I. 深度學習的優勢與兩難困境的解決**
    A. 兩難困境的回顧 (The Dilemma Review)
    B. 深度學習 (Deep Learning) 的承諾：魚與熊掌兼得

**II. 深度學習的結構效率證明**
    A. 隱藏層 (Hidden Layer) 的功能回顧
    B. 結構效率的類比說明
        1. 邏輯電路 (Logic Circuit) 的效率
        2. 程式設計 (Programming) 的結構
        3. 剪紙窗花 (Paper Cutting) 的比喻
    C. 具體案例：網路深度對函式複雜度的影響
        1. 淺層網路的 V 字形函式
        2. 疊加層數與線段數量的關係

**III. 核心結論：深度學習的真正優勢**
    A. 參數數量與效率的指數級差異
    B. 深度學習與過度擬合 (Overfitting)

---

### I. 深度學習的優勢與兩難困境的解決

#### A. 兩難困境的回顧 (The Dilemma Review)
在先前的課程中，我們陷入了一個兩難困境：
*   如果選擇**比較大的模型**（可選擇的函式 $H$ 較多），理想狀態下，$L(H^o)$（理想的損失值）可以壓得很低（**低偏差/Bias**）。但現實與理想的差距會比較大（**高變異/Variance**）。
*   如果選擇**比較小的模型**，雖然現實與理想會比較接近（**低變異**），但因為可選擇的函式少，找到的最佳理想狀態 $H^o$ 可能損失仍較大（**高偏差**），即「理想崩壞了」。

#### B. 深度學習 (Deep Learning) 的承諾：魚與熊掌兼得
本課程的目標是探討如何讓「魚與熊掌可以兼得」。
我們期待找到一個模型 $\mathcal{H}$，它本身**成員不多** (H 小)，但其成員都是**精英**，可以讓損失 $L$ 壓得很低。
*   如果 $H$ 很小，且 $L$ 很低，我們就能夠同時擁有**好的理想**（低損失），**同時**讓現實跟理想很接近（低變異）。
*   深度學習 (Deep Learning) 就是能夠做到「魚與熊掌兼得」的方法。

### II. 深度學習的結構效率證明

#### A. 隱藏層 (Hidden Layer) 的功能回顧
*   透過**一個隱藏層**的類神經網路，理論上可以製造出**所有可能的函式**。
*   任何函式都可以被分解成足夠多線段的**分段線性函式 (piecewise linear function)** 來逼近。
*   一個分段線性函式可以看作是**一個長數項**加上**一堆階梯型的函式**組合而成。
*   如果神經元 (neuron) 使用 **Sigmoid** 函式 或 **ReLU** 函式 作為啟用函式 (activation function)，就可以產生階梯型或類似的函式。
*   只要有**足夠多的神經元**，一個隱藏層的網路就可以產生任何函式。

#### B. 結構效率的類比說明
雖然一個胖的淺層網路（單一隱藏層，很多神經元）理論上可以完成任何任務，但實驗證明深的網路效果更好。當兩者**參數數量相同**時，深的網路表現更優異。深的結構帶來優勢的原因，可以透過以下類比理解：

1.  **邏輯電路 (Logic Circuit) 的效率：**
    *   任何邏輯電路只用**兩層邏輯閘**都可以建構出任合函式。
    *   例如，若要建構一個 **Parity Check** 模組（檢查輸入序列中 1 的次數是奇數還是偶數），如果只用兩層邏輯閘，你需要 $2^D$ 個閘（D 是輸入長度）。
    *   但如果將 Ex-NOR 閘排成**深層的結構**（串連），只需 $D$ 個閘就可以達成相同的複雜功能。深的結構用較少的資源做到了較複雜的事情。

2.  **程式設計 (Programming) 的結構：**
    *   在寫程式時，你不會把所有東西都放在主函式 (main function) 裡。
    *   使用模組或子函式 (subfunction) 這種深層結構，可以避免程式碼冗長，增加可讀性，並在重複使用相同功能時讓程式更簡潔。

3.  **剪紙窗花 (Paper Cutting) 的比喻：**
    *   複雜的圖案若直接剪會非常麻煩。
    *   透過**折紙**（相當於增加層次/layer）再剪幾刀，就可以有效地剪出複雜的圖案。

#### C. 具體案例：網路深度對函式複雜度的影響
以一個輸入 $x$ 和輸出 $A_k$ 的網路為例，展示深度如何指數級地增加函式複雜度：

1.  **淺層網路的 V 字形函式 (1 層)：**
    *   一個只有一個隱藏層的網路（由兩個 ReLU 神經元組成），可以產生一個 **V 字形**的輸入-輸出關係 (X 與 A1 的關係)。

2.  **疊加層數與線段數量的關係 (K 層)：**
    *   如果再串聯第二層（總共兩層），每層有兩個神經元。當輸入 X 從 0 變到 1 時，輸出 $A_2$ 會經歷兩次 V 字形輪迴（從 1 到 0 再到 1，再從 1 到 0 再到 1）。X 與 $A_2$ 的關係將形成一個 **W 字形**，這包含了**四個線段** (pieces)。
    *   如果繼續串聯到 **K 層**，每層只有兩個神經元（總共 $2K$ 個神經元），則輸出的函式 $Y$ 將會有 **$2^K$ 個線段**。

### III. 核心結論：深度學習的真正優勢

#### A. 參數數量與效率的指數級差異
*   要產生一個具有 $2^K$ 個線段的函式：
    *   **深層網路 (Deep Network)** 需要 **$K$ 層**，約 **$2K$ 個神經元**。
    *   **淺層網路 (Shallow Network)** 由於每個神經元只能產生一個線段，需要 **$2^K$ 個神經元**。
*   兩者在參數數量上存在**指數級 (exponential) 的差別**。
*   結論：深度網路的優勢在於，當目標函式是**複雜且有規律**的時候，它能用**比較少的參數量**（較小的模型）來實現相同的函式能力。

#### B. 深度學習與過度擬合 (Overfitting)
*   深層網路能用較小的參數量（較小的模型複雜度 $|\mathcal{H}|$) 實現複雜函式，這意味著它**比較不容易發生過度擬合 (overfeit)**。
*   這與坊間的印象（深度學習需要大資料、容易過度擬合）是**相反的**。
*   因為複雜的模型比較容易過度擬合，所以若不使用深度網路，反而需要**更大、更大量的資料**才能達成同樣的任務。
*   深度學習的優勢在於：在比較少的參數量情況下，可以得到比較低的損失值 (loss)，這就是實現「魚與熊掌兼得」的方法。

---

其他課程

[【機器學習 2022】01~04 機器學習原理介紹](https://hackmd.io/@JuitingChen/Sk_VtIJaeg)
[【機器學習 2022】05 各式各樣神奇的自注意力機制](https://hackmd.io/@JuitingChen/rJeNpFIpxl)
[【機器學習 2022】06 如何有效的使用自監督式模型](https://hackmd.io/@JuitingChen/BJXeLKD6xx)
[【機器學習 2022】07 語音與影像上的神奇自監督式學習](https://hackmd.io/@JuitingChen/r1q-N1uagg)
[【機器學習 2022】08-09 自然語言處理上的對抗式攻擊-1](https://hackmd.io/@JuitingChen/B14i61uTxx)
[【機器學習 2022】10~11 自然語言處理上的對抗式攻擊-2](https://hackmd.io/@JuitingChen/HkLRoFOTgx)
[【機器學習 2022】12~13 Bert 三個故事 和 各種 Meta Learning 用法](https://hackmd.io/@JuitingChen/HyjfTptTel)