歸一化 正則化 標準化
注: 本篇文章借鑒了知乎用戶 Dave的文章
歸一化 Normalization
歸一化就是 將數據映射到指定的範圍, 用於出去不同維度數據的量綱以及量綱維度
常見的映射範圍是 [0, 1], [-1, 1]
min-max歸一化
比如有些維度的數據值都很大, 如果不進行歸一化, 會遮蓋其他的特徵
標準化 Normalization
其實標準化和歸一化的英文都是normalization, 這裡做出區分只是根據用途來區分
z-score標準化
miu 是 平均值(mean)
sigma 是 標準差(std)
散點序列的標準化過程:原圖->減去均值->除以標準差
變成了一個均值為 0 ,方差為 1 的分布
標準化後可以更加容易地得出最優參數和以及計算出的最小值,從而達到加速收斂的效果
Batch Normalization
這是最常用的正則化
Accelerating Deep Network Training by Reducing Internal Covariate Shift這是原論文
我們知道數據預處理做標準化可以加速收斂,同理,在神經網路使用標準化也可以加速收斂,而且還有如下好處:
- 具有正則化的效果(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 項是正則項, 為調整兩者之間關係的係數
第 1 項的經驗風險較小的模型可能較複雜(有多個非零參數),這時第 2 項的模型複雜度會較大
常見的有正則項有 L1 正則 和 L2 正則 ,其中 L2 正則 的控制過擬合的效果比 L1 正則 的好
正則化的作用是選擇經驗風險與模型複雜度同時較小的模型
常見的有正則項有 L1 正則 和 L2 正則 以及 Dropout ,其中 L2 正則 的控制過擬合的效果比 L1 正則 的好
範數
為什麼叫 L1 正則,有 L1、L2 正則 那麼有沒有 L3、L4 之類的呢?
首先我們補一補課, 正則的 L 是指 範數,其定義為:
範數: (非零元素的個數)
範數: (每個元素絕對值之和)
範數: (歐氏距離)
範數:
在機器學習中,若使用了 作為正則項,我們則說該機器學習任務引入了 正則項。
L1 正則 Lasso regularizer
- 凸函數,不是處處可微分
- 得到的是稀疏解(最優解常出現在頂點上,且頂點上的 w 只有很少的元素是非零的)
L2 正則 Ridge Regularizer / Weight Decay
- 凸函數,處處可微分
- 易於優化
Dropout
Dropout 主要用於神經網路,其原理是使神經網路中的某些神經元隨機失活,讓模型不過度依賴某一神經元,達到增強模型魯棒性以及控制過擬合的效果。
https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdfDropout 還有多模型投票等功能. ↑是原論文
Summary:
本篇主要介紹了 歸一化/標準化 以及 正則化
PS:
本篇中只是提到Dropout, 後面我會專門寫一篇文章介紹Dropout
其中L1/L2正則的可微性, 我後面會給出詳細的證明, 之後會更新
推薦閱讀:
※數據之美
※數據分析第一關,改變的開始
※當我們從事數據崗位時我們需要會什麼
※這大概是全網最全的分析工具合集
※轉行數據分析,請做好這五點(老學員分享)