理論知識:UFLDL數據預處理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html
數據預處理是深度學習中非常重要的一步!如果說原始數據的獲得,是深度學習中最重要的一步,那么獲得原始數據之后對它的預處理更是重要的一部分。
1.數據預處理的方法:
①數據歸一化:
簡單縮放:對數據的每一個維度的值進行重新調節,使其在 [0,1]或[ − 1,1] 的區間內
逐樣本均值消減:在每個樣本上減去數據的統計平均值,用於平穩的數據,對圖像一般只用在灰度圖上。
特征標准化:使數據的每一個維度具有零均值和單位方差。首先計算每一個維度上數據的均值(使用全體數據計算),之后在每一個維度上都減去該均值,然后在數據的每一維度上除以該維度上數據的標准差。最常用!
②白化:PCA白化、ZCA白化。重點是規則化項 epsilon的選擇!
如果 epsilon 值過低,白化后的數據會顯得噪聲很大;相反,如果 epsilon 值過高,白化后的數據與原始數據相比就過於模糊。
epsilon的選擇方法:
a.以圖形方式畫出數據的特征值;b.選取大於大多數較小的、反映數據中噪聲的特征值作為 epsilon 。
2.具體怎么調節epsilon?沒搞懂,要是有個Exercise就好了
2.預處理時,什么時候該進行逐樣本均值消減(即:單獨每個樣本0均值化,而不是用所有樣本每一維度0均值化)?
在數據的每個維度的統計性質是一樣的時候。對於圖像來說就是,對圖像的照度並不感興趣,而更多地關注其內容,這時對每個數據點移除像素的均值是有意義的,這時可以逐樣本均值消減,它一般只適用於灰度圖。
注意:彩色圖像不能“逐樣本均值消減”,它的歸一化方法及原因見Deep Learning 九_深度學習UFLDL教程:linear decoder_exercise(斯坦福大學深度學習教程),即:“每一維0均值化”,進行預處理。