歸一化 正則化 標準化

注: 本篇文章借鑒了知乎用戶 Dave的文章

歸一化 Normalization

歸一化就是 將數據映射到指定的範圍, 用於出去不同維度數據的量綱以及量綱維度

常見的映射範圍是 [0, 1], [-1, 1]

min-max歸一化

比如有些維度的數據值都很大, 如果不進行歸一化, 會遮蓋其他的特徵

標準化 Normalization

其實標準化和歸一化的英文都是normalization, 這裡做出區分只是根據用途來區分

z-score標準化

miu 是 平均值(mean)

sigma 是 標準差(std)

散點序列的標準化過程:原圖->減去均值->除以標準差

變成了一個均值為 0 ,方差為 1 的分布

標準化後可以更加容易地得出最優參數wb以及計算出J(w,b)的最小值,從而達到加速收斂的效果

Batch Normalization

這是最常用的正則化

Accelerating Deep Network Training by Reducing Internal Covariate Shift?

arxiv.org

這是原論文

我們知道數據預處理做標準化可以加速收斂,同理,在神經網路使用標準化也可以加速收斂,而且還有如下好處:

  • 具有正則化的效果(Batch Normalization reglarizes the model)
  • 提高模型的泛化能力(Be advantageous to the generalization of network)
  • 允許更高的學習速率從而加速收斂(Batch Normalization enables higher learning rates)

其原理是利用正則化減少內部相關變數分布的偏移(Reducing Internal Covariate Shift),從而提高了演算法的魯棒性

Batch Normalization 由兩部分組成,第一部分是縮放與平移(scale and shift),第二部分是訓練縮放尺度和平移的參數(train a BN Network),演算法步驟如下:

正則化 Regularization

正則化主要用於避免過擬合的產生和減少網路誤差

第 1 項是經驗風險,第 2 項是正則項λ≥0 為調整兩者之間關係的係數

第 1 項的經驗風險較小的模型可能較複雜(有多個非零參數),這時第 2 項的模型複雜度會較大

常見的有正則項有 L1 正則L2 正則 ,其中 L2 正則 的控制過擬合的效果比 L1 正則 的好

正則化的作用是選擇經驗風險與模型複雜度同時較小的模型

常見的有正則項有 L1 正則L2 正則 以及 Dropout ,其中 L2 正則 的控制過擬合的效果比 L1 正則 的好

L_{p}範數

為什麼叫 L1 正則,有 L1、L2 正則 那麼有沒有 L3、L4 之類的呢?

首先我們補一補課, L_{p} 正則的 L 是指 L_{p} 範數,其定義為:

L_{0} 範數: left | w 
ight |_{0} = #(i) with  x_{i} 
eq 0(非零元素的個數)

L_{1} 範數: left | w 
ight |_{1} = sum_{i = 1}^{d}lvert x_i
vert(每個元素絕對值之和)

L_{2} 範數: left | w 
ight |_{2} = Bigl(sum_{i = 1}^{d} x_i^2Bigr)^{1/2}(歐氏距離)

L_{p} 範數: left | w 
ight |_{p} = Bigl(sum_{i = 1}^{d} x_i^pBigr)^{1/p}

在機器學習中,若使用了 lVert w
Vert_p 作為正則項,我們則說該機器學習任務引入了 L_{p}正則項

L1 正則 Lasso regularizer

J(w,b)=frac{1}{m} sum_{i=1}^{m}L(hat{y},y)+frac{lambda }{m}left | w 
ight |_{1}

  • 凸函數,不是處處可微分
  • 得到的是稀疏解(最優解常出現在頂點上,且頂點上的 w 只有很少的元素是非零的)

L2 正則 Ridge Regularizer / Weight Decay

J(w,b)=frac{1}{m} sum_{i=1}^{m}L(hat{y},y)+frac{lambda }{2m}left | w 
ight |^{2}_{2}

  • 凸函數,處處可微分
  • 易於優化

Dropout

Dropout 主要用於神經網路,其原理是使神經網路中的某些神經元隨機失活,讓模型不過度依賴某一神經元,達到增強模型魯棒性以及控制過擬合的效果。

https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf?

www.cs.toronto.edu

Dropout 還有多模型投票等功能. ↑是原論文


Summary:

本篇主要介紹了 歸一化/標準化 以及 正則化

PS:

本篇中只是提到Dropout, 後面我會專門寫一篇文章介紹Dropout

其中L1/L2正則的可微性, 我後面會給出詳細的證明, 之後會更新


推薦閱讀:

數據之美
數據分析第一關,改變的開始
當我們從事數據崗位時我們需要會什麼
這大概是全網最全的分析工具合集
轉行數據分析,請做好這五點(老學員分享)

TAG:機器學習 | 數據挖掘 | 數據分析 |