1. 程式人生 > >深度學習-----資料預處理是必要的,一些經驗化的預處理措施

深度學習-----資料預處理是必要的,一些經驗化的預處理措施

資料歸一化

更多詳細資訊,參照網址:非常值得一看:

http://blog.csdn.net/qq_26898461/article/details/50463052

http://blog.csdn.net/bea_tree/article/details/51519844

資料預處理中,標準的第一步是資料歸一化。雖然這裡有一系列可行的方法,但是這一步通常是根據資料的具體情況而明確選擇的。特徵歸一化常用的方法包含如下幾種:

  • 簡單縮放
  • 逐樣本均值消減(也稱為移除直流分量)
  • 特徵標準化(使資料集中所有特徵都具有零均值和單位方差)

簡單縮放

在簡單縮放中,我們的目的是通過對資料的每一個維度的值進行重新調節(這些維度可能是相互獨立的),使得最終的資料向量落在 
[0,1][ − 1,1] 的區間內(根據資料情況而定)。這對後續的處理十分重要,因為很多預設引數(如 PCA-白化中的 epsilon)都假定資料已被縮放到合理區間。

Eg:在處理自然影象時,我們獲得的畫素值在 [0,255] 區間中,常用的處理是將這些畫素值除以 255,使它們縮放到 [0,1] 中.

逐樣本均值消減

如果你的資料是平穩的(即資料每一個維度的統計都服從相同分佈),那麼你可以考慮在每個樣本上減去資料的統計平均值(逐樣本計算)。

Eg:對於影象,這種歸一化可以移除影象的平均亮度值 (intensity)。很多情況下我們對影象的照度並不感興趣,而更多地關注其內容,這時對每個資料點移除畫素的均值是有意義的。注意:

雖然該方法廣泛地應用於影象,但在處理彩色影象時需要格外小心,具體來說,是因為不同色彩通道中的畫素並不都存在平穩特性。

特徵標準化

特徵標準化指的是(獨立地)使得資料的每一個維度具有零均值和單位方差。這是歸一化中最常見的方法並被廣泛地使用(例如,在使用支援向量機(SVM)時,特徵標準化常被建議用作預處理的一部分)。在實際應用中,特徵標準化的具體做法是:首先計算每一個維度上資料的均值(使用全體資料計算),之後在每一個維度上都減去該均值。下一步便是在資料的每一維度上除以該維度上資料的標準差。

Eg:處理音訊資料時,常用 Mel 倒頻係數 MFCCs 來表徵資料。然而MFCC特徵的第一個分量(表示直流分量)數值太大,常常會掩蓋其他分量。這種情況下,為了平衡各個分量的影響,通常對特徵的每個分量獨立地使用標準化處理。

PCA/ZCA白化

在做完簡單的歸一化後,白化通常會被用來作為接下來的預處理步驟,它會使我們的演算法工作得更好。實際上許多深度學習演算法都依賴於白化來獲得好的特徵。

在進行 PCA/ZCA 白化時,首先使特徵零均值化是很有必要的,這保證了 \frac{1}{m} \sum_i x^{(i)} = 0。特別地,這一步需要在計算協方差矩陣前完成。(唯一例外的情況是已經進行了逐樣本均值消減,並且資料在各維度上或畫素上是平穩的。)

接下來在 PCA/ZCA 白化中我們需要選擇合適的 epsilon(回憶一下,這是規則化項,對資料有低通濾波作用)。 選取合適的 epsilon 值對特徵學習起著很大作用


標準流程

在這一部分中,我們將介紹幾種在一些資料集上有良好表現的預處理標準流程.

自然灰度影象

灰度影象具有平穩特性,我們通常在第一步對每個資料樣本分別做均值消減(即減去直流分量),然後採用 PCA/ZCA 白化處理,其中的 epsilon 要足夠大以達到低通濾波的效果。

彩色影象

對於彩色影象,色彩通道間並不存在平穩特性。因此我們通常首先對資料進行特徵縮放(使畫素值位於 [0,1] 區間),然後使用足夠大的 epsilon 來做 PCA/ZCA。注意在進行 PCA 變換前需要對特徵進行分量均值歸零化。

音訊 (MFCC/頻譜圖)

對於音訊資料 (MFCC 和頻譜圖),每一維度的取值範圍(方差)不同。例如 MFCC 的第一分量是直流分量,通常其幅度遠大於其他分量,尤其當特徵中包含時域導數 (temporal derivatives) 時(這是音訊處理中的常用方法)更是如此。因此,對這類資料的預處理通常從簡單的資料標準化開始(即使得資料的每一維度均值為零、方差為 1),然後進行 PCA/ZCA 白化(使用合適的 epsilon)。

MNIST 手寫數字

MNIST 資料集的畫素值在 [0,255] 區間中。我們首先將其縮放到 [0,1] 區間。實際上,進行逐樣本均值消去也有助於特徵學習。注:也可選擇以對 MNIST 進行 PCA/ZCA 白化,但這在實踐中不常用。