UFLDL教程:数据预处理
數據預處理是深度學習中非常重要的一步!如果說原始數據的獲得,是深度學習中最重要的一步,那么獲得原始數據之后對它的預處理更是重要的一部分。
一般來說,算法的好壞一定程度上和數據是否歸一化,是否白化有關。
數據歸一化
數據預處理中,標準的第一步是數據歸一化。雖然這里有一系列可行的方法,但是這一步通常是根據數據的具體情況而明確選擇的。特征歸一化常用的方法包含如下幾種:
1.樣本尺度歸一化:簡單縮放對數據的每一個維度的值進行重新調節,使其在 [0,1]或[-1,1] 的區間內。例子:在處理自然圖像時,我們獲得的像素值在 [0,255] 區間中,常用的處理是將這些像素值除以 255,使它們縮放到 [0,1] 中. 2.逐樣本均值消減(也稱為移除直流分量)在每個樣本上減去數據的統計平均值,用于平穩的數據(即數據每一個維度的統計都服從相同分布),對圖像一般只用在灰度圖上。 3.特征標準化(使數據集中所有特征都具有零均值和單位方差) 首先計算每一個維度上數據的均值(使用全體數據計算),之后在每一個維度上都減去該均值,然后在數據的每一維度上除以該維度上數據的標準差。數據尺度歸一化的原因是:
(1) 數據中每個維度表示的意義不同,所以有可能導致該維度的變化范圍不同,因此有必要將他們都歸一化到一個固定的范圍,一般情況下是歸一化到[0 1]或者[-1 1]。
(2) 這種數據歸一化還有一個好處是對后續的一些默認參數(比如白化操作)不需要重新過大的更改。
逐樣本的均值相減
(1) 主要應用在那些具有穩定性的數據集中,也就是那些數據的每個維度間的統計性質是一樣的。
比如說,在自然圖片中,這樣就可以減小圖片中亮度對數據的影響,因為我們一般很少用到亮度這個信息。
(2) 不過逐樣本的均值相減這只適用于一般的灰度圖,在rgb等色彩圖中,由于不同通道不具備統計性質相同性所以基本不會常用。
在數據的每個維度的統計性質是一樣的時候。對于圖像來說就是,對圖像的照度并不感興趣,而更多地關注其內容,這時對每個數據點移除像素的均值是有意義的,這時可以逐樣本均值消減,它一般只適用于灰度圖。
彩色圖像不能“逐樣本均值消減”,它的歸一化方法及原因見 UFLDL教程: Exercise:Learning color features with Sparse Autoencoders ,即:“每一維0均值化”,進行預處理。
特征標準化
特征標準化是指對數據的每一維進行均值化和方差相等化。這在很多機器學習的算法中都非常重要,比如SVM等。
數據白化
PCA白化、ZCA白化。重點是規則化項 epsilon的選擇。
數據的白化是在數據歸一化之后進行的。實踐證明,很多deep learning算法性能提高都要依賴于數據的白化。
在對數據進行白化前要求先對數據進行特征零均值化。這保證了
在數據白化過程中,最主要的還是參數epsilon的選擇,因為這個參數的選擇對deep learning的結果起著至關重要的作用。
在基于重構的模型中(比如說常見的RBM,Sparse coding, autoencoder都屬于這一類,因為他們基本上都是重構輸入數據),通常是選擇一個適當的epsilon值使得能夠對輸入數據進行低通濾波。
但是何謂適當的epsilon呢?
epsilon太小,則起不到過濾效果,會引入很多噪聲,而且基于重構的模型又要去擬合這些噪聲
epsilon太大,則又對元素數據有過大的模糊
一般的方法是畫出變化后數據的特征值分布圖,如果那些小的特征值基本都接近0,則此時的epsilon是比較合理的。
如下圖所示,讓那個長長的尾巴接近于x軸。該圖的橫坐標表示的是第幾個特征值,因為已經將數據集的特征值從大到小排序過。
epsilon的選擇方法:
a.以圖形方式畫出數據的特征值
b.選取大于大多數較小的、反映數據中噪聲的特征值作為 epsilon
實用技巧:
如果數據已被縮放到合理范圍(如[0,1]),可以從epsilon = 0.01或epsilon = 0.1開始調節epsilon。
基于正交化的ICA模型中,應該保持參數epsilon盡量小,因為這類模型需要對學習到的特征做正交化,以解除不同維度之間的相關性。
參考文獻
Deep learning:三十(關于數據預處理的相關技巧)
Deep Learning 11_深度學習UFLDL教程:數據預處理(斯坦福大學深度學習教程)
數據預處理
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的UFLDL教程:数据预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇丰京东铂金会员联名卡怎么激活?申请渠道
- 下一篇: 中银京东联名卡上线!优惠福利有这些