Quels sont les avantages de la PCA du noyau par rapport à la PCA standard?


18

Je veux implémenter un algorithme dans un document qui utilise le noyau SVD pour décomposer une matrice de données. J'ai donc lu des documents sur les méthodes du noyau et le PCA du noyau, etc.

  1. Pourquoi les méthodes du noyau? Ou, quels sont les avantages des méthodes du noyau? Quel est le but intuitif?

    Est-ce en supposant qu'un espace dimensionnel beaucoup plus élevé est plus réaliste dans les problèmes du monde réel et capable de révéler les relations non linéaires dans les données, par rapport aux méthodes non-noyau? Selon les matériaux, les méthodes du noyau projettent les données sur un espace d'entités de grande dimension, mais elles n'ont pas besoin de calculer explicitement le nouvel espace d'entités. Au lieu de cela, il suffit de calculer uniquement les produits internes entre les images de toutes les paires de points de données dans l'espace des fonctionnalités. Alors pourquoi projeter sur un espace de dimension supérieure?

  2. Au contraire, SVD réduit l'espace des fonctionnalités. Pourquoi le font-ils dans des directions différentes? Les méthodes du noyau recherchent une dimension supérieure, tandis que SVD recherche une dimension inférieure. Pour moi, cela semble bizarre de les combiner. Selon l'article que je lis ( Symeonidis et al. 2010 ), l'introduction de Kernel SVD au lieu de SVD peut résoudre le problème de rareté des données, améliorant les résultats.

entrez la description de l'image ici

D'après la comparaison de la figure, nous pouvons voir que KPCA obtient un vecteur propre avec une variance (valeur propre) plus élevée que PCA, je suppose? Parce que pour la plus grande différence des projections des points sur le vecteur propre (nouvelles coordonnées), KPCA est un cercle et PCA est une ligne droite, donc KPCA obtient une variance plus élevée que PCA. Cela signifie-t-il que KPCA obtient des composants principaux plus élevés que PCA?


3
Plus un commentaire qu'une réponse: KPCA est très similaire au clustering spectral - dans certains paramètres, il est même le même. (voir par exemple cirano.qc.ca/pdf/publication/2003s-19.pdf ).

Désolé pour la réponse tardive. Oui, votre réponse est très éclairante.
Tyler 傲 来 国 主

Réponses:


24

PCA (en tant que technique de réduction de dimensionnalité) tente de trouver un sous-espace linéaire de faible dimension dans lequel les données sont confinées. Mais il se pourrait que les données soient confinées dans un sous-espace non linéaire de faible dimension . Que se passera-t-il alors?

Jetez un coup d'œil à cette figure, extraite du manuel Bishop's "Pattern Recognition and Machine Learning" (Figure 12.16):

noyau PCA du livre de Bishop's ML

Les points de données ici (à gauche) sont situés principalement le long d'une courbe en 2D. L'ACP ne peut pas réduire la dimensionnalité de deux à un, car les points ne sont pas situés le long d'une ligne droite. Mais encore, les données sont "évidemment" situées autour d'une courbe non linéaire unidimensionnelle. Donc, même si PCA échoue, il doit y avoir un autre moyen! Et en effet, le noyau PCA peut trouver cette variété non linéaire et découvrir que les données sont en fait presque unidimensionnelles.

Il le fait en mappant les données dans un espace de dimension supérieure. Cela peut en effet ressembler à une contradiction (votre question n ° 2), mais ce n'est pas le cas. Les données sont cartographiées dans un espace de dimension supérieure, mais s'avèrent ensuite se situer sur un sous-espace de dimension inférieure de celui-ci. Vous augmentez donc la dimensionnalité pour pouvoir la diminuer.

L'essence du «truc du noyau» est qu'il n'est pas vraiment nécessaire de considérer explicitement l'espace de dimension supérieure, donc ce saut potentiellement déroutant dans la dimensionnalité est entièrement réalisé sous couvert. L'idée, cependant, reste la même.


Bonne réponse. Mais juste une question de suivi. Vous avez dit que si les points de données ne sont pas linéaires comme le montre la figure ci-dessus, PCA ne fonctionnera pas et PCA du noyau est requis. Mais comment savoir en premier lieu si les points de données ne sont pas linéaires pour un ensemble de données qui a plus de 4 caractéristiques (le cas réel). Pour visualiser ces données, nous devons réduire la dimensionnalité, ce qui signifie que nous finissons par utiliser PCA pour réduire la dimensionnalité qui serait erronée car les données peuvent être non linéaires et nous utilisons PCA normal pour visualiser. Alors comment savoir si les données ne sont pas linéaires pour utiliser le noyau PCA plutôt que PCA
Baktaawar

Merci, @user. Je suppose que cela dépend de l'application de PCA / kPCA. Par exemple, s'il est appliqué en tant qu'étape de prétraitement pour certains algorithmes de classification, de régression ou de clustering, alors on peut juger de la performance de PCA par rapport à kPCA à partir de la performance de cet algorithme suivant.
amibe dit Réintégrer Monica

1
Merci @amoeba. Mais je suppose que ce que je voulais demander, c'est que, comme vous l'avez mentionné ci-dessus, nous devons utiliser kPCA lorsque les données sont non linéaires, alors comment savoir si les données ont une non-linéarité sinon. des fonctionnalités est plus de 3?. Nous ne pouvons pas visualiser cela sans atteindre les dimensions et c'est comme un problème de poule et d'oeuf
Baktaawar

2
@Baktaawar Si vous faites de l'apprentissage automatique, ne visualisez pas, laissez votre modèle l'apprendre lui-même. Fondamentalement, incluez une étape KPCA dans votre boucle de rééchantillonnage interne et testez les noyaux en tant que paramètres, y compris le noyau linéaire et tous ceux que vous voulez / pouvez vous permettre de tester.
Firebug
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.