白化(预处理步骤)【转】
白化(預處理步驟)【轉】
介紹
我們已經(jīng)了解了如何使用PCA降低數(shù)據(jù)維度。在一些算法中還需要一個與之相關的預處理步驟,這個預處理過程稱為白化。舉例來說,假設訓練數(shù)據(jù)是圖像,由于圖像中相鄰像素之間具有很強的相關性,所以用于訓練時輸入是冗余的。白化的目的就是降低輸入的冗余性;更正式的說,我們希望通過白化過程使得學習算法的輸入具有如下性質(zhì):(i)特征之間相關性較低;(ii)所有特征具有相同的方差。
2D的例子
下面我們先用前文的2D例子描述白化的主要思想,然后分別介紹如何將白化與平滑和PCA相結合。
如何消除特征之間的相關性?在前文計算轉存失敗重新上傳取消時實際上已經(jīng)消除了輸入特征轉存失敗重新上傳取消之間的相關性。得到的新特征??的分布如下圖所示:
這個數(shù)據(jù)的協(xié)方差矩陣如下:
(注:嚴格地講,這部分許多關于“協(xié)方差”的陳述僅當數(shù)據(jù)均值為0時成立。下文的論述都隱式地假定這一條件成立,不過即使數(shù)據(jù)均值不為0,下文的說法仍然成立,所以你無需擔心這個。)
??協(xié)方差矩陣對角元素的值為??和??絕非偶然。并且非對角元素值為0; 因此,??和??是不相關的, 滿足我們對白化結果的第一個要求 (特征間相關性降低)。
?為了使每個輸入特征具有單位方差,我們可以直接使用作為縮放因子來縮放每個特征轉存失敗重新上傳取消。具體地,我們定義白化后的數(shù)據(jù)轉存失敗重新上傳取消如下:
?繪制出?轉存失敗重新上傳取消?,我們得到:
?
?這些數(shù)據(jù)現(xiàn)在的協(xié)方差矩陣為單位矩陣I。我們說,?是數(shù)據(jù)經(jīng)過PCA白化后的版本:??中不同的特征之間不相關并且具有單位方差。
?白化與降維相結合:如果你想要得到經(jīng)過白化后的數(shù)據(jù),并且比初始輸入維數(shù)更低,可以僅保留??中前??個成分。當我們把PCA和正則化結合起來時(在稍后討論),轉存失敗重新上傳取消中最后的少量成分將總是接近于0,因而舍棄這些成分不會帶來很大的問題。
ZCA白化
?最后要說明的是,是數(shù)據(jù)的協(xié)方差矩陣變?yōu)閱挝痪仃嘔的方式并不唯一。具體地,如果R是任意正交矩陣,即滿足(說它正交不太嚴格,R可以是旋轉或反射矩陣),那么
?仍然具有單位協(xié)方差。在ZCA白化中,令??。我們定義ZCA白化的結果為:轉存失敗重新上傳取消
?繪制,得到:
?轉存失敗重新上傳取消
?可以證明,對所有可能的R,這種旋轉式的盡可能地接近原始輸入數(shù)據(jù)x。當使用ZCA白化時(不同于PCA白化),我們通常保留數(shù)據(jù)的全部n個維度,不嘗試去降低它的維數(shù)。
?正則化
實踐中需要實現(xiàn)PCA白化或ZCA白化時,有時一些特征值在數(shù)值上接近于0,這樣在縮放步驟時我們除以??將導致除以一個接近0的值;這可能會導致數(shù)據(jù)上溢(賦為最大值)或造成數(shù)值不穩(wěn)定。因而在實踐中,我們使用少量的正則化實現(xiàn)這個縮放過程,即在取平方根和倒數(shù)之前給特征值加上一個很小的常數(shù):
當??在區(qū)間??上時, 一般取值為?。
對圖像來說,這里加上,對輸入圖像也有一些平滑(或低通濾波)的作用。這樣處理還能消除在圖像的像素信息獲取過程中產(chǎn)生的噪聲,改善學習到的特征。
?ZCA白化是一種數(shù)據(jù)預處理方法,它將數(shù)據(jù)從??映射到??。?
?事實證明這也是一種生物眼睛(視網(wǎng)膜)處理圖像的粗糙模型。具體而言,當你的眼睛感知圖像時,由于一幅圖像中相鄰的部分在亮度上十分相關,大多數(shù)臨近的“像素”在眼中被感知為相近的值。因此,如果人眼需要分別傳輸每個像素值(通過視覺神經(jīng))到大腦中,會非常不劃算。取而代之的是,視網(wǎng)膜進行一個與ZCA中相似的去相關操作(這是由視網(wǎng)膜上的ON-型和OFF-型光感受器細胞將光信號轉變?yōu)樯窠?jīng)信號完成的)。由此得到對輸入圖像的更低冗余的表示,并將它傳輸?shù)酱竽X。
總結
以上是生活随笔為你收集整理的白化(预处理步骤)【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch 优化器 机器学习 调参
- 下一篇: caffe 下一些参数的设置