# 人腦識別數字的能力 * 即使是解析度極低的 28x28 手寫數字,人腦仍能輕鬆辨認 * 大腦能將不同像素分布視為同一個數字概念 * 電腦要做到同樣的事情則困難許多 # 機器學習與神經網路的重要性   ㄏ * 手寫數字辨識是神經網路的經典入門範例 * 目標是建立一個能輸入影像並輸出數字的模型 * 神經網路的結構與學習過程能展現人工智慧的核心 # 神經網路的基本結構 * 神經元:只是一個持有 0 到 1 數值的單位 * 輸入層:784 個神經元,對應 28x28 像素灰階值 * 輸出層:10 個神經元,對應 0 到 9 的數字 * 隱藏層:中間若干層,負責抽象特徵處理  # 神經網路的運作方式 * 一層的激活值決定下一層的激活值 * 訓練完成後,輸入影像會在各層轉換成不同的激活模式 * 輸出層中數值最大的神經元代表網路的判斷結果 # 為何分層結構合理 * 人類辨識數字是由子部件組成:線條、圈、交叉等 * 希望隱藏層能學到類似的子特徵 * 第二層可能對應「小邊緣」、「小線段」 * 更高層則組合這些特徵形成圈、直線,最後構成數字 # 分層抽象的更廣泛應用   * 邊緣檢測對其他影像識別任務同樣重要 * 層層抽象不僅適用於影像,也適用於語音處理 * 語音辨識例子:聲音 → 音素 → 音節 → 單字 → 片語 → 思想 # 權重與偏差的角色 * 每個神經元與前一層所有神經元相連,每條連線有一個「權重」 * 權重決定該神經元關注哪些像素或模式 * 偏差 (bias) 控制神經元在什麼情況下才會被激活 * 權重+偏差經加總後再經過「壓縮函數」(如 sigmoid),輸出介於 0 到 1  # 權重與邊緣檢測的例子 * 權重可以設計成只在特定區域取值,其它位置為零 * 正負權重可區分亮暗,進而檢測邊緣 * 偏差可以設定門檻,決定激活的敏感度 # 數學表示法  * 將一層的輸入表示為向量 * 將權重整理成矩陣,行或列對應到特定神經元 * 激活運算可表示為「矩陣 × 向量 + 偏差向量」再套用 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  # 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):計算過程中資源與時間的利用效率。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.