---
# System prepended metadata

title: '[Youtube] [Deep Learning] 3Blue1Brown - But what is a neural network?'
tags: [Deep Learning, Youtube]

---

# 人腦識別數字的能力

* 即使是解析度極低的 28x28 手寫數字，人腦仍能輕鬆辨認
* 大腦能將不同像素分布視為同一個數字概念
* 電腦要做到同樣的事情則困難許多

# 機器學習與神經網路的重要性
![image](https://hackmd.io/_uploads/B11l9G_ngx.png)
![image](https://hackmd.io/_uploads/Hyzzcf_3lg.png)
ㄏ
* 手寫數字辨識是神經網路的經典入門範例
* 目標是建立一個能輸入影像並輸出數字的模型
* 神經網路的結構與學習過程能展現人工智慧的核心

# 神經網路的基本結構

* 神經元：只是一個持有 0 到 1 數值的單位
* 輸入層：784 個神經元，對應 28x28 像素灰階值
* 輸出層：10 個神經元，對應 0 到 9 的數字
* 隱藏層：中間若干層，負責抽象特徵處理
![image](https://hackmd.io/_uploads/S1jHcGOhxg.png)

# 神經網路的運作方式

* 一層的激活值決定下一層的激活值
* 訓練完成後，輸入影像會在各層轉換成不同的激活模式
* 輸出層中數值最大的神經元代表網路的判斷結果

# 為何分層結構合理

* 人類辨識數字是由子部件組成：線條、圈、交叉等
* 希望隱藏層能學到類似的子特徵
* 第二層可能對應「小邊緣」、「小線段」
* 更高層則組合這些特徵形成圈、直線，最後構成數字

# 分層抽象的更廣泛應用

![image](https://hackmd.io/_uploads/SkFa9G_heg.png)
![image](https://hackmd.io/_uploads/ryD0cMOhel.png)

* 邊緣檢測對其他影像識別任務同樣重要
* 層層抽象不僅適用於影像，也適用於語音處理
* 語音辨識例子：聲音 → 音素 → 音節 → 單字 → 片語 → 思想

# 權重與偏差的角色

* 每個神經元與前一層所有神經元相連，每條連線有一個「權重」
* 權重決定該神經元關注哪些像素或模式
* 偏差 (bias) 控制神經元在什麼情況下才會被激活
* 權重+偏差經加總後再經過「壓縮函數」(如 sigmoid)，輸出介於 0 到 1
![image](https://hackmd.io/_uploads/HkKbsMdhgx.png)

# 權重與邊緣檢測的例子

* 權重可以設計成只在特定區域取值，其它位置為零
* 正負權重可區分亮暗，進而檢測邊緣
* 偏差可以設定門檻，決定激活的敏感度

# 數學表示法
![image](https://hackmd.io/_uploads/SkJEsf_nel.png)

* 將一層的輸入表示為向量
* 將權重整理成矩陣，行或列對應到特定神經元
* 激活運算可表示為「矩陣 × 向量 + 偏差向量」再套用 sigmoid
* 這種矩陣運算方式讓數學表達簡潔，程式碼更高效

# 參數數量與複雜度

* 單一隱藏層的每個神經元需 784 個權重與 1 個偏差
* 16 個神經元即有 784×16 + 16 ≈ 12,560 個參數
* 整個網路共有約 13,000 個權重與偏差

# 神經網路的本質

* 每個神經元實際上是「函數」：輸入為前一層的輸出，輸出為 0~1
* 整個網路也是一個函數：輸入 784 個像素，輸出 10 個數字的機率分布
* 雖然複雜，但仍是數學函數的組合

# 激活函數的演進

* 早期常用 sigmoid 函數，輸出平滑介於 0 與 1
* 現代網路較多使用 ReLU（Rectified Linear Unit）
* ReLU：輸入 >0 則輸出等於輸入，否則輸出 0
* ReLU 更易於訓練深層網路，效率高於 sigmoid

![image](https://hackmd.io/_uploads/rkTUjGdhxl.png)


# Terminology
* 像素網格（Pixel Grid）：由固定行列排列的像素組成的矩陣，輸入影像的基本結構。
* 灰階值（Grayscale Value）：像素亮度的數值表示，通常介於 0 到 1 之間。
* 輸入層（Input Layer）：神經網路的第一層，接收原始資料（如影像像素）。
* 輸出層（Output Layer）：神經網路最後一層，輸出分類或預測結果。
* 隱藏層（Hidden Layer）：介於輸入與輸出之間的層，用於抽象化與特徵提取。
* 神經元（Neuron）：神經網路的基本單位，儲存與傳遞數值（激活值）。
* 激活值（Activation）：神經元輸出的數值，代表該單元被觸發的程度。
* 激活函數（Activation Function）：決定神經元輸出如何映射的非線性函數。
* 前向傳播（Forward Propagation）：資料由輸入層經隱藏層傳至輸出層的過程。
* 權重（Weight）：連結神經元的參數，決定輸入對輸出的影響程度。
* 偏差（Bias）：額外的調整值，幫助模型更靈活地擬合資料。
* 訓練（Training）：透過資料與演算法調整參數，使模型逐漸學會任務的過程。
* 學習（Learning）：神經網路優化權重與偏差以減少誤差的過程。
* 分類任務（Classification Task）：將輸入歸類至離散標籤的任務。
* MNIST 數據集（MNIST Dataset）：28x28 手寫數字影像的經典訓練資料集。
* 特徵檢測（Feature Detection）：從輸入資料中自動辨識邊緣、形狀或模式等特徵。
* 抽象層次（Abstraction Level）：隱藏層逐步將低層特徵轉換為高層語意表示。
* 邊緣檢測（Edge Detection）：辨識影像中邊界與線條的基礎特徵處理。
* 模式識別（Pattern Recognition）：辨識影像或資料中規律與形狀的能力。
* 子組件（Subcomponent）：複雜形狀可由更小的基本元素組成，例如數字的線段與圈。
* 卷積概念（Convolution Concept）：影像特徵可由小區域運算組合而成的原理（雖未明說）。
* 階層式表示（Hierarchical Representation）：由基礎特徵逐步組合成更高層次的抽象表示。
* 激活模式（Activation Pattern）：整個層神經元輸出形成的數值分布。
* 決策邊界（Decision Boundary）：模型將不同類別區隔的數學超平面。
* 泛化（Generalization）：模型對未見資料的適應能力，而非僅記住訓練樣本。
* 誤差函數（Error Function）：衡量模型輸出與正確標籤之差距的函數。
* 反向傳播（Backpropagation）：根據誤差調整權重的演算法。
* 梯度下降（Gradient Descent）：逐步調整參數以最小化誤差的優化方法。
* 局部特徵（Local Feature）：僅與輸入部分區域相關的小型特徵。
* 全域特徵（Global Feature）：整體輸入結構上的綜合特徵。
* 神經網路架構（Neural Network Architecture）：網路層數、大小與連結方式的設計。
* 單層感知器（Single-Layer Perceptron）：僅有輸入層與輸出層的最簡單網路。
* 多層感知器（Multilayer Perceptron, MLP）：含隱藏層的神經網路。
* 線性組合（Linear Combination）：輸入值與權重的加權和。
* 非線性轉換（Nonlinear Transformation）：透過激活函數使模型具備表達複雜模式的能力。
* 分類概率（Class Probability）：輸出層每個神經元的值，代表該類別的信心程度。
* One-Hot 編碼（One-Hot Encoding）：用 0/1 表示類別的標籤表示方式。
* 訓練後模型（Trained Model）：經過學習並固定權重後可進行推論的網路。
* 推論（Inference）：使用已訓練模型對新資料進行預測的過程。
* 過擬合（Overfitting）：模型過度擬合訓練資料，導致泛化能力下降。
* 欠擬合（Underfitting）：模型過於簡單，無法有效捕捉資料特徵。
* 超參數（Hyperparameters）：需人工設定的模型參數（如層數、學習率）。
* 抽樣（Sampling）：從資料集中挑選部分用於訓練或測試的技術。
* 驗證集（Validation Set）：用於調整模型超參數的資料。
* 測試集（Test Set）：用於最終評估模型效能的獨立資料。
* 抽象特徵（Abstract Feature）：高層隱藏層中提取出的概念化表示（如數字的圈或直線）。
* 模組化（Modularity）：不同層或神經元分工處理不同子問題的特性。
* 語音辨識（Speech Recognition）：將聲音訊號逐層解析為音素、詞彙與語意的應用範例。
* 層次化處理（Hierarchical Processing）：資料逐層拆解與組合形成更高層次資訊的過程。
* 表徵學習（Representation Learning）：自動從原始資料中學得有用的特徵表示。
* 權重矩陣（Weight Matrix）：將前一層所有輸出與下一層神經元連結的參數矩陣，每一行對應一個神經元的權重集合。
* 權重總和（Weighted Sum）：輸入值與對應權重的加權和，是神經元輸入的核心計算。
* 正權重（Positive Weight）：增加輸入對輸出的影響，使神經元更易被激活。
* 負權重（Negative Weight）：減少輸入對輸出的影響，抑制神經元激活。
* 偏差（Bias）：在加權和基礎上額外加入的常數，用於調整神經元的啟動門檻。
* 邊緣檢測權重模式（Edge Detection Weight Pattern）：透過特定的正負權重組合偵測影像邊緣。
* Sigmoid 函數（Sigmoid Function）：將輸入值壓縮至 0 與 1 之間的激活函數，呈現 S 型曲線。
* 邏輯曲線（Logistic Curve）：Sigmoid 函數的另一名稱，常用於機率建模。
* 激活閾值（Activation Threshold）：神經元開始被有效激活所需的加權和大小。
* 激活函數壓縮（Activation Squashing）：將輸入值映射到固定範圍的轉換過程。
* 參數空間（Parameter Space）：所有可能權重與偏差組合所構成的多維空間。
* 黑箱（Black Box）：難以解釋內部細節但能輸出的複雜模型。
* 可解釋性（Interpretability）：理解權重與偏差在模型中具體作用的能力。
* 手動調參（Manual Tuning）：人為嘗試調整權重與偏差以實現特定功能。
* 向量表示（Vector Representation）：將一層神經元輸出組成向量以利運算。
* 矩陣–向量乘積（Matrix–Vector Product）：權重矩陣與輸出向量相乘以計算下一層輸入。
* 偏差向量（Bias Vector）：將所有偏差組織成向量以一次加至輸入計算結果。
* 元件級操作（Element-wise Operation）：逐元素應用函數（如 sigmoid）於向量或矩陣。
* 線性代數（Linear Algebra）：神經網路運算的數學基礎，包括矩陣乘法與向量運算。
* 函數組合（Function Composition）：將多層神經網路視為函數的逐層組合。
* 神經元函數（Neuron as Function）：將神經元視為接受前一層輸入並輸出激活的函數。
* 神經網路函數（Network Function）：整個網路視為輸入向量到輸出向量的函數。
* 參數數量（Parameter Count）：網路中所有權重與偏差的總數，例如 13,000。
* 高維函數（High-Dimensional Function）：依賴大量參數的複雜映射。
* 適配能力（Expressive Power）：模型捕捉複雜模式與特徵的能力。
* 訓練困難（Training Difficulty）：模型在實務中難以有效收斂的挑戰。
* 函數逼近（Function Approximation）：神經網路透過參數學習來逼近目標函數。
* 激活梯度（Activation Gradient）：激活函數輸出對輸入的變化率，影響學習效率。
* 梯度消失（Vanishing Gradient）：深層網路中梯度過小導致權重無法更新的問題。
* ReLU 函數（Rectified Linear Unit）：輸出為 max(0, x) 的激活函數，現代網路常用。
* 非線性激活（Nonlinear Activation）：引入非線性以提升模型表達能力的函數。
* 深度網路（Deep Network）：擁有多個隱藏層的神經網路。
* 閾值行為（Threshold Behavior）：神經元僅在輸入超過某值時才激活的特性。
* 函數連鎖（Function Chain）：多層神經元計算可視為函數的鏈式組合。
* 計算圖（Computation Graph）：以節點與邊表示神經網路運算流程的結構。
* 向量化運算（Vectorized Computation）：使用矩陣與向量運算加速計算的技巧。
* 數值優化（Numerical Optimization）：透過數值方法調整參數以減少誤差。
* 參數可塑性（Parameter Flexibility）：權重與偏差能適應不同輸入模式的能力。
* 模型複雜度（Model Complexity）：由層數與參數數量決定的模型難度。
* 抽象層（Abstract Layer）：隱藏層中的抽象特徵表示。
* 邊緣特徵（Edge Feature）：由基礎像素組成的線段或邊界特徵。
* 形狀模式（Shape Pattern）：由多個邊緣組成的更高層次特徵，如圈或數字。
* 特徵組合（Feature Combination）：多個低層特徵共同作用形成高層語意。
* 模型優化（Model Optimization）：調整網路架構與參數以提升效能。
* 函數逼近理論（Universal Approximation Theorem）：多層感知器可逼近任意連續函數的理論。
* 生物啟發（Biological Inspiration）：神經網路設計借鑑大腦神經元的啟發。
* 參數學習（Parameter Learning）：透過資料自動調整權重與偏差。
* 表徵空間（Representation Space）：隱藏層輸出所在的多維特徵空間。
* 特徵激活（Feature Activation）：神經元因對應特徵存在而輸出的高值。
* 演算法效率（Algorithm Efficiency）：計算過程中資源與時間的利用效率。
