Panos Markopoulos Home News Research Group Publications Teaching Professional Service Software

Software

MATLAB SOFTWARE FOR L1-PCA

[New] Download from MathWorks® our L1-PCA Toolbox
Brief introduction to L1-PCA

Problem Definition

Consider data matrix $\mathbf X =[\mathbf x_{1}, \ldots, \mathbf x_{N}] \in \mathbb R^{D \times N}$ (i.e., N D-dimensional points) and some K $\leq$ D. Standard (or L2-norm) Principal-Component Analysis (PCA) is defined as:

\text{PCA}:~~~~~~\underset{\mathbf{Q} \in \mathbb R^{D \times K}; ~\mathbf Q^T \mathbf Q = \mathbf I_{K}}{\text{maximize}} ~ \| \mathbf Q^\top \mathbf X\|_F

and is solved through Singular-Value Decomposition (SVD) of $\mathbf X$. L1-norm Principal-Component Analysis (L1-PCA) is defined as:

\text{L1-PCA}:~~~~\underset{\mathbf{Q} \in \mathbb R^{D \times K}; ~\mathbf Q^T \mathbf Q = \mathbf I_{K}}{\text{maximize}} ~ \| \mathbf Q^\top \mathbf X\|_1.

L1-PCA has demonstrated in several applications: (a) very similar performance to standard PCA when applied on outlier-free data and (b) significant resistance to outliers when the data are corrupted.


Performance Example
L1-PCA vs PCA
PCA (by SVD) and L1-PCA of nominal data.
L1-PCA vs PCA
PCA (by SVD) and L1-PCA of outlier-corrupted data.

The following Matlab scripts implement algorithms that solve L1-PCA exactly, or approximately.

MATLAB SOFTWARE FOR L1-TUCKER2 (3-WAY TENSORS)

The following Matlab script solves rank-1 L1-TUCKER2 exactly.