Je suis confus quant au blanchiment ZCA et au blanchiment normal (obtenu en divisant les composants principaux par les racines carrées des valeurs propres de la PCA). Pour autant que je sache,
où sont les vecteurs propres de la PCA.
Quelles sont les utilisations de ZCA whitening? Quelles sont les différences entre le blanchiment normal et le blanchiment ZCA?
pca
dimensionality-reduction
image-processing
RockTheStar
la source
la source
Réponses:
Laissez vos données (centrées) stockées dans une matrice avec caractéristiques (variables) dans des colonnes et points de données dans des lignes. Que la matrice de covariance ait des vecteurs propres dans les colonnes de et des valeurs propres sur la diagonale de , de sorte que .X d n C = X ⊤ X / n E D C = E D E ⊤n×d X d n C=X⊤X/n E D C=EDE⊤
Ensuite, ce que vous appelez la transformation de blanchiment PCA "normale" est donné par , voir par exemple ma réponse dans Comment blanchir les données à l'aide analyse des composants principaux?WPCA=D−1/2E⊤
Cependant, cette transformation de blanchiment n’est pas unique. En effet, les données blanchies resteront blanchies après toute rotation, ce qui signifie que tout avec matrice orthogonale sera également une transformation blanchissante. Dans ce qu'on appelle le blanchiment ZCA, nous prenons (vecteurs propres empilés de la matrice de covariance) comme cette matrice orthogonale, c'est-à-dire R E W Z C A = E D - 1 / deux E ⊤ = C - 1 / deux .W=RWPCA R E
Une propriété déterminante de la transformation ZCA ( parfois aussi appelée "transformation de Mahalanobis") est qu'elle aboutit à des données blanchies aussi proches que possible des données d'origine (au sens des moindres carrés). En d'autres termes, si vous voulez minimiser sous réserve que soit blanchi, vous devez alors prendre . Voici une illustration en 2D:∥X−XA⊤∥2 XA⊤ A=WZCA
La sous-parcelle de gauche montre les données et leurs principaux axes. Notez la couleur sombre dans le coin supérieur droit de la distribution: elle marque son orientation. Les rangées de apparaissent sur la deuxième sous-parcelle: ce sont les vecteurs sur lesquels les données sont projetées. Après avoir blanchi (ci-dessous), la distribution semble ronde, mais vous remarquerez qu’elle semble également pivotée: le coin sombre se trouve maintenant du côté est, pas du côté nord-est. Les rangées de apparaissent sur la troisième sous-parcelle (notez qu'elles ne sont pas orthogonales!). Après blanchiment (ci-dessous), la répartition est tournée et orientée de la même manière qu’à l’origine. Bien sûr, on peut obtenir de PCA blanchies données ZCA blanchies données en tournant avec .WPCA WZCA E
Le terme "ZCA" semble avoir été introduit dans Bell et Sejnowski 1996dans le contexte de l'analyse par composante indépendante, et signifie «analyse en phase zéro». Voir là pour plus de détails. Très probablement, vous avez rencontré ce terme dans le contexte du traitement d'image. Il s'avère que, lorsqu'ils sont appliqués à un ensemble d'images naturelles (pixels en tant qu'entités, chaque image en tant que point de données), les axes principaux ressemblent à des composantes de Fourier de fréquences croissantes (voir la première colonne de leur Figure 1 ci-dessous). Donc, ils sont très "globaux". En revanche, les lignes de la transformation ZCA ont un aspect très "local", voir la deuxième colonne. C’est précisément parce que ZCA essaie de transformer le moins possible les données. Chaque rangée devrait donc être proche de l’une des fonctions de base originales (qui seraient des images avec un seul pixel actif). Et cela est possible à réaliser,
Mise à jour
D'autres exemples de filtres ZCA et d'images transformées avec ZCA sont donnés dans Krizhevsky, 2009, Apprendre plusieurs couches de fonctions à partir d'images minuscules . Voir également des exemples dans la réponse de @ bayerj (+1).
Je pense que ces exemples donnent une idée du moment où le blanchiment ZCA pourrait être préférable à celui de la PCA. À savoir, les images blanchies en ZCA ressemblent encore aux images normales , alors que celles blanchies en PCA ne ressemblent en rien à des images normales. Cela est probablement important pour des algorithmes tels que les réseaux de neurones convolutifs (tels que ceux utilisés dans l'article de Krizhevsky), qui traitent les pixels voisins ensemble et reposent donc grandement sur les propriétés locales des images naturelles. Pour la plupart des autres algorithmes d'apprentissage automatique, le fait que les données soient blanchies avec PCA ou ZCA ne doit absolument pas être pertinent .
la source
Étant donné la composition eigend d'une matrice de covariance, où est la matrice diagonale de Eigenvalues , le blanchiment ordinaire a pour objectif de transformer les données en un espace où la matrice de covariance est diagonale: (avec quelques abus de notation.) Cela signifie que nous pouvons diagonaliser la covariance en transformant les données selon
Ceci est un blanchiment ordinaire avec PCA. Maintenant, ZCA fait quelque chose de différent - il ajoute un petit epsilon aux valeurs propres et transforme les données. Voici quelques images du jeu de données ICRA avant et après ZCA.
Avant la ZCA:
Après ZCA avecϵ=0.0001
Après ZCA avecϵ=0.1
Pour les données visuelles, les données à haute fréquence se trouveront généralement dans l’espace couvert par les valeurs propres inférieures. Par conséquent, ZCA est un moyen de les renforcer, ce qui conduit à des bords plus visibles, etc.
la source