梯度下降實用技巧I之特征縮放 Gradient Descent in practice I - feature scaling
當多個特征的範圍差距過大時,代價函數的輪廓圖會非常的偏斜,如下圖左所示,這會導緻梯度下降函數收斂的非常慢。是以需要特征縮放(feature scaling)來解決這個問題,特征縮放的目的是把特征的範圍縮放到接近的範圍。當把特征的範圍縮放到接近的範圍,就會使偏斜的不那麼嚴重。通過代價函數執行梯度下降算法時速度回加快,更快的收斂。如下圖右所示。
特征縮放的範圍:一般把特征的範圍縮放到-1到1,和這接近就行,沒必要同一範圍。梯度下降就能很好的工作。如下圖所示,x1 的範圍為0到3,x2的範圍為-2到0.5都是可以的。但不能相差的很大,-100到100則是不可以的。
特征縮放的方法:直接先看圖再解釋,主要是均值歸一化
一般的均值歸一化公式為:
,其中
為均值,s為特征的範圍,即max-min。也可以用标準差。
其實歸一化主要有兩種方法:
- 第一種是min-max标準化(Min-Max Normalization)
它把原始資料映射到[0-1]之間,公式為:
公式為:
其中,
為均值,
标準差。标準差是方差的開方,把标注差公式也貼上來吧:
這兩種歸一化方法的适用場景為:
- 在不涉及距離度量、協方差計算、資料不符合正太分布的時候,可以使用第一種方法或其他歸一化方法。比如圖像進行中,将RGB圖像轉換為灰階圖像後将其值限定在[0 255]的範圍
- 在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,第二種方法(Z-score standardization)表現更好。