Kernel PCA and De-Noising in Feature Spaces

Kernel PCA as a nonlinear feature extractor has proven powerful as a preprocessing step for classification algorithms. But it can also be considered as a natural generalization of linear principal component analysis. This gives rise to the question how to use nonlinear features for data compression, reconstruction, and de-noising, applications common in linear PCA. This is a nontrivial task, as the results provided by kernel PCA live in some high dimensional feature space and need not have pre-images in input space. This work presents ideas for finding approximate pre-images, focusing on Gaussian kernels, and shows experimental results using these pre-images in data reconstruction and de-noising on toy examples as well as on real world data. 1 peA and Feature Spaces Principal Component Analysis (PC A) (e.g. ) is an orthogonal basis transformation. The new basis is found by diagonalizing the centered covariance matrix of a data set {Xk E RNlk = 1, ... ,f}, defined by C = ((Xi (Xk))(Xi (Xk))T). The coordinates in the Eigenvector basis are called principal components. The size of an Eigenvalue >. corresponding to an Eigenvector v of C equals the amount of variance in the direction of v. Furthermore, the directions of the first n Eigenvectors corresponding to the biggest n Eigenvalues cover as much variance as possible by n orthogonal directions. In many applications they contain the most interesting information: for instance, in data compression, where we project onto the directions with biggest variance to retain as much information as possible, or in de-noising, where we deliberately drop directions with small variance. Clearly, one cannot assert that linear PCA will always detect all structure in a given data set. By the use of suitable nonlinear features, one can extract more information. Kernel PCA is very well suited to extract interesting nonlinear structures in the data . The purpose of this work is therefore (i) to consider nonlinear de-noising based on Kernel PCA and (ii) to clarify the connection between feature space expansions and meaningful patterns in input space. Kernel PCA first maps the data into some feature space F via a (usually nonlinear) function <II and then performs linear PCA on the mapped data. As the feature space F might be very high dimensional (e.g. when mapping into the space of all possible d-th order monomials of input space), kernel PCA employs Mercer kernels instead of carrying Kernel peA and De-Noising in Feature Spaces 537 out the mapping <I> explicitly. A Mercer kernel is a function k(x, y) which for all data sets {Xi} gives rise to a positive matrix Kij = k(Xi' Xj) . One can show that using k instead of a dot product in input space corresponds to mapping the data with some <I> to a feature space F , i.e. k(x,y) = (<I>(x) . <I>(y)). Kernels that have proven useful include Gaussian kernels k(x, y) = exp( -llx Yll2 Ie) and polynomial kernels k(x, y) = (x·y)d. Clearly, all algorithms that can be formulated in terms of dot products, e.g. Support Vector Machines , can be carried out in some feature space F without mapping the data explicitly. All these algorithms construct their solutions as expansions in the potentially infinite-dimensional feature space. The paper is organized as follows: in the next section, we briefly describe the kernel PCA algorithm. In section 3, we present an algorithm for finding approximate pre-images of expansions in feature space. Experimental results on toy and real world data are given in section 4, followed by a discussion of our findings (section 5). 2 Kernel peA and Reconstruction To perform PCA in feature space, we need to find Eigenvalues A > 0 and Eigenvectors V E F\{O} satisfying AV = GV with G = (<I>(Xk)<I>(Xk)T).1 Substituting G into the Eigenvector equation, we note that all solutions V must lie in the span of <I>-images of the training data. This implies that we can consider the equivalent system A( <I>(Xk) . V) = (<I>(Xk) . GV) for all k = 1, ... ,f (1) and that there exist coefficients Q1 , ... ,Ql such that l V = L i=l Qi<l>(Xi) (2) Substituting C and (2) into (1), and defining an f x f matrix K by Kij := (<I>(Xi)· <I>(Xj)) = k( Xi, X j), we arrive at a problem which is cast in terms of dot products: solve