Qual è la differenza tra lo sbiancamento ZCA e lo sbiancamento PCA?


60

Sono confuso circa lo sbiancamento ZCA e lo sbiancamento normale (che si ottiene dividendo i componenti principali per le radici quadrate degli autovalori PCA). Per quanto ne so,

xZCAwhite=UxPCAwhite,
dove sono autovettori PCA.U

Quali sono gli usi dello sbiancamento ZCA? Quali sono le differenze tra lo sbiancamento normale e lo sbiancamento ZCA?


2
Secondo "Neural Networks: Tricks of the Trade", PCA e ZCA differiscono solo per una rotazione.
Martin Thoma,

Risposte:


81

Consenti ai tuoi dati (centrati) di essere archiviati in una matrice con caratteristiche (variabili) in colonne e punti dati in righe. Lascia che la matrice di covarianza abbia autovettori in colonne di e autovalori sulla diagonale di , in modo che .n×dXdnC=XX/nEDC=EDE

Quindi quella che chiami trasformazione "normale" dello sbiancamento PCA è data da , vedi ad esempio la mia risposta in Come sbiancare i dati usando analisi del componente principale?WPCA=D1/2E

Tuttavia, questa trasformazione sbiancante non è unica. In effetti, i dati sbiancati rimarranno imbiancati dopo ogni rotazione, il che significa che qualsiasi con matrice ortogonale sarà anche una trasformazione imbiancante. In quello che viene chiamato sbiancamento ZCA, prendiamo (raggruppando insieme gli autovettori della matrice di covarianza) come questa matrice ortogonale, cioèW=RWPCARE

WZCA=ED1/2E=C1/2.

Una proprietà che definisce la trasformazione ZCA (a volte chiamata anche "trasformazione Mahalanobis") è che si traduce in dati sbiancati il ​​più vicino possibile ai dati originali (nel senso dei minimi quadrati). In altre parole, se vuoi minimizzare soggetto a sbiancamento di , allora dovresti prendere . Ecco un'illustrazione 2D:XXA2XAA=WZCA

Sbiancamento PCA e ZCA

La sottotrama sinistra mostra i dati e i suoi assi principali. Nota l'ombreggiatura scura nell'angolo in alto a destra della distribuzione: segna il suo orientamento. Le righe di sono mostrate nella seconda sottotrama: questi sono i vettori su cui vengono proiettati i dati. Dopo lo sbiancamento (sotto) la distribuzione appare rotonda, ma nota che sembra anche ruotata --- l'angolo scuro è ora sul lato est, non sul lato nord-est. Le righe di sono mostrate nella terza sottotrama (si noti che non sono ortogonali!). Dopo lo sbiancamento (sotto) la distribuzione si presenta rotonda ed è orientata allo stesso modo originale. Naturalmente, si può ottenere da PCA sbiancato dati ZCA sbiancato i dati ruotando con .WPCAWZCAE

Il termine "ZCA" sembra essere stato introdotto in Bell e Sejnowski 1996nel contesto dell'analisi indipendente dei componenti e sta per "analisi dei componenti in fase zero". Vedi lì per maggiori dettagli. Molto probabilmente, ti sei imbattuto in questo termine nel contesto dell'elaborazione delle immagini. Si scopre che quando applicati a un gruppo di immagini naturali (pixel come caratteristiche, ogni immagine come punto dati), gli assi principali sembrano componenti di Fourier di frequenze crescenti, vedere la prima colonna della loro Figura 1 di seguito. Quindi sono molto "globali". D'altra parte, le righe della trasformazione ZCA sembrano molto "locali", vedere la seconda colonna. Questo proprio perché ZCA cerca di trasformare i dati il ​​meno possibile, e quindi ogni riga dovrebbe essere più vicina a una delle funzioni di base originali (che sarebbero immagini con un solo pixel attivo). E questo è possibile raggiungere,

PCA e ZCA in Bell e Sejnowski 1996

Aggiornare

Altri esempi di filtri ZCA e di immagini trasformate con ZCA sono riportati in Krizhevsky, 2009, Imparare più livelli di funzionalità da immagini minuscole , vedere anche esempi nella risposta di @ bayerj (+1).

Penso che questi esempi diano un'idea di quando lo sbiancamento ZCA potrebbe essere preferibile a quello PCA. Vale a dire, le immagini imbiancate con ZCA assomigliano ancora alle immagini normali , mentre quelle imbiancate con PCA non assomigliano affatto alle immagini normali. Ciò è probabilmente importante per algoritmi come le reti neurali convoluzionali (come ad esempio utilizzate nel documento di Krizhevsky), che trattano insieme i pixel vicini e si affidano così tanto alle proprietà locali delle immagini naturali. Per la maggior parte degli altri algoritmi di apprendimento automatico dovrebbe essere assolutamente irrilevante se i dati sono sbiancati con PCA o ZCA.


Grazie! Ho una domanda: quindi significa che ZCA sostanzialmente cambia l'accesso, ma non cambia molto la posizione dei dati? (basato sulla tua area di ombreggiatura). Inoltre, ciò significa che ogni volta che facciamo lo sbiancamento, dovremmo fare lo sbiancamento ZCA? Come decideremmo di utilizzare lo sbiancamento PCAwhenening o ZCA?
RockTheStar,

4
(1) Non sono esattamente sicuro di cosa tu voglia dire, ma lo direi così: ZCA allunga il set di dati per renderlo sferico, ma cerca di non ruotarlo (mentre PCA lo ruota abbastanza). (2) In realtà penso che nella maggior parte dei casi non importa se usi lo sbiancamento PCA o ZCA. L'unica situazione che posso immaginare in cui ZCA potrebbe essere preferibile è la pre-elaborazione per reti neurali convoluzionali. Si prega di vedere un aggiornamento alla mia risposta.
ameba dice che ripristini Monica il

5
Il PCA è come fare una trasformata di Fourier, lo ZCA è come trasformare, moltiplicare e trasformare indietro, applicando un filtro lineare (fase zero). Quindi quello che vediamo è la risposta all'impulso del filtro su ciascun pixel. I "componenti" coinvolti nell'operazione sono gli stessi, le colonne di E, che sono i "componenti principali" ... Voglio dire, puoi anche chiamare le righe dei componenti W, ma penso che sia importante capire che il sono coinvolti gli stessi "componenti principali" e quando si applica lo ZCA si ritorna al dominio originale, mentre con il PCA è necessario "ricostruire" il segnale.
dividebyzero

1
@dividebyzero +1 al tuo ultimo commento, penso che questa sia una prospettiva preziosa. In ogni caso, spero che il significato della mia ultima figura (che è tratto dal documento collegato) sia chiaro ora.
ameba dice di reintegrare Monica l'

1
@learning Non vedi immagini sbiancate PCA su quella pagina! Mostrano "immagini ridotte in dimensione PCA", ovvero ricostruzioni tramite PCA, ma non le stesse proiezioni PCA.
ameba dice di reintegrare Monica il

23

Data una composizione Eigend di una matrice di covarianza dove è la matrice diagonale degli autovalori , lo sbiancamento ordinario ricorre alla trasformazione dei dati in uno spazio in cui la matrice di covarianza è diagonale: (con qualche abuso di notazione.) Ciò significa che possiamo diagonalizzare la covarianza trasformando i dati secondo

X¯X¯T=LDLT
D=diag(λ1,λ2,,λn)
D1L1X¯X¯TLTD1=D1L1LDLTLTD1=I
X~=D1L1X.

Questo è un normale sbiancamento con PCA. Ora, ZCA fa qualcosa di diverso: aggiunge un piccolo epsilon agli autovalori e trasforma i dati indietro. Ecco alcune immagini del set di dati CIFAR prima e dopo ZCA.

X~=L(D+ϵ)1L1X.

Prima di ZCA:

prima di ZCA

Dopo ZCA conϵ=0.0001

dopo ZCA 1e-4

Dopo ZCA conϵ=0.1

dopo ZCA con .1

Per i dati di visione, i dati ad alta frequenza risiedono in genere nello spazio attraversato dagli autovalori inferiori. Quindi ZCA è un modo per rafforzarli, portando a bordi più visibili ecc.


1
L'Empilon non dovrebbe essere aggiunto prima di prendere l'inverso? Penso che sia semplicemente aggiunto per stabilizzare l'inversione in caso di autovalori quasi zero. Quindi, in realtà, se ha senso aggiungerlo per lo sbiancamento ZCA, avrebbe senso aggiungerlo anche per lo sbiancamento PCA.
ameba dice che ripristini Monica il

Sì, prima dell'inverso, grazie. Dato che ciò avviene in genere con SVD nella pratica, non so se stabilizzare l'inversione sia assolutamente necessario.
Bayerj,

Ho aggiunto un'altra immagine per mostrare l'effetto.
Bayerj,

2
+1, ma ho un numero di ulteriori suggerimenti e domande. (1) Quello che intendevo con epsilon è che non è specifico per ZCA, ma può essere utilizzato anche per lo sbiancamento PCA. (2) Non sono sicuro di aver capito il tuo commento su SVD: SVD o no, è necessario invertire i valori singolari, quindi la necessità di epsilon. (3) La trasformazione sbiancante della PCA è , l'hai scritta al contrario, e questo rende errato il calcolo nella seconda formula ... (4) Belle figure, dove sono a partire dal? (5) Sai in quali situazioni lo sbiancamento ZCA sarebbe preferibile allo sbiancamento PCA e perché? D1/2L
ameba dice che ripristini Monica il

(1) concordato. Non ho intuizioni su cosa significhi, però. (2) La mia conoscenza della decomposizione è incompleta qui, ma ho ipotizzato che una matrice di inversione classica su una matrice di covarianza singolare fallirà, mentre SVD su una matrice di dati che dà origine a una covarianza singolare non lo farà. (3) Grazie, lo aggiusterò. (4) Dal mio codice :) (5) Ipotizzo che per molti algoritmi che forniscono rappresentazioni incomplete (ad esempio GainShape K-Means, Auto encoder, RICA) e / o faccia un lavoro simile come l'indipendenza algebrica PCA delle funzionalità fa male, ma Non ho una conoscenza approfondita di questo.
Bayerj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.