L'ICA doit-il d'abord exécuter PCA?

9

J'ai passé en revue un article basé sur l'application disant que l'application de l'APC avant d'appliquer l'ICA (en utilisant le package fastICA). Ma question est la suivante: ICA (fastICA) nécessite-t-il que PCA soit exécuté en premier?

Ce document mentionne que

... il est également soutenu que la pré-application de l'ACP améliore les performances de l'ICA en (1) supprimant les petites valeurs propres de fin avant le blanchiment et (2) réduisant la complexité de calcul en minimisant les dépendances par paire. PCA décorrèle les données d'entrée; les autres dépendances d'ordre supérieur sont séparées par ICA.

D'autres articles appliquent l'APC avant l'ICA, par exemple celui-ci .

Y a-t-il d'autres avantages et inconvénients à exécuter PCA avant ICA? Veuillez fournir la théorie avec des références.

Samo Jerom
la source
Ce travail publié trouve des effets néfastes de la réduction dimensionnelle basée sur PCA à ICA.
bonobo

Réponses:

9

L'approche fastICA nécessite une étape de pré-blanchiment: les données sont d'abord transformées en utilisant l'ACP, ce qui conduit à une matrice de covariance diagonale, puis chaque dimension est normalisée de telle sorte que la matrice de covariance est égale à la matrice d'identité (blanchiment).

Il y a des transformations infinies des données qui entraînent une matrice de covariance d'identité, et si vos sources étaient gaussiennes, vous vous arrêteriez là (pour les distributions multivariées gaussiennes, la moyenne et la covariance sont des statistiques suffisantes), en présence de sources non gaussiennes, vous pouvez minimiser certaines mesure de la dépendance à l'égard des données blanchies, vous recherchez donc une rotation des données blanchies qui maximise l'indépendance. FastICA y parvient en utilisant des mesures théoriques de l'information et un schéma d'itération à virgule fixe.

Je recommanderais le travail de Hyvärinen pour mieux comprendre le problème:

  • A. Hyvärinen. Algorithmes à virgule fixe rapides et robustes pour une analyse indépendante des composants. Transactions IEEE sur les réseaux de neurones 10 (3): 626-634, 1999.
  • A. Hyvärinen, J. Karhunen, E. Oja, Independent Component Analysis, Wiley & Sons. 2001

Veuillez noter que faire une PCA et faire une réduction de dimension ne sont pas exactement la même chose: lorsque vous avez plus d'observations (par signal) que de signaux, vous pouvez effectuer une PCA en conservant 100% de la variance expliquée, puis continuer avec le blanchiment et l'itération à point fixe pour obtenir une estimation des composantes indépendantes. Que vous deviez ou non effectuer une réduction de dimension dépend fortement du contexte et est basé sur vos hypothèses de modélisation et la distribution des données.

Giancarlo
la source
2
C'est une bonne réponse, mais pour autant que je sache, votre dernier point peut être beaucoup plus fort: c'est presque toujours une bonne idée d'utiliser l'étape PCA pour réduire la dimensionnalité (en plus de blanchir les données). En fait, si la dimensionnalité est trop élevée, l'ICA peut facilement s'adapter et produire des composants dénués de sens. Le prétraitement avec PCA résout souvent ce problème (comme indiqué dans le devis du PO).
amoeba
4

L'application de PCA à vos données a pour seul effet de faire pivoter les axes de coordonnées d'origine. Il s'agit d'une transformation linéaire, exactement comme par exemple la transformée de Fourier. Par conséquent, en tant que tel, il ne peut vraiment rien faire pour vos données.

Cependant, les données représentées dans le nouvel espace PCA ont des propriétés intéressantes. Après la rotation des coordonnées avec PCA, vous pouvez supprimer certaines dimensions en fonction de critères établis tels que le pourcentage de la variance totale expliquée par les nouveaux axes. En fonction de votre signal, vous pouvez obtenir une réduction dimensionnelle considérable par cette méthode et cela augmenterait certainement les performances de l'ICA suivant. Faire un ICA sans jeter aucun des composants PCA n'aura aucun impact sur le résultat de l'ICA suivant.

De plus, on peut également facilement blanchir les données dans l'espace PCA en raison de l'orthogonalité des axes de coordonnées. Le blanchiment a pour effet d'égaliser les variances dans toutes les dimensions. Je dirais que cela est nécessaire pour qu'un ICA fonctionne correctement. Sinon, seuls quelques composants de l'ACP présentant les écarts les plus importants domineraient les résultats de l'ICA.

Je ne vois pas vraiment d'inconvénients pour le prétraitement basé sur PCA avant un ICA.

Giancarlo cite déjà la meilleure référence pour l'ICA ...

bonobo
la source
Toute votre réponse est basée sur la prémisse que l'application de l'ACP fait simplement tourner l'axe des coordonnées, mais en fait, en «appliquant l'APC», les gens signifient généralement une réduction de la dimensionnalité (c'est-à-dire en ne conservant qu'un sous-ensemble de PC et en supprimant le reste).
amibe
PCA vous aide à déterminer les dimensions à éliminer, si vous le souhaitez. Je ne vois pas comment cela affine ma réponse.
bonobo
Pendant ce temps, ces travaux ont été publiés, ils prétendent montrer les effets néfastes de la réduction dimensionnelle basée sur le PCA sur la qualité des ICA ultérieurs.
bonobo
Merci pour le lien. J'ai lu le résumé et pour être honnête, je suis sceptique. Mais je ne suis pas un expert de l'ICA et je ne vais probablement pas étudier ce document en détail.
amoeba
2

La dérivation de l'algorithme fastICA ne nécessite un blanchiment que pour une seule étape. Tout d'abord, vous choisissez la direction de l'étape (comme une descente de gradient) et cela ne nécessite pas de données blanchies. Ensuite, nous devons choisir la taille du pas, qui dépend de l'inverse de la Hesse. Si les données sont blanchies, cette toile de jute est diagonale et inversible.

Est-ce donc nécessaire? Si vous venez de fixer la taille du pas à une constante (donc ne nécessitant pas de blanchiment), vous auriez une descente de gradient standard. La descente en pente avec un petit pas fixe convergera généralement, mais peut-être beaucoup plus lentement que la méthode d'origine. D'un autre côté, si vous avez une grande matrice de données, le blanchiment pourrait être assez coûteux. Vous pourriez être mieux même avec la convergence plus lente que vous obtenez sans blanchir.

J'ai été surpris de ne pas en parler dans aucune littérature. Un article discute du problème: Nouveaux algorithmes Fast-ICA pour la séparation aveugle des sources sans pré-blanchiment par Jimin Ye et Ting Huang.

Ils suggèrent une option un peu moins chère au blanchiment. Je souhaite qu'ils aient inclus la comparaison évidente de simplement exécuter ICA sans blanchir comme référence, mais ils ne l'ont pas fait. Comme autre point de données, j'ai essayé de courir fastICA sans blanchir les problèmes de jouets et cela a bien fonctionné.

Mise à jour: une autre belle référence concernant le blanchiment est ici: analyse de composants indépendants robuste, Zaroso et Comon . Ils fournissent des algorithmes qui ne nécessitent pas de blanchiment.

Greg Ver Steeg
la source