在回歸問題和一些機器學習演算法中,以及訓練神經網路的過程中,通常需要對原始資料進行中心化(zero-centered或者mean-subtraction)處理和標準化(standardization或normalization)處理。目的:通過中心化和標準化處理,得到均值為0,標準差為1的服從標準正態分佈的資料。
計算過程由下式表示:
數學期望
方差下面解釋一下為什麼需要使用這些資料預處理步驟。
在一些實際問題中,我們得到的樣本資料都是多個維度的,即乙個樣本是用多個特徵來表徵的。比如在**房價的問題中,影響房價
y
y y的因素有房子面積
x 1x1
x1、臥室數量
x 2x2
x2等,我們得到的樣本資料就是
( x1
,x2)
(x1,x2)
(x1,x2
)這樣一些樣本點,這裡的
( x1
)(x1)
(x1)、(x2
)(x2)
(x2)
又被稱為特徵。很顯然,這些特徵的量綱和數值得量級都是不一樣的,在**房價時,如果直接使用原始的資料值,那麼他們對房價的影響程度將是不一樣的,而通過標準化處理,可以使得不同的特徵具有相同的尺度(scale)。這樣,在使用梯度下降法學習引數的時候,不同特徵對引數的影響程度就一樣了。簡言之,當原始資料不同維度上的特徵的尺度(單位)不一致時,需要標準化步驟對資料進行預處理。
下圖中以二維資料為例:左圖表示的是原始資料;中間的是中心化後的資料,資料被移動大原點周圍;右圖將中心化後的資料除以標準差,得到為標準化的資料,可以看出每個維度上的尺度是一致的(紅色線段的長度表示尺度)。
其實,在不同的問題中,中心化和標準化有著不同的意義,
比如在訓練神經網路的過程中,通過將資料標準化,能夠加速權重引數的收斂。
另外,對於主成分分析(pca)問題,也需要對資料進行中心化和標準化等預處理步驟。
對資料進行中心化預處理,這樣做的目的是要增加基向量的正交性。
對資料標準化的目的是消除特徵之間的差異性。便於對一心一意學習權重。
參考
為什麼需要深度學習
為了科研專案的需求,作為在博一快結束時轉而進行機器學習領域的研究。周圍沒有同事從事相關的研究,用最快的速度完成了對機器學習和深度學習的了解。我感覺經常問自己的乙個問題就是為什麼要從機器學習到深度學習?對我的科研工作有沒有幫助。我主要看了兩個資料 deep learning book mit intr...
深度學習 為什麼深度學習需要大記憶體?
本文主要譯介自graphcore在2017年1月的這篇部落格 why is so much memory needed for deep neural networks。介紹了深度學習中記憶體的開銷,以及降低記憶體需求的幾種解決方案。考慮乙個單層線性網路,附帶乙個啟用函式 h w 1x w 2h w...
為什麼要做服務化?
服務化之前高可用架構 在服務化之前,網際網路的高可用架構大致是這樣乙個架構 2 後端入口是高可用的 nginx 集群,用於做反向 3 中間核心是高可用的 web server 集群,研發工程師主要編碼工作就是在這一層 4 後端儲存是高可用的 db 集群,資料儲存在這一層 更典型的,web serve...