Come posso selezionare il numero di componenti per l'analisi dei componenti indipendenti?


11

In assenza di buone ipotesi a priori sul numero di componenti da richiedere in Independent Components Analysis, sto cercando di automatizzare un processo di selezione. Penso che un criterio ragionevole potrebbe essere il numero che minimizza l'evidenza globale per la correlazione tra i componenti calcolati. Ecco lo pseudocodice di questo approccio:

for each candidate number of components, n:
    run ICA specifying n as requested number of components
    for each pair (c1,c2) of resulting components:
        compute a model, m1: lm(c1 ~ 1)
        compute a model, m2: lm(c1 ~ c2)
        compute log likelihood ratio ( AIC(m2)-AIC(m1) ) representing the relative likelihood of a correlation between c1 & c2
    compute mean log likelihood ratio across pairs
Choose the final number of components as that which minimizes the mean log likelihood of component relatedness

Immagino che ciò dovrebbe penalizzare automaticamente i candidati più grandi del numero "vero" di componenti perché gli ICA risultanti da tali candidati dovrebbero essere costretti a distribuire informazioni da singoli componenti veri su più componenti stimati, aumentando l'evidenza media di correlazione tra coppie di componenti.

ha senso? In tal caso, esiste un modo più rapido per ottenere una metrica aggregata di correlazione tra i componenti stimati rispetto all'approccio di probabilità logaritmica suggerito sopra (che può essere piuttosto lento dal punto di vista computazionale)? Se questo approccio non ha senso, come potrebbe essere una buona procedura alternativa?

Risposte:


6

L'approccio di Variational Ensemble Learning all'ICA può eseguire questo "rilevamento automatico della pertinenza". Disattiva automaticamente i componenti che non sono necessari per migliorare il limite dell'Evidenza Bayesiana.

Dai un'occhiata alla tesi di James Miskin disponibile qui , che introduce la tecnica.

Questo è implementato in modo molto idoneo in Java da John Winn (un altro dottorato di ricerca che implementa il Bayesian Ensemble Learning tramite un messaggio che passa algoritmo).

Per apprendere la tecnica, ho deciso di implementare l'algoritmo di Winn in c ++ che può essere ottenuto da qui (sviluppo attivo).


2

Come dice Tom, la determinazione automatica della pertinenza è un buon approccio per selezionare un piccolo sottoinsieme di componenti in un modello probabilistico.

Un altro approccio per ICA è quello di utilizzare un processo a buffet indiano precedente: Knowles e Ghahramani lo fanno in "Analisi dei fattori sparsi infiniti e Analisi dei componenti indipendenti infiniti".

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.