文章來自知乎,作者hit nlper 憶臻
轉自:https://zhuanlan.zhihu.com/p/27627299
在喂給機器學習模型的數據中,對數據要進行歸一化的處理。
為什么要進行歸一化處理,下面從尋找最優解這個角度給出自己的看法。
例子
假定為預測房價的例子,自變量為面積,房間數兩個,因變量為房價。
那么可以得到的公式為:
其中代表房間數,
代表
變量前面的系數。
其中代表面積,
代表
變量前面的系數。
首先我們祭出兩張圖代表數據是否均一化的最優解尋解過程。
未歸一化:
歸一化之后
為什么會出現上述兩個圖,並且它們分別代表什么意思。
我們在尋找最優解的過程也就是在使得損失函數值最小的theta1,theta2。
上述兩幅圖代碼的是損失函數的等高線。
我們很容易看出,當數據沒有歸一化的時候,面積數的范圍可以從0~1000,房間數的范圍一般為0~10,可以看出面積數的取值范圍遠大於房間數。
影響
這樣造成的影響就是在畫損失函數的時候,
數據沒有歸一化的表達式,可以為:
造成圖像的等高線為類似橢圓形狀,最優解的尋優過程就是像下圖所示:
而數據歸一化之后,損失函數的表達式可以表示為:
其中變量的前面系數幾乎一樣,則圖像的等高線為類似圓形形狀,最優解的尋優過程像下圖所示:
從上可以看出,數據歸一化后,最優解的尋優過程明顯會變得平緩,更容易正確的收斂到最優解。
這也是數據為什么要歸一化的一個原因。