# 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.在實驗數據中表現顯著優於寬層模型。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up