Como seleciono o número de componentes para análise de componentes independentes?

11

Na ausência de boas suposições a priori sobre o número de componentes a serem solicitados na Análise de Componentes Independentes, estou procurando automatizar um processo de seleção. Eu acho que um critério razoável pode ser o número que minimiza a evidência global de correlação entre os componentes computados. Aqui está o pseudocódigo dessa abordagem:

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

Eu acho que isso deve penalizar automaticamente candidatos maiores que o número "verdadeiro" de componentes, porque as ICAs resultantes desses candidatos devem ser forçadas a distribuir informações de componentes verdadeiros únicos entre vários componentes estimados, aumentando a evidência média de correlação entre pares de componentes.

Isso faz sentido? Em caso afirmativo, existe uma maneira mais rápida de atingir uma métrica agregada de relação entre os componentes estimados do que a abordagem de probabilidade média de log sugerida acima (que pode ser bastante lenta computacionalmente)? Se essa abordagem não fizer sentido, como seria um bom procedimento alternativo?

Mike Lawrence
fonte

Respostas:

6

A abordagem Variational Ensemble Learning da ACI pode fazer essa "detecção automática de relevância". Desativa automaticamente os componentes que não são necessários para melhorar o limite da Evidência Bayesiana.

Dê uma olhada na tese de James Miskin disponível aqui , que apresenta a técnica.

Isso é implementado com muita elegância em Java por John Winn (outro PhD que implementa o Bayesian Ensemble Learning por meio de uma mensagem que passa no algoritmo).

Para aprender a técnica, decidi implementar o algoritmo de Winn em c ++, que pode ser obtido aqui (desenvolvimento ativo).

Tom
fonte
2

Como Tom diz, a Determinação Automática de Relevância é uma boa abordagem para selecionar um pequeno subconjunto de componentes em um modelo probabilístico.

Outra abordagem para a ICA é usar um processo de buffet indiano antes - Knowles e Ghahramani fazem isso em "Análise infinita de fatores esparsos e análise infinita de componentes independentes".

user1149913
fonte