¿Cómo selecciono el número de componentes para el análisis de componentes independientes?

11

En ausencia de buenas suposiciones a priori sobre el número de componentes a solicitar en el Análisis de Componentes Independientes, estoy buscando automatizar un proceso de selección. Creo que un criterio razonable podría ser el número que minimiza la evidencia global de correlación entre los componentes calculados. Aquí hay un seudocódigo de este enfoque:

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

Supongo que esto debería penalizar automáticamente a los candidatos mayores que el número "verdadero" de componentes porque los ICA resultantes de dichos candidatos deberían verse obligados a distribuir información de componentes verdaderos únicos a través de múltiples componentes estimados, aumentando la evidencia promedio de correlación entre pares de componentes.

¿Esto tiene sentido? Si es así, ¿hay una forma más rápida de lograr una métrica agregada de relación entre los componentes estimados que el enfoque de probabilidad de registro promedio sugerido anteriormente (que puede ser bastante lento computacionalmente)? Si este enfoque no tiene sentido, ¿cómo podría ser un buen procedimiento alternativo?

Mike Lawrence
fuente

Respuestas:

6

El enfoque de Aprendizaje de Conjunto Variacional para ICA puede hacer esta "detección automática de relevancia". Apaga automáticamente los componentes que no son necesarios para mejorar el límite de la evidencia bayesiana.

Eche un vistazo a la tesis de James Miskin disponible aquí , que presenta la técnica.

John Winn lo implementa muy bien en Java (otro doctorado que implementa Bayesian Ensemble Learning a través de un algoritmo de paso de mensajes).

Para aprender la técnica, decidí implementar el algoritmo de Winn en c ++ que se puede obtener desde aquí (desarrollo activo).

Tom
fuente
2

Como dice Tom, la determinación automática de relevancia es un buen enfoque para seleccionar un pequeño subconjunto de componentes en un modelo probabilístico.

Otro enfoque para ICA es utilizar un proceso de buffet indio antes: Knowles y Ghahramani lo hacen en "Análisis de factor disperso infinito y Análisis de componentes independientes infinitos".

usuario1149913
fuente