Stanford UFLDL教程 数据预处理
數(shù)據(jù)預(yù)處理
Contents[hide]
|
概要
數(shù)據(jù)預(yù)處理在眾多深度學(xué)習(xí)算法中都起著重要作用,實(shí)際情況中,將數(shù)據(jù)做歸一化和白化處理后,很多算法能夠發(fā)揮最佳效果。然而除非對(duì)這些算法有豐富的使用經(jīng)驗(yàn),否則預(yù)處理的精確參數(shù)并非顯而易見(jiàn)。在本頁(yè)中,我們希望能夠揭開(kāi)預(yù)處理方法的神秘面紗,同時(shí)為預(yù)處理數(shù)據(jù)提供技巧(和標(biāo)準(zhǔn)流程)。
提示:當(dāng)我們開(kāi)始處理數(shù)據(jù)時(shí),首先要做的事是觀察數(shù)據(jù)并獲知其特性。本部分將介紹一些通用的技術(shù),在實(shí)際中應(yīng)該針對(duì)具體數(shù)據(jù)選擇合適的預(yù)處理技術(shù)。例如一種標(biāo)準(zhǔn)的預(yù)處理方法是對(duì)每一個(gè)數(shù)據(jù)點(diǎn)都減去它的均值(也被稱為移除直流分量,局部均值消減,消減歸一化),這一方法對(duì)諸如自然圖像這類數(shù)據(jù)是有效的,但對(duì)非平穩(wěn)的數(shù)據(jù)則不然。
數(shù)據(jù)歸一化
數(shù)據(jù)預(yù)處理中,標(biāo)準(zhǔn)的第一步是數(shù)據(jù)歸一化。雖然這里有一系列可行的方法,但是這一步通常是根據(jù)數(shù)據(jù)的具體情況而明確選擇的。特征歸一化常用的方法包含如下幾種:
- 簡(jiǎn)單縮放
- 逐樣本均值消減(也稱為移除直流分量)
- 特征標(biāo)準(zhǔn)化(使數(shù)據(jù)集中所有特征都具有零均值和單位方差)
簡(jiǎn)單縮放
在簡(jiǎn)單縮放中,我們的目的是通過(guò)對(duì)數(shù)據(jù)的每一個(gè)維度的值進(jìn)行重新調(diào)節(jié)(這些維度可能是相互獨(dú)立的),使得最終的數(shù)據(jù)向量落在 [0,1]或[ ? 1,1] 的區(qū)間內(nèi)(根據(jù)數(shù)據(jù)情況而定)。這對(duì)后續(xù)的處理十分重要,因?yàn)楹芏嗄J(rèn)參數(shù)(如 PCA-白化中的 epsilon)都假定數(shù)據(jù)已被縮放到合理區(qū)間。
例子:在處理自然圖像時(shí),我們獲得的像素值在 [0,255] 區(qū)間中,常用的處理是將這些像素值除以 255,使它們縮放到[0,1] 中.
逐樣本均值消減
如果你的數(shù)據(jù)是平穩(wěn)的(即數(shù)據(jù)每一個(gè)維度的統(tǒng)計(jì)都服從相同分布),那么你可以考慮在每個(gè)樣本上減去數(shù)據(jù)的統(tǒng)計(jì)平均值(逐樣本計(jì)算)。
例子:對(duì)于圖像,這種歸一化可以移除圖像的平均亮度值 (intensity)。很多情況下我們對(duì)圖像的照度并不感興趣,而更多地關(guān)注其內(nèi)容,這時(shí)對(duì)每個(gè)數(shù)據(jù)點(diǎn)移除像素的均值是有意義的。注意:雖然該方法廣泛地應(yīng)用于圖像,但在處理彩色圖像時(shí)需要格外小心,具體來(lái)說(shuō),是因?yàn)椴煌释ǖ乐械南袼夭⒉欢即嬖谄椒€(wěn)特性。
特征標(biāo)準(zhǔn)化
特征標(biāo)準(zhǔn)化指的是(獨(dú)立地)使得數(shù)據(jù)的每一個(gè)維度具有零均值和單位方差。這是歸一化中最常見(jiàn)的方法并被廣泛地使用(例如,在使用支持向量機(jī)(SVM)時(shí),特征標(biāo)準(zhǔn)化常被建議用作預(yù)處理的一部分)。在實(shí)際應(yīng)用中,特征標(biāo)準(zhǔn)化的具體做法是:首先計(jì)算每一個(gè)維度上數(shù)據(jù)的均值(使用全體數(shù)據(jù)計(jì)算),之后在每一個(gè)維度上都減去該均值。下一步便是在數(shù)據(jù)的每一維度上除以該維度上數(shù)據(jù)的標(biāo)準(zhǔn)差。
例子:處理音頻數(shù)據(jù)時(shí),常用 Mel 倒頻系數(shù) MFCCs 來(lái)表征數(shù)據(jù)。然而MFCC特征的第一個(gè)分量(表示直流分量)數(shù)值太大,常常會(huì)掩蓋其他分量。這種情況下,為了平衡各個(gè)分量的影響,通常對(duì)特征的每個(gè)分量獨(dú)立地使用標(biāo)準(zhǔn)化處理。
PCA/ZCA白化
在做完簡(jiǎn)單的歸一化后,白化通常會(huì)被用來(lái)作為接下來(lái)的預(yù)處理步驟,它會(huì)使我們的算法工作得更好。實(shí)際上許多深度學(xué)習(xí)算法都依賴于白化來(lái)獲得好的特征。
在進(jìn)行 PCA/ZCA 白化時(shí),首先使特征零均值化是很有必要的,這保證了 。特別地,這一步需要在計(jì)算協(xié)方差矩陣前完成。(唯一例外的情況是已經(jīng)進(jìn)行了逐樣本均值消減,并且數(shù)據(jù)在各維度上或像素上是平穩(wěn)的。)
接下來(lái)在 PCA/ZCA 白化中我們需要選擇合適的 epsilon(回憶一下,這是規(guī)則化項(xiàng),對(duì)數(shù)據(jù)有低通濾波作用)。 選取合適的 epsilon 值對(duì)特征學(xué)習(xí)起著很大作用,下面討論在兩種不同場(chǎng)合下如何選取 epsilon:
基于重構(gòu)的模型
在基于重構(gòu)的模型中(包括自編碼器,稀疏編碼,受限 Boltzman 機(jī)(RBM),k-均值(K-Means)),經(jīng)常傾向于選取合適的 epsilon 以使得白化達(dá)到低通濾波的效果。(譯注:通常認(rèn)為數(shù)據(jù)中的高頻分量是噪聲,低通濾波的作用就是盡可能抑制這些噪聲,同時(shí)保留有用的信息。在 PCA 等方法中,假設(shè)數(shù)據(jù)的信息主要分布在方差較高的方向,方差較低的方向是噪聲(即高頻分量),因此后文中epsilon 的選擇與特征值有關(guān))。一種檢驗(yàn) epsilon 是否合適的方法是用該值對(duì)數(shù)據(jù)進(jìn)行 ZCA 白化,然后對(duì)白化前后的數(shù)據(jù)進(jìn)行可視化。如果epsilon 值過(guò)低,白化后的數(shù)據(jù)會(huì)顯得噪聲很大;相反,如果 epsilon 值過(guò)高,白化后的數(shù)據(jù)與原始數(shù)據(jù)相比就過(guò)于模糊。一種直觀上得到epsilon 大小的方法是以圖形方式畫出數(shù)據(jù)的特征值,如下圖的例子所示,你可以看到一條"長(zhǎng)尾",它對(duì)應(yīng)于數(shù)據(jù)中的高頻噪聲部分。你需要選取合適的epsilon,使其能夠在很大程度上過(guò)濾掉這條"長(zhǎng)尾",也就是說(shuō),選取的 epsilon 應(yīng)大于大多數(shù)較小的、反映數(shù)據(jù)中噪聲的特征值。
在基于重構(gòu)的模型中,損失函數(shù)有一項(xiàng)是用于懲罰那些與原始輸入數(shù)據(jù)差異較大的重構(gòu)結(jié)果(譯注:以自動(dòng)編碼機(jī)為例,要求輸入數(shù)據(jù)經(jīng)過(guò)編碼和解碼之后還能盡可能的還原輸入數(shù)據(jù))。如果epsilon 太小,白化后的數(shù)據(jù)中就會(huì)包含很多噪聲,而模型要擬合這些噪聲,以達(dá)到很好的重構(gòu)結(jié)果。因此,對(duì)于基于重構(gòu)的模型來(lái)說(shuō),對(duì)原始數(shù)據(jù)進(jìn)行低通濾波就顯得非常重要。
提示:如果數(shù)據(jù)已被縮放到合理范圍(如[0,1]),可以從epsilon = 0.01或epsilon = 0.1開(kāi)始調(diào)節(jié)epsilon。
基于正交化ICA的模型
對(duì)基于正交化ICA的模型來(lái)說(shuō),保證輸入數(shù)據(jù)盡可能地白化(即協(xié)方差矩陣為單位矩陣)非常重要。這是因?yàn)?#xff1a;這類模型需要對(duì)學(xué)習(xí)到的特征做正交化,以解除不同維度之間的相關(guān)性(詳細(xì)內(nèi)容請(qǐng)參考ICA 一節(jié))。因此在這種情況下,epsilon 要足夠小(比如 epsilon = 1e ? 6)。
提示:我們也可以在PCA白化過(guò)程中同時(shí)降低數(shù)據(jù)的維度。這是一個(gè)很好的主意,因?yàn)檫@樣可以大大提升算法的速度(減少了運(yùn)算量和參數(shù)數(shù)目)。確定要保留的主成分?jǐn)?shù)目有一個(gè)經(jīng)驗(yàn)法則:即所保留的成分的總方差達(dá)到總樣本方差的 99% 以上。(詳細(xì)內(nèi)容請(qǐng)參考 PCA)
注意: 在使用分類框架時(shí),我們應(yīng)該只基于練集上的數(shù)據(jù)計(jì)算PCA/ZCA白化矩陣。需要保存以下兩個(gè)參數(shù)留待測(cè)試集合使用:(a)用于零均值化數(shù)據(jù)的平均值向量;(b)白化矩陣。測(cè)試集需要采用這兩組保存的參數(shù)來(lái)進(jìn)行相同的預(yù)處理。
大圖像
對(duì)于大圖像,采用基于 PCA/ZCA 的白化方法是不切實(shí)際的,因?yàn)閰f(xié)方差矩陣太大。在這些情況下我們退而使用 1/f 白化方法(更多內(nèi)容后續(xù)再講)。
標(biāo)準(zhǔn)流程
在這一部分中,我們將介紹幾種在一些數(shù)據(jù)集上有良好表現(xiàn)的預(yù)處理標(biāo)準(zhǔn)流程.
自然灰度圖像
灰度圖像具有平穩(wěn)特性,我們通常在第一步對(duì)每個(gè)數(shù)據(jù)樣本分別做均值消減(即減去直流分量),然后采用 PCA/ZCA 白化處理,其中的 epsilon 要足夠大以達(dá)到低通濾波的效果。
彩色圖像
對(duì)于彩色圖像,色彩通道間并不存在平穩(wěn)特性。因此我們通常首先對(duì)數(shù)據(jù)進(jìn)行特征縮放(使像素值位于 [0,1] 區(qū)間),然后使用足夠大的epsilon 來(lái)做 PCA/ZCA。注意在進(jìn)行 PCA 變換前需要對(duì)特征進(jìn)行分量均值歸零化。
音頻 (MFCC/頻譜圖)
對(duì)于音頻數(shù)據(jù) (MFCC 和頻譜圖),每一維度的取值范圍(方差)不同。例如 MFCC 的第一分量是直流分量,通常其幅度遠(yuǎn)大于其他分量,尤其當(dāng)特征中包含時(shí)域?qū)?shù) (temporal derivatives) 時(shí)(這是音頻處理中的常用方法)更是如此。因此,對(duì)這類數(shù)據(jù)的預(yù)處理通常從簡(jiǎn)單的數(shù)據(jù)標(biāo)準(zhǔn)化開(kāi)始(即使得數(shù)據(jù)的每一維度均值為零、方差為 1),然后進(jìn)行 PCA/ZCA 白化(使用合適的epsilon)。
MNIST 手寫數(shù)字
MNIST 數(shù)據(jù)集的像素值在 [0,255] 區(qū)間中。我們首先將其縮放到 [0,1] 區(qū)間。實(shí)際上,進(jìn)行逐樣本均值消去也有助于特征學(xué)習(xí)。注:也可選擇以對(duì) MNIST 進(jìn)行 PCA/ZCA 白化,但這在實(shí)踐中不常用。
中英文對(duì)照
總結(jié)
以上是生活随笔為你收集整理的Stanford UFLDL教程 数据预处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Stanford UFLDL教程 卷积特
- 下一篇: Stanford UFLDL教程 用反向