為什麼要對數據進行歸一化處理?
為什麼要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。
例子
假定為預測房價的例子,自變數為面積,房間數兩個,因變數為房價。
那麼可以得到的公式為:
其中代表房間數,代表變數前面的係數。
其中代表面積,代表變數前面的係數。
首先我們祭出兩張圖代表數據是否均一化的最優解尋解過程。
未歸一化:
歸一化之後
為什麼會出現上述兩個圖,並且它們分別代表什麼意思。
我們在尋找最優解的過程也就是在使得損失函數值最小的theta1,theta2。
上述兩幅圖代碼的是損失函數的等高線。
我們很容易看出,當數據沒有歸一化的時候,面積數的範圍可以從0~1000,房間數的範圍一般為0~10,可以看出面積數的取值範圍遠大於房間數。
影響
這樣造成的影響就是在畫損失函數的時候,
數據沒有歸一化的表達式,可以為:
造成圖像的等高線為類似橢圓形狀,最優解的尋優過程就是像下圖所示:
而數據歸一化之後,損失函數的表達式可以表示為:
其中變數的前面係數幾乎一樣,則圖像的等高線為類似圓形形狀,最優解的尋優過程像下圖所示:
從上可以看出,數據歸一化後,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。
這也是數據為什麼要歸一化的一個原因。
致謝:朱博、陳博
更多文章,可以掃描關注公眾號進行交流~
推薦閱讀:
※CTR預估[八]: Algorithm-GBDT: Parameter Space Estimation and Function Space Estimation
※Attention-over-Attention Neural Networks for Reading Comprehension
※Uber與斯坦福大學開源深度概率編程語言Pyro:基於PyTorch
※李宏毅機器學習2016 第十八講 支持向量機
TAG:机器学习 | 深度学习DeepLearning | 最优化 |