斯坦福大學公開課機器學習:梯度降低運算的特徵縮放(gradient descent in practice 1:feature scaling)

以房屋價格爲例,假設有兩個特徵向量:X1:房子大小(1-2000 feets), X2:臥室數量(1-5)函數

關於這兩個特徵向量的代價函數以下圖所示:orm

從上圖能夠看出,代價函數是一個又瘦又高的橢圓形輪廓圖,若是用這個代價函數來運行梯度降低的話,獲得最終的梯度值,可能須要花費很長的時間,甚至可能來回震動,最終才能收斂到全局最小值。爲了減小梯度下來花費的時間,最好的辦法就是對特徵向量進行縮放(feature scaling)。blog

特徵向量縮放(feature scaling):具體來講,仍是以上面的房屋價格爲例,假設有兩個特徵向量:X1:房子大小(1-2000 feets), X2:臥室數量(1-5),如今將它們轉化爲以下公式:io

即將房子大小除以2000,臥室的數量除以5.變量

這個時候代價函數就會變得比較圓,計算最終梯度值的速度也會隨之變快,以下圖所示:im

通常狀況下,咱們進行特徵向量縮放的目的是將特徵的取值約束到[-1 ,1]之間,而特徵X0恆等於1,[-1,1]這個範圍並非很嚴格的,事實上,假如存在特徵向量X1,其縮放之後爲[0,3]或者[-2,0.5]之間,這也是容許的。可是若是是在[-100,100]或者[-0.0001,0.0001]之間,則是不容許的,跟[-1,1]差距太大了。d3

將特徵向量除以最大值是特徵縮放的其中一種方式,還有另外一種方式是均值歸一化(mean normalization),其思想以下:db

假設將特徵向量Xi用Xii代替,使其均值接近0,假設房子平均大小爲1000 feets,平均臥室數量爲2,則特徵向量能夠轉化爲以下公式:img

 

 通常狀況下,能夠用X1來代替原來的特徵X1,具體公式以下:時間

 

x1,x2指的是原來的特徵向量,u1,u2指的是在訓練集中,特徵向量x1,x2分別的平均值,s1,s2指的是該特徵值的範圍(即最大值減去最小值),也能夠把s1,s2改成變量的標準差

相關文章
相關標籤/搜索