數據的歸一化和標準化是特徵縮放(feature scaling)的方法,是數據預處理的關鍵步驟.

雖然存在決策樹和隨機森林這種少數不需要特徵縮放的機器學習演算法,但是對於大部分機器學習演算法和優化演算法來說,如果特徵都在同一範圍內,會獲得更好的結果.

歸一化

歸一化就是將數據映射到指定的範圍之內(通常映射到[0, 1]或者[-1, 1]之間)

常見的歸一化方法有最小-最大縮放(min-max scaling)

公式如下:

x_{norm}^{(i)} = frac{x^{(i)}-x_{min}}{x_{max}-x_{min}}

標準化

標準化就是將數據縮放到以0為中心,標準差為1

標準化後的特徵形式服從正態分布,這樣學習權重參數更容易。此外,標準化後的數據保持異常值中的有用信息,使得演算法對異常值不太敏感,這一點歸一化就無法保證。

標準化的公式如下:

x_{std}^{(i)} = frac{x^{(i)}-mu_{x}}{sigma_{x}}

下面用一張表來展示標準化和歸一化的區別

可以看出,標準化將數據集中在了0的兩側,歸一化則將數據映射到[0,1]範圍內


正則化

正則化是用來引入模型複雜度的懲罰項,防止模型過擬合的方法.

正則化的幾何解釋:

假設損失函數是差平方損失函數(sum of the squared errors, SSE),且只含有兩個權重參數 w_{1}w_{2} ,易知損失函數是凸函數。對於給定的損失函數,我們的目的是找到損失函數取最小值時對應的權重值,如下圖損失函數等高線所示,當( w_{1}w_{2} )取橢圓中心點時,損失函數值最小:

圖片來自<<python機器學習>>

而正則項是對現在損失函數的懲罰項,它鼓勵權重參數小一點的值,換句話說,正則項是懲罰的大權重參數.

因此,如果增大正則係數 lambda 的值,也就增加了正則項的威力,導致權重參數變小(趨向於0),從而減小模型對訓練數據的依賴.

L1正則:

L1:||w||_{1} = sum_{j=1}^{m}{|w_{j}|}

L1正則是權重參數的絕對值的和 |w_{1}|+|w_{2}|leqfrac{1}{lambda} 如下圖所示:

圖片來自<<python機器學習>>

正則化以後:新損失函數=原始損失函數+正則項

所以權重參數必須在圖中的陰影中

L2正則:

L2:||w||_{2}^{2} = sum_{j=1}^{m}{|w_{j}^{2}|}

L2正則上圖中的表示為陰影球 w_{1}^{2}+w_{2}^{2}leqfrac{1}{lambda}

圖片來自<<python機器學習>>

正則化以後:新損失函數=原始損失函數+正則項

所以權重參數必須在圖中的陰影球中


推薦閱讀:
相关文章