Kernel hoofdcomponentanalyse
Op het gebied van multivariate statistieken, Kernel Principal Component Analysis (Kernel PCA)[1] is een uitbreiding van Hoofdcomponentanalyse (PCA) met behulp van technieken van kernelmethoden.Met behulp van een kernel worden de oorspronkelijk lineaire bewerkingen van PCA uitgevoerd in een Reproduceren van kernel Hilbert -ruimte.
Achtergrond: Lineaire PCA
Bedenk dat conventionele PCA werkt op nul-gecentreerde gegevens;dat is,
- ,
waar is een van de multivariate observaties.Het werkt door de covariantiematrix,,
Met andere woorden, het geeft een eigendecompositie van de covariantiematrix:
die kunnen worden herschreven als
- .[2]
(Zie ook: Covariantiematrix als lineaire operator))
Introductie van de kernel tot PCA
Om het nut van kernel PCA te begrijpen, met name voor clustering, merken dat, terwijl N punten kunnen in het algemeen niet zijn lineair gescheiden in afmetingen, ze kunnen bijna altijd lineair gescheiden zijn in dimensies.Dat wil zeggen, gegeven N punten, , als we ze toewijzen aan een N-dimensionale ruimte met
- waar ,
het is gemakkelijk om een hyperplane Dat verdeelt de punten in willekeurige clusters.Natuurlijk dit Creëert lineair onafhankelijke vectoren, dus er is geen covariantie om eigendecompositie uit te voeren uitdrukkelijk Zoals we zouden doen in lineaire PCA.
In plaats daarvan, in kernel PCA, een niet-triviaal, willekeurig functie is 'gekozen' die nooit expliciet wordt berekend, waardoor de mogelijkheid kan worden gebruikt om zeer hoog-dimensionaal te gebruiken als we de gegevens in die ruimte nooit daadwerkelijk hoeven te evalueren.Omdat we over het algemeen proberen te voorkomen dat we in de -ruimte, die we de 'Feature Space' zullen noemen, kunnen we de n-n-n-kernel maken
die de innerlijke productruimte vertegenwoordigt (zie Gramische matrix) van de anders onhandelbare kenmerkruimte.De dubbele vorm die ontstaat bij het creëren van een kernel stelt ons in staat om een versie van PCA wiskundig te formuleren waarin we de eigenvectoren en eigenwaarden van de covariantiematrix in de covariantiematrix nooit oplossen in de -ruimte (zie Kerneltruc).De N-elementen in elke kolom van K Vertegenwoordig het puntproduct van één punt van de getransformeerde gegevens met betrekking tot alle getransformeerde punten (n punten).Sommige bekende kernels worden in het onderstaande voorbeeld getoond.
Omdat we nooit rechtstreeks in de speelruimte werken, is de kernelformulatie van PCA beperkt omdat het niet de belangrijkste componenten zelf berekent, maar de projecties van onze gegevens op die componenten.Om de projectie te evalueren vanuit een punt in de speelruimte op de KTH -hoofdcomponent (waar SuperScript K de component K betekent, geen krachten van K)
We noteren dat geeft DOT -product aan, dat gewoon de elementen van de kernel is .Het lijkt erop dat het enige dat overblijft is om de , wat kan worden gedaan door de eigenvectorvergelijking op te lossen
waarbij n het aantal gegevenspunten is in de set, en en zijn de eigenwaarden en eigenvectoren van .Vervolgens om de eigenvectoren te normaliseren , dat hebben we nodig
Er moet voor worden gezet met betrekking tot het feit dat, of het nu wel of niet is heeft nul-gemiddelde in zijn oorspronkelijke ruimte, het is niet gegarandeerd gecentreerd in de speelruimte (die we nooit expliciet berekenen).Omdat gecentreerde gegevens nodig zijn om een effectieve principale componentanalyse uit te voeren, wij 'centraliseren' worden
waar geeft een n-by-n matrix aan waarvoor elk element waarde neemt . We gebruiken om het hierboven beschreven kernel -algoritme uit te voeren.
Een voorbehoud van kernel PCA moet hier worden geïllustreerd.In lineaire PCA kunnen we de eigenwaarden gebruiken om de eigenvectoren te rangschikken op basis van hoeveel van de variatie van de gegevens wordt vastgelegd door elke hoofdcomponent.Dit is handig voor reductie van gegevensdimensionaliteit en het kan ook worden toegepast op KPCA.In de praktijk zijn er echter gevallen dat alle variaties van de gegevens hetzelfde zijn.Dit wordt meestal veroorzaakt door een verkeerde keuze van kernelschaal.
Grote datasets
In de praktijk leidt een grote gegevensset tot een grote K, en het opslaan van K kan een probleem worden.Een manier om hiermee om te gaan, is door clustering op de gegevensset uit te voeren en de kernel te vullen met de middelen van die clusters.Aangezien zelfs deze methode een relatief grote K kan opleveren, is het gebruikelijk om alleen de bovenste p eigenwaarden en eigenvectoren van de eigenwaarden te berekenen, op deze manier berekend.
Voorbeeld

Beschouw drie concentrische punten van punten (getoond);We willen kernel PCA gebruiken om deze groepen te identificeren.De kleur van de punten vertegenwoordigt geen informatie die betrokken is bij het algoritme, maar laat alleen zien hoe de transformatie de gegevenspunten verplaatst.
Overweeg eerst de kernel
Dit toepassen op kernel PCA levert de volgende afbeelding op.

Overweeg nu een Gaussiaanse kernel:
Dat wil zeggen, deze kernel is een maat voor nabijheid, gelijk aan 1 wanneer de punten samenvallen en gelijk zijn aan 0 bij oneindig.

Merk met name op dat de eerste hoofdcomponent voldoende is om de drie verschillende groepen te onderscheiden, wat onmogelijk is met het gebruik van alleen lineaire PCA, omdat lineaire PCA alleen werkt in de gegeven (in dit geval tweedimensionale) ruimte, waarin deze concentrische puntwolken zijnNiet lineair scheidbaar.
Toepassingen
Kernel PCA is aangetoond dat het nuttig is voor nieuwheidsdetectie[3] en afbeelding de-noising.[4]
Zie ook
Referenties
- ^ Schölklopf, Bernhard;Smola, Alex; Müller, Klaus-Robert (1998)."Niet -lineaire componentanalyse als een kernel -eigenwaardeprobleem". Neurale berekening. 10 (5): 1299–1319. Citeseerx 10.1.1.100.3636. doen:10.1162/089976698300017467. S2CID 6674407.
- ^ Niet -lineaire componentanalyse als een kernel -eigenwaardeprobleem (technisch rapport)
- ^ Hoffmann, Heiko (2007). "Kernel PCA voor nieuwigheidsdetectie". Patroonherkenning. 40 (3): 863–874. doen:10.1016/j.patcog.2006.07.009.
- ^ Kernel PCA en de-noising in functieruimtes.Nips, 1999