Taiwan’s pioneering and highest deep learning meetup, launched on 2016/11/11 @ 83F, Taipei 101
AI是一條孤獨且充滿惶恐及未知的旅程,花俏絢麗的收費課程或活動絕非通往成功的捷徑。
衷心感謝當時來自不同單位的AI同好參與者實名分享的寶貴經驗;如欲移除資訊還請告知。
由 TonTon Huang Ph.D. 發起,及其當時任職公司(台灣雪豹科技)無償贊助場地及茶水點心。
去 YouTube 訂閱 | Facebook | 回 GitHub Pages | 到 GitHub 點星 | 網站 | 到 Hugging Face Space 按愛心
2017/02/10, Regularization for Deep Learning @ Deep Learning Book Chapter 7
定義與目標 (Definition & Goals): 正則化是指對學習演算法的一系列修改,其主要目標是減少模型的泛化誤差(即在未見過的新資料上的誤差),而不是僅僅降低訓練誤差。它通常透過向模型引入額外的約束或懲罰,以防止模型過度擬合訓練資料。
偏差與方差的權衡 (Bias-Variance Trade-off): 一個有效的正則化通常被認為是一種在模型的偏差 (bias) 和方差 (variance) 之間的有利「交易」。
正則化通常會增加模型的偏差(因為它限制了模型的靈活性),但其主要目的是顯著減少模型的方差(使其對訓練數據的微小變化不那麼敏感,從而提高泛化能力)。一個有利的交易意味著方差的減少程度遠大於偏差的增加程度,從而導致整體泛化誤差的降低。
正則化策略通常可以歸納為幾種主要方式:
對模型的參數施加額外的限制(例如,限制參數的取值範圍或範數)。
在原始的目標函數中添加一個額外的懲罰項(正則化項)。
透過數據增強等方式增加訓練數據的多樣性。
訓練多個模型並將它們的預測結果結合起來。
例如**提前終止 (early stopping)**。
提高模型對擾動的魯棒性。
鼓勵模型參數或激活值稀疏。
讓多個任務共享參數以提高泛化。
利用無標註數據輔助學習。
訓練時隨機丟棄神經元。
基本概念 (Basic Concept): 透過向目標函數 $J$ 添加一個參數范數懲罰 $\Omega(\theta)$ 來限制模型的學習能力。正則化後的目標函數 $\tilde{J}$ 為:$\tilde{J}(\theta; X, y) = J(\theta; X, y) + \alpha\Omega(\theta)$,其中 $\alpha \ge 0$ 是權衡懲罰項和標準目標函數相對貢獻的超參數。$\alpha$ 越大,正則化懲罰越大。
懲罰對象 (Penalty Target): 參數范數懲罰通常只對權重 w 進行懲罰,而不對偏置 b 進行懲罰。
作為約束優化 (Constrained Optimization): 向目標函數添加參數范數懲罰在數學上可被視為在某個范數约束下最小化原始目標函數的拉格朗日乘子形式。
正則化項 (Term): $\Omega(w) = \frac{1}{2} ||w||_2^2 = \frac{1}{2} \sum_i w_i^2$。
影響權重 (Effect on Weights): 使權重在每次更新時「衰減」,傾向於使權重值變小、更接近零,但通常不會使其恰好為零。
貝葉斯角度 (Bayesian View): 等價於對權重引入一個高斯先驗 (Gaussian prior)。
正則化項 (Term): $\Omega(w) = ||w||_1 = \sum_i |w_i|$。
影響權重 (Effect on Weights): L¹ 會使許多權重恰好變為零。
稀疏性 (Sparsity): 能夠產生稀疏解,可用於特徵選擇 (feature selection)。
貝葉斯角度 (Bayesian View): 等價於對權重引入一個拉普拉斯先驗 (Laplacian prior)。
特性 (Feature) | L¹ 正則化 (Lasso) | L² 正則化 (Ridge / 權重衰減) |
---|---|---|
正則化項 (Term) | 權重絕對值之和 $\sum|w_i|$ | 權重平方和的一半 $\frac{1}{2}\sum w_i^2$ |
對權重的影響 (Effect on Weights) | 傾向於使許多權重變為零 | 傾向於使權重變小但不為零 |
解的特性 (Solution Property) | 稀疏解 (Sparse Solution) | 非稀疏解 (Non-sparse Solution) |
特徵選擇能力 (Feature Selection) | 強 (因為能使權重為零) | 無特徵選擇能力 |
與先驗的關聯 (Bayesian Prior) | 拉普拉斯先驗 (Laplacian Prior) | 高斯先驗 (Gaussian Prior) |
幾何解釋 (Geometric View) | 約束區域為菱形/多邊形 (2D) | 約束區域為圓形 (2D) |
選擇使用 L¹ 或 L² 正則化通常取決於具體問題和數據的特性。如果認為許多特徵是不相關的且希望模型更稀疏,L¹ 可能更適合;如果認為所有特徵都可能對結果有貢獻,L² 可能更適合。
定義與目的 (Definition & Purpose): 對現有訓練數據應用保持標籤不變 (label preservation) 的隨機變換,人工生成新樣本。主要目的是增加訓練數據的多樣性和數量,提高模型的泛化能力和魯棒性,並減少過度擬合。
重要原則 (Key Principle): 保持標籤不變性是關鍵原則。變換不能改變樣本的真實類別標籤。
例如,水平翻轉對一般物體識別(如貓 vs. 狗)是合適的,但對字符識別(如 "b" 和 "d")則不合適。
核心思想 (Core Idea): 向模型中注入噪聲可以提高其魯棒性,作為一種正則化手段。這有助於防止過擬合、平滑損失景觀,並提高對真實世界噪聲的適應性。
定義 (Definition): 數據表示(如隱藏層激活值)或模型參數(權重)中大部分元素為零或接近零。
潛在好處 (Benefits): 特徵選擇, 提高可解釋性, 計算效率, 改善泛化。
定義 (Definition): 一種非常有效且被廣泛使用的針對神經網路的正則化技術。
在每次前向傳播時,對於網路的每個隱藏單元(有時包括輸入單元),以一個預設機率 p(例如 0.5)將其隨機地「丟棄」(drop out),即暫時將其輸出置為零。每次訓練一個小批量數據時,都會隨機生成一個新的「丟棄掩碼 (dropout mask)」。
Inverted Dropout: 在訓練時將未被丟棄的單元的激活值除以保留機率 (1-p),以保持激活值的期望一致。
通常不進行 Dropout,即所有的神經單元都被保留並參與計算。由於訓練時使用了 Inverted Dropout,測試時不需要對權重進行額外的縮放。
定義 (Definition): 一種機器學習範式,它在訓練時同時使用少量有標註的數據和大量無標註的數據。
作為正則化 (As Regularization): 無標註數據攜帶了關於輸入數據 $x$ 的分佈 $P(x)$ 的有用信息。利用這些信息學習 $P(x)$ 的結構,可以幫助改進對 $P(y|x)$ 的學習,相當於利用數據分佈的結構信息來約束模型,提高泛化能力。
定義 (Definition): 一種機器學習方法,它通過同時學習多個相關的任務,並讓這些任務共享模型的一部分參數或表示,來提高每個單獨任務的學習性能和泛化能力。
核心思想 (Core Idea): 如果多個任務之間存在相關性,同時學習可以讓模型從所有任務的數據中學習到更通用、更魯棒的表示。
參數共享 (Parameter Sharing): 常見的方式是硬參數共享 (hard parameter sharing),底層的特征提取層在所有任務之間是共享的。共享參數增加了有效訓練數據量,迫使共享表示對多個任務都有用,本身就是一種隱式的正則化。
定義 (Definition): 一種在訓練迭代學習模型時使用的正則化技術和停止準則。
工作原理 (Mechanism): 在訓練過程中,同時在一個獨立的驗證集 (validation set) 上監控模型的性能。如果驗證集性能不再提升或開始惡化,就提前停止訓練。通常會保存並返回在驗證集上性能達到最佳時的模型參數。
優點 (Pros): 實現簡單、計算高效、自動確定訓練輪數、通常非常有效。
潛在缺點 (Cons): 需要驗證集、對驗證集敏感、可能過早停止。
定義 (Definition): 訓練數據提供的信息不足以唯一確定模型的參數。通常發生在特徵數量遠大於樣本數量,或模型過於複雜/靈活時,存在無限多個解都能使得訓練誤差達到最小值。
正則化的幫助 (How Regularization Helps): 正則化通過向學習問題引入額外的約束或偏好,幫助解決欠約束問題。當存在多個能同樣好地擬合訓練數據的解時,正則化項會引導優化算法選擇其中一個滿足特定屬性(由正則化項定義)的解。例如 L² 選擇 L² 范數最小的解,L¹ 選擇 L¹ 范數最小(稀疏)的解。
許多深度學習框架提供內建正則化選項 (L1/L2, Dropout)。
數據有限時,用大規模數據集預訓練模型 (如 ImageNet 上的 Inception-v3) 微調,有效利用通用特徵,避免過擬合。
處理大量圖片數據時,檔案I/O速度可能成為瓶頸。注意圖片格式、大小、通道數。
例如 Dropout 在訓練和測試時的處理方式不同。
工具如 Digit (Caffe) 提供圖形化介面,方便設定、監控訓練與驗證。
安裝框架 (如 Caffe) 及依賴 (CUDA, cuDNN) 可能複雜,注意版本兼容性。