深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
主成分分析與白化是在做深度學習訓(xùn)練時最常見的兩種預(yù)處理的方法,主成分分析是一種我們用的很多的降維的一種手段,通過PCA降維,我們能夠有效的降低數(shù)據(jù)的維度,加快運算速度。而白化就是為了使得每個特征能有同樣的方差,降低相鄰像素的相關(guān)性。
主成分分析PCA
PCA算法可以將輸入向量轉(zhuǎn)換為一個維數(shù)低很多的近似向量。我們在這里首先用2D的數(shù)據(jù)進行試驗,其數(shù)據(jù)集可以在UFLDL網(wǎng)站的相應(yīng)頁面http://ufldl.stanford.edu/wiki/index.php/Exercise:PCA_in_2D找到并下載。
第一步:首先我們需要獲取旋轉(zhuǎn)矩陣U,為了實現(xiàn)這一目的,我們使用MATLAB里面的SVD函數(shù):
?| 1 2 3 4 | u = zeros(size(x, 1)); % You need to compute this [n,m]=size(x) sigma=(x*(x'))/m; [u,s,v]=svd(sigma); |
我們把旋轉(zhuǎn)矩陣的向量,第一個向量和第二個向量顯示出來
可以看到,U的兩列分別代表著在數(shù)據(jù)集的各個方向,第一列是從左下到右上,第二列的是左上到右下的那一條。
?| 1 2 | xRot = zeros(size(x)); % You need to compute this xRot=u'*x; |
將旋轉(zhuǎn)矩陣的轉(zhuǎn)置與x相乘得到旋轉(zhuǎn)后的矩陣。
第二步降維:第一列代表著整個數(shù)據(jù)的主方向,因此我們可以用第一列的轉(zhuǎn)置與x相乘來將數(shù)據(jù)映射到一維。對于這個一維的數(shù)據(jù),在用第一列與之相乘,即可得到降維之后的結(jié)果。
?| 1 2 | xHat = zeros(size(x)); % You need to compute this xHat=(u(:,1:k))*(u(:,1:k)')*x; |
白化
白話的左右
本博客(http://www.cnblogs.com/cj695/)未標明轉(zhuǎn)載的內(nèi)容均為本站原創(chuàng),非商業(yè)用途轉(zhuǎn)載時請署名(77695)并注明來源(http://www.cnblogs.com/cj695/)。商業(yè)用途請聯(lián)系作者(77695)QQ:646710030。作者(77695)保留本博客所有內(nèi)容的一切權(quán)利。總結(jié)
以上是生活随笔為你收集整理的深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习入门教程UFLDL学习实验笔记一
- 下一篇: 自编码算法与稀疏性