L'ICA richiede prima di eseguire PCA?


9

Ho esaminato un documento basato sull'applicazione dicendo che l'applicazione di PCA prima di applicare l'ICA (usando il pacchetto fastICA). La mia domanda è: ICA (fastICA) richiede che PCA sia eseguito per primo?

Questo documento lo ha menzionato

... si sostiene anche che la pre-applicazione della PCA migliora le prestazioni ICA (1) scartando piccoli autovalori finali prima dello sbiancamento e (2) riducendo la complessità computazionale minimizzando le dipendenze a coppie. PCA decorrelare i dati di input; le restanti dipendenze di ordine superiore sono separate da ICA.

Anche altri documenti stanno applicando PCA prima dell'ICA, ad esempio questo .

Ci sono altri pro e contro per eseguire PCA prima dell'ICA? Si prega di fornire la teoria con riferimenti.


Questo lavoro pubblicato rileva effetti negativi della riduzione dimensionale basata su PCA all'ICA.
bonobo,

Risposte:


9

L'approccio fastICA richiede una fase di pre-sbiancamento: i dati vengono prima trasformati utilizzando PCA, che porta a una matrice di covarianza diagonale, quindi ogni dimensione viene normalizzata in modo tale che la matrice di covarianza sia uguale alla matrice di identità (sbiancamento).

Ci sono infinite trasformazioni dei dati che portano alla matrice di covarianza di identità e se le tue fonti fossero gaussiane ti fermeresti lì (per le distribuzioni multivariate gaussiane, media e covarianza sono statistiche sufficienti), in presenza di fonti non gaussiane puoi minimizzare alcune misura della dipendenza dai dati sbiancati, quindi si cerca una rotazione dei dati sbiancati che massimizzi l'indipendenza. FastICA ottiene questo risultato utilizzando misure teoriche di informazione e uno schema di iterazione a virgola fissa.

Consiglierei il lavoro di Hyvärinen per comprendere meglio il problema:

  • A. Hyvärinen. Algoritmi a virgola fissa veloci e robusti per l'analisi indipendente dei componenti. Transazioni IEEE su reti neurali 10 (3): 626-634, 1999.
  • A. Hyvärinen, J. Karhunen, E. Oja, Analisi dei componenti indipendenti, Wiley & Sons. 2001

Si noti che fare PCA e ridurre le dimensioni non sono esattamente la stessa cosa: quando si hanno più osservazioni (per segnale) rispetto ai segnali, è possibile eseguire un PCA mantenendo il 100% della varianza spiegata, quindi continuare con lo sbiancamento e l'iterazione a virgola fissa per ottenere una stima dei componenti indipendenti. Il fatto che si debba eseguire la riduzione dimensionale o meno dipende fortemente dal contesto e si basa sulle ipotesi di modellazione e sulla distribuzione dei dati.


2
Questa è una buona risposta, ma per quanto ne so il tuo ultimo punto può essere reso molto più forte: è quasi sempre una buona idea usare il passo PCA per ridurre la dimensionalità (oltre a sbiancare i dati). In effetti, se la dimensionalità è troppo elevata, l'ICA può facilmente sovralimentare e produrre componenti privi di significato. La pre-elaborazione con PCA risolve spesso questo problema (come indicato nella citazione nel PO).
ameba,

4

L'applicazione della PCA ai tuoi dati ha l'unico effetto di ruotare gli assi delle coordinate originali. È una trasformazione lineare, esattamente come per esempio la trasformata di Fourier. Pertanto, in quanto tale, non può davvero fare nulla per i tuoi dati.

Tuttavia, i dati rappresentati nel nuovo spazio PCA hanno alcune proprietà interessanti. Dopo la rotazione delle coordinate con PCA, è possibile scartare alcune dimensioni in base a criteri stabiliti come la percentuale di varianza totale spiegata dai nuovi assi. A seconda del segnale, è possibile ottenere una notevole riduzione dimensionale con questo metodo e ciò aumenterebbe sicuramente le prestazioni del seguente ICA. Fare un ICA senza scartare nessuno dei componenti PCA non avrà alcun impatto sul risultato del seguente ICA.

Inoltre, è possibile sbiancare facilmente i dati nello spazio PCA grazie all'ortogonalità degli assi delle coordinate. Lo sbiancamento ha l'effetto di equalizzare le varianze in tutte le dimensioni. Direi che ciò è necessario affinché un'ICA funzioni correttamente. Altrimenti solo pochi componenti PCA con scostamenti maggiori potrebbero dominare i risultati ICA.

Non vedo davvero alcun inconveniente per la preelaborazione basata su PCA prima di un ICA.

Giancarlo cita già il miglior riferimento per l'ICA ...


Tutta la tua risposta si basa sul presupposto che l'applicazione del PCA sta semplicemente ruotando l'asse delle coordinate, ma in effetti "applicando il PCA" le persone di solito significano riduzione della dimensionalità (cioè mantenere solo un sottoinsieme di PC e far cadere il resto).
ameba,

PCA ti aiuta a scoprire quali dimensioni scartare, se lo desideri. Non vedo come questo perfeziona la mia risposta.
Bonobo,

Nel frattempo questo lavoro è stato pubblicato, affermano di mostrare gli effetti negativi della riduzione dimensionale basata su PCA sulla qualità dell'ICA successivo.
bonobo,

Grazie per il link Ho letto l'abstract e ad essere sincero sono scettico. Ma non sono un esperto di ICA e probabilmente non studierò questo documento in dettaglio.
amoeba,

2

La derivazione dell'algoritmo fastICA richiede solo lo sbiancamento per un singolo passaggio. Innanzitutto, scegli la direzione del passaggio (come una discesa con gradiente) e questo non richiede dati sbiancati. Quindi, dobbiamo scegliere la dimensione del gradino, che dipende dall'inverso dell'Assia. Se i dati vengono imbiancati, questa tela di iuta è diagonale e invertibile.

Quindi è richiesto? Se hai appena fissato la dimensione del passo su una costante (quindi non è necessario lo sbiancamento) avresti una discesa gradiente standard. La discesa gradiente con un passo fisso di piccole dimensioni converge in genere, ma probabilmente molto più lentamente del metodo originale. D'altra parte, se si dispone di una matrice di dati di grandi dimensioni, lo sbiancamento potrebbe essere piuttosto costoso. Potresti stare meglio anche con la convergenza più lenta che ottieni senza lo sbiancamento.

Sono stato sorpreso di non vederne menzione in nessuna letteratura. Un articolo discute il problema: nuovi algoritmi Fast-ICA per la separazione della fonte cieca senza pre-sbiancamento di Jimin Ye e Ting Huang.

Suggeriscono un'opzione un po 'più economica di sbiancamento. Vorrei che includessero l'ovvio confronto tra il semplice utilizzo dell'ICA senza lo sbiancamento come base, ma non lo fecero. Come ulteriore punto di dati ho provato a correre FastICA senza sbiancamento per problemi di giocattoli e ha funzionato bene.

Aggiornamento: un altro bel riferimento per lo sbiancamento è qui: solida analisi indipendente dei componenti, Zaroso e Comon . Forniscono algoritmi che non richiedono lo sbiancamento.

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.