為什麼要對數據進行歸一化處理?

在餵給機器學習模型的數據中,對數據要進行歸一化的處理。

為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。

例子

假定為預測房價的例子,自變數為面積,房間數兩個,因變數為房價。

那麼可以得到的公式為:

y=theta _{1}x_{1}  +theta _{2}x_{2}

其中x_{1} 代表房間數,theta _{1} 代表x_{1} 變數前面的係數。

其中x_{2} 代表面積,theta _{2} 代表x_{2} 變數前面的係數。

首先我們祭出兩張圖代表數據是否均一化的最優解尋解過程。

未歸一化:

歸一化之後

為什麼會出現上述兩個圖,並且它們分別代表什麼意思。

我們在尋找最優解的過程也就是在使得損失函數值最小的theta1,theta2。

上述兩幅圖代碼的是損失函數的等高線。

我們很容易看出,當數據沒有歸一化的時候,面積數的範圍可以從0~1000,房間數的範圍一般為0~10,可以看出面積數的取值範圍遠大於房間數。

影響

這樣造成的影響就是在畫損失函數的時候,

數據沒有歸一化的表達式,可以為:

J=(3theta _{1}+ 600theta _{2}-y_{correct} )^{2}

造成圖像的等高線為類似橢圓形狀,最優解的尋優過程就是像下圖所示:

而數據歸一化之後,損失函數的表達式可以表示為:

J=(0.5theta _{1}+ 0.55theta _{2}-y_{correct} )^{2}

其中變數的前面係數幾乎一樣,則圖像的等高線為類似圓形形狀,最優解的尋優過程像下圖所示:

從上可以看出,數據歸一化後,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。

這也是數據為什麼要歸一化的一個原因。

致謝:朱博、陳博

更多文章,可以掃描關注公眾號進行交流~


推薦閱讀:

CTR預估[八]: Algorithm-GBDT: Parameter Space Estimation and Function Space Estimation
Attention-over-Attention Neural Networks for Reading Comprehension
Uber與斯坦福大學開源深度概率編程語言Pyro:基於PyTorch
李宏毅機器學習2016 第十八講 支持向量機

TAG:机器学习 | 深度学习DeepLearning | 最优化 |