Stanford UFLDL教程 白化
白化
Contents[hide]
|
介紹
我們已經了解了如何使用PCA降低數據維度。在一些算法中還需要一個與之相關的預處理步驟,這個預處理過程稱為白化(一些文獻中也叫sphering)。舉例來說,假設訓練數據是圖像,由于圖像中相鄰像素之間具有很強的相關性,所以用于訓練時輸入是冗余的。白化的目的就是降低輸入的冗余性;更正式的說,我們希望通過白化過程使得學習算法的輸入具有如下性質:(i)特征之間相關性較低;(ii)所有特征具有相同的方差。
2D 的例子
下面我們先用前文的2D例子描述白化的主要思想,然后分別介紹如何將白化與平滑和PCA相結合。
如何消除輸入特征之間的相關性? 在前文計算 時實際上已經消除了輸入特征之間的相關性。得到的新特征 的分布如下圖所示:
這個數據的協方差矩陣如下:
(注: 嚴格地講, 這部分許多關于“協方差”的陳述僅當數據均值為0時成立。下文的論述都隱式地假定這一條件成立。不過即使數據均值不為0,下文的說法仍然成立,所以你無需擔心這個。)
協方差矩陣對角元素的值為 和 絕非偶然。并且非對角元素值為0; 因此, 和 是不相關的, 滿足我們對白化結果的第一個要求 (特征間相關性降低)。
為了使每個輸入特征具有單位方差,我們可以直接使用 作為縮放因子來縮放每個特征 。具體地,我們定義白化后的數據 如下:
繪制出 ,我們得到:
這些數據現在的協方差矩陣為單位矩陣 。我們說, 是數據經過PCA白化后的版本: 中不同的特征之間不相關并且具有單位方差。
白化與降維相結合。 如果你想要得到經過白化后的數據,并且比初始輸入維數更低,可以僅保留 中前 個成分。當我們把PCA白化和正則化結合起來時(在稍后討論), 中最后的少量成分將總是接近于0,因而舍棄這些成分不會帶來很大的問題。
ZCA白化
最后要說明的是,使數據的協方差矩陣變為單位矩陣 的方式并不唯一。具體地,如果 是任意正交矩陣,即滿足 (說它正交不太嚴格, 可以是旋轉或反射矩陣), 那么 仍然具有單位協方差。在ZCA白化中,令 。我們定義ZCA白化的結果為:
繪制 ,得到:
可以證明,對所有可能的 ,這種旋轉使得 盡可能地接近原始輸入數據 。
當使用 ZCA白化時(不同于 PCA白化),我們通常保留數據的全部 個維度,不嘗試去降低它的維數。
正則化
實踐中需要實現PCA白化或ZCA白化時,有時一些特征值 在數值上接近于0,這樣在縮放步驟時我們除以 將導致除以一個接近0的值;這可能使數據上溢 (賦為大數值)或造成數值不穩定。因而在實踐中,我們使用少量的正則化實現這個縮放過程,即在取平方根和倒數之前給特征值加上一個很小的常數:
當 在區間 上時, 一般取值為。
對圖像來說, 這里加上 ,對輸入圖像也有一些平滑(或低通濾波)的作用。這樣處理還能消除在圖像的像素信息獲取過程中產生的噪聲,改善學習到的特征(細節超出了本文的范圍)。
ZCA 白化是一種數據預處理方法,它將數據從 映射到 。 事實證明這也是一種生物眼睛(視網膜)處理圖像的粗糙模型。具體而言,當你的眼睛感知圖像時,由于一幅圖像中相鄰的部分在亮度上十分相關,大多數臨近的“像素”在眼中被感知為相近的值。因此,如果人眼需要分別傳輸每個像素值(通過視覺神經)到大腦中,會非常不劃算。取而代之的是,視網膜進行一個與ZCA中相似的去相關操作 (這是由視網膜上的ON-型和OFF-型光感受器細胞將光信號轉變為神經信號完成的)。由此得到對輸入圖像的更低冗余的表示,并將它傳輸到大腦。
中英文對照
白化 whitening
冗余 redundant
方差 variance
平滑 smoothing
降維 dimensionality reduction
正則化 regularization
反射矩陣 reflection matrix
去相關 decorrelation
from: http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96
總結
以上是生活随笔為你收集整理的Stanford UFLDL教程 白化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Stanford UFLDL教程 神经网
- 下一篇: Stanford UFLDL教程 实现主