9
7

I saw it referenced recently, and the explanations I'm finding online are unclear. Is it as simple as applying ICA to the original feature set, and using the ICA set instead? If so, how is that compatible with its use in This Paper about deep learning (the Coates one from this question?

asked Mar 01 '11 at 10:16

Jacob%20Jensen's gravatar image

Jacob Jensen
1914315663

edited Mar 01 '11 at 10:17


4 Answers:
10

Whitening your data in this context essentially means rotating into space of principal components, diving each dimension by square root of variance in that direction, and rotating back to pixel space.

Assume you have an NxD data array X that holds your patches. Here is how they were whitened in Coates et al paper (MATLAB):

C= cov(X);
M= mean(X);
[V,D]= eig(C);
P = V * diag(sqrt(1./(diag(D) + 0.1))) * V';
W = bsxfun(@minus, X, M) * P;

The full code can be downloaded here: https://sites.google.com/site/kmeanslearning/home or directly from Adam's page http://www.stanford.edu/~acoates/

Alex Krizhevsky (from Toronto) also uses this procedure in his "Master's Thesis" http://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf and gives a little more details and some motivation. (see Chapter 1.3 and Appendix A)

Qualitatively, this "erases" the boring stuff in your image (by subtracting the usual mean, and getting rid of the correlations in pixels that are there in almost every image), and leaves behind the "interesting" parts. I realize that's super vague but that's the intuition.

answered Mar 02 '11 at 21:03

karpathy's gravatar image

karpathy
266479

edited Mar 02 '11 at 21:48

1

The Accord.NET Framework (http://accord-net.origo.ethz.ch/) also implements ICA and support the Whitening Transform. Its source code is publicly available at http://code.google.com/p/accord/

(Mar 17 '11 at 14:29) César Souza

scikits-learn has whitening as well in its PCA module.

(Mar 18 '11 at 06:06) Justin Bayer

Just a quick note about the whitening PCA implementation of scikit-learn: it's actually a truncating PCA and the output of the transform method stays in the truncated eigenspace instead of 'rotating' back the data into the input space. I put rotating in quotes because of the truncation.

(Mar 20 '11 at 20:03) ogrisel

Why the +0.1 in the second in P = ...? I'm guessing numerical stability?

(Apr 30 '13 at 04:16) Marius van Zyl

Whitening is usually done before ICA, as a preprocessing step so I'm not sure about using ICA to whiten data...

Whitening a matrix x means that its components are uncorrelated and their variances equal unity. In other words, the covariance matrix of x equals the identity matrix.

One method for whitening is to use the eigen-value decomposition (EVD) of the covariance matrix.

I found this explanation (and the equations) useful: http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb/node26.html

answered Mar 01 '11 at 10:44

Ciar%C3%A1n's gravatar image

Ciarán
2313912

Whitening also entails that the mean is zero. Wikipedia has a brief but rather concise explanation (http://en.wikipedia.org/wiki/White_noise#Whitening_a_random_vector)

(Mar 02 '11 at 04:03) Oscar Täckström

Try checking Andrew Ng's lecture on ICA, he goes over whitening quite well.

In the set of notes regarding factor analysis it is pretty well explained, as soon as I get to my computer I'll post the link.

answered Mar 01 '11 at 20:06

Leon%20Palafox's gravatar image

Leon Palafox ♦
40857194128

can you provide a link?

(Mar 02 '11 at 11:34) Travis Wolfe

Hey there,

Sorry, but was a bit bussy.

http://www.stanford.edu/class/cs229/materials.html

This is the class sylabus and notes wp, check lecture notes 9, 10 and 11 and all about PCA and withening is pretty well explained.

(Mar 02 '11 at 22:29) Leon Palafox ♦

Whitening is the same as PCA and scaling to get a set of orthonormal features. If your data is Gaussian, PCA=ICA and thus whitening is ICA. Otherwise, it is like a cheap attempt at ICA, and PCA /= ICA

answered Mar 02 '11 at 16:36

probreasoning's gravatar image

probreasoning
1366715

edited Mar 02 '11 at 21:08

Your answer
toggle preview

powered by OSQA

User submitted content is under Creative Commons: Attribution - Share Alike; Other things copyright (C) 2010, MetaOptimize LLC.