Følg os

AI 101

Hvad er dimensionsreduktion?

mm

Hvad er dimensionsreduktion?

Dimensionalitetsreduktion er en proces, der bruges til at reducere dimensionaliteten af ​​et datasæt, idet man tager mange funktioner og repræsenterer dem som færre funktioner. For eksempel kunne dimensionsreduktion bruges til at reducere et datasæt med tyve funktioner ned til blot nogle få funktioner. Dimensionalitetsreduktion er almindeligt anvendt i uovervåget læring opgaver til automatisk at oprette klasser ud af mange funktioner. For bedre at forstå hvorfor og hvordan dimensionalitetsreduktion bruges, vil vi tage et kig på problemerne forbundet med højdimensionelle data og de mest populære metoder til at reducere dimensionalitet.

Flere dimensioner fører til overpasning

Dimensionalitet refererer til antallet af funktioner/kolonner i et datasæt.

Det antages ofte, at i maskinlæring er flere funktioner bedre, da det skaber en mere præcis model. Flere funktioner oversættes dog ikke nødvendigvis til en bedre model.

Funktionerne i et datasæt kan variere meget med hensyn til, hvor nyttige de er for modellen, hvor mange funktioner er af ringe betydning. Derudover, jo flere funktioner datasættet indeholder, jo flere prøver er nødvendige for at sikre, at de forskellige kombinationer af funktioner er godt repræsenteret i dataene. Derfor stiger antallet af prøver i forhold til antallet af funktioner. Flere prøver og flere funktioner betyder, at modellen skal være mere kompleks, og efterhånden som modellerne bliver mere komplekse, bliver de mere følsomme over for overfitting. Modellen lærer mønstrene i træningsdataene for godt, og den formår ikke at generalisere til data uden for stikprøven.

At reducere dimensionaliteten af ​​et datasæt har flere fordele. Som nævnt er simplere modeller mindre tilbøjelige til at overmontere, da modellen skal gøre færre antagelser om, hvordan funktioner er relateret til hinanden. Derudover betyder færre dimensioner, at der kræves mindre computerkraft for at træne algoritmerne. På samme måde kræves der mindre lagerplads til et datasæt, der har mindre dimensionalitet. Ved at reducere dimensionaliteten af ​​et datasæt kan du også bruge algoritmer, der er uegnede til datasæt med mange funktioner.

Almindelige metoder til reduktion af dimensionalitet

Dimensionalitetsreduktion kan ske ved funktionsvalg eller funktionsteknik. Funktionsvalg er, hvor ingeniøren identificerer de mest relevante funktioner i datasættet, mens funktionsteknik er processen med at skabe nye funktioner ved at kombinere eller transformere andre funktioner.

Funktionsvalg og engineering kan udføres programmatisk eller manuelt. Når man manuelt vælger og udvikler funktioner, er det typisk at visualisere dataene for at finde sammenhænge mellem funktioner og klasser. At udføre dimensionalitetsreduktion på denne måde kan være ret tidskrævende, og derfor involverer nogle af de mest almindelige måder at reducere dimensionalitet på brugen af ​​algoritmer, der er tilgængelige i biblioteker som Scikit-learn for Python. Disse almindelige dimensionsreduktionsalgoritmer inkluderer: Principal Component Analysis (PCA), Singular Value Decomposition (SVD) og Linear Diskriminant Analysis (LDA).

Algoritmerne, der bruges til dimensionalitetsreduktion til uovervågede læringsopgaver, er typisk PCA og SVD, mens de, der udnyttes til overvåget læringsdimensionalitetsreduktion, typisk er LDA og PCA. I tilfælde af overvågede læringsmodeller bliver de nyligt genererede funktioner bare indlæst i maskinlæringsklassifikatoren. Vær opmærksom på, at de her beskrevne anvendelser kun er generelle use cases og ikke de eneste forhold, som disse teknikker kan bruges i. Dimensionalitetsreduktionsalgoritmerne beskrevet ovenfor er ganske enkelt statistiske metoder, og de bruges uden for maskinlæringsmodeller.

Hovedkomponentanalyse

Foto: Matrix med hovedkomponenter identificeret

Principal Component Analysis (PCA) er en statistisk metode, der analyserer karakteristika/funktioner i et datasæt og opsummerer de funktioner, der er mest indflydelsesrige. Datasættets funktioner kombineres til repræsentationer, der bevarer de fleste af dataenes karakteristika, men er spredt over færre dimensioner. Du kan tænke på dette som at "presse" dataene ned fra en højere dimensionsrepræsentation til en med kun få dimensioner.

Som et eksempel på en situation, hvor PCA kan være nyttig, tænk på de forskellige måder, man kan beskrive vin på. Selvom det er muligt at beskrive vin ved hjælp af mange meget specifikke egenskaber som CO2-niveauer, beluftningsniveauer osv., kan sådanne specifikke egenskaber være relativt ubrugelige, når man forsøger at identificere en bestemt type vin. I stedet ville det være mere klogt at identificere typen baseret på mere generelle træk som smag, farve og alder. PCA kan bruges til at kombinere mere specifikke funktioner og skabe funktioner, der er mere generelle, nyttige og mindre tilbøjelige til at forårsage overfitting.

PCA udføres ved at bestemme, hvordan input-egenskaberne varierer fra gennemsnittet i forhold til hinanden, ved at bestemme, om der eksisterer nogen relationer mellem funktionerne. For at gøre dette oprettes en kovariant matrix, der etablerer en matrix sammensat af kovarianserne med hensyn til de mulige par af datasættets funktioner. Dette bruges til at bestemme korrelationer mellem variablerne, hvor en negativ kovarians indikerer en invers korrelation og en positiv korrelation indikerer en positiv korrelation.

De vigtigste (mest indflydelsesrige) komponenter i datasættet skabes ved at skabe lineære kombinationer af de indledende variabler, hvilket gøres ved hjælp af lineære algebra-koncepter kaldet egenværdier og egenvektorer. Kombinationerne er skabt således, at hovedkomponenterne er ukorrelerede med hinanden. Det meste af informationen indeholdt i de indledende variabler er komprimeret til de første par hovedkomponenter, hvilket betyder, at der er skabt nye funktioner (hovedkomponenterne), som indeholder informationen fra det originale datasæt i et mindre dimensionelt rum.

Enkeltværdinedbrydning

Foto: Af Cmglee – Eget arbejde, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Singular Value Decomposition (SVD) is bruges til at forenkle værdierne i en matrix, reducere matricen ned til dens bestanddele og gøre beregninger med denne matrix lettere. SVD kan bruges til både reelle værdier og komplekse matricer, men vil med henblik på denne forklaring undersøge, hvordan man dekomponerer en matrix af reelle værdier.

Antag, at vi har en matrix sammensat af realværdidata, og vores mål er at reducere antallet af kolonner/funktioner i matrixen, svarende til målet for PCA. Ligesom PCA vil SVD komprimere dimensionaliteten af ​​matrixen, samtidig med at den bevarer så meget af matrixens variabilitet som muligt. Hvis vi vil operere på matrix A, kan vi repræsentere matrix A som tre andre matricer kaldet U, D og V. Matrix A består af de oprindelige x * y elementer, mens matrix U består af elementer X * X (det er en ortogonal matrix). Matrix V er en anden ortogonal matrix, der indeholder y * y elementer. Matrix D indeholder elementerne x * y, og det er en diagonal matrix.

For at dekomponere værdierne for matrix A, skal vi konvertere de originale singulære matrixværdier til de diagonale værdier, der findes i en ny matrix. Når man arbejder med ortogonale matricer, ændres deres egenskaber ikke, hvis de ganges med andre tal. Derfor kan vi tilnærme matrix A ved at drage fordel af denne egenskab. Når vi multiplicerer de ortogonale matricer sammen med en transponering af Matrix V, er resultatet en ækvivalent matrix til vores oprindelige A.

Når Matrix a er dekomponeret i matricer U, D og V, indeholder de de data, der findes i Matrix A. Men de kolonner til venstre i matricerne vil indeholde størstedelen af ​​dataene. Vi kan kun tage disse første par kolonner og have en repræsentation af Matrix A, der har langt færre dimensioner og de fleste af dataene i A.

Lineær diskriminationsanalyse

 

Venstre: Matrix før LDA, Højre: Akse efter LDA, kan nu adskilles

Lineær diskriminationsanalyse (LDA) er en proces, der tager data fra en multidimensionel graf og omprojekterer det på en lineær graf. Du kan forestille dig dette ved at tænke på en todimensionel graf fyldt med datapunkter, der tilhører to forskellige klasser. Antag, at punkterne er spredt rundt, så der ikke kan trækkes en linje, der pænt adskiller de to forskellige klasser. For at håndtere denne situation kan de punkter, der findes i 2D-grafen, reduceres til en 1D-graf (en linje). Denne linje vil have alle datapunkter fordelt over sig, og den kan forhåbentlig opdeles i to sektioner, der repræsenterer den bedst mulige adskillelse af dataene.

Ved udførelse af LDA er der to primære mål. Det første mål er at minimere variansen for klasserne, mens det andet mål er at maksimere afstanden mellem middelværdierne for de to klasser. Disse mål opnås ved at skabe en ny akse, der vil eksistere i 2D-grafen. Den nyoprettede akse virker til at adskille de to klasser baseret på de tidligere beskrevne mål. Efter at aksen er oprettet, placeres punkterne i 2D-grafen langs aksen.

Der kræves tre trin for at flytte de oprindelige punkter til en ny position langs den nye akse. I første trin bruges afstanden mellem de enkelte klassers middelværdi (mellemklassevariansen) til at beregne klassernes adskillelighed. I andet trin beregnes variansen inden for de forskellige klasser ved at bestemme afstanden mellem stikprøven og gennemsnittet for den pågældende klasse. I det sidste trin skabes det lavere dimensionelle rum, der maksimerer variansen mellem klasser.

LDA-teknikken opnår de bedste resultater, når midlerne for målklasserne er langt fra hinanden. LDA kan ikke effektivt adskille klasserne med en lineær akse, hvis midlerne for distributionerne overlapper hinanden.