Grunnleggende AI
Hva er Dimensjonsreduksjon?
Hva er Dimensjonsreduksjon?
Dimensjonsreduksjon er en prosess som brukes til å redusere dimensjonaliteten av en datasett, ved å ta mange egenskaper og representere dem som færre egenskaper. For eksempel kan dimensjonsreduksjon brukes til å redusere en datasett med tyve egenskaper ned til bare noen få egenskaper. Dimensjonsreduksjon brukes ofte i uovervakt læring oppgaver for å automatisk skape klasser av mange egenskaper. For å bedre forstå hvorfor og hvordan dimensjonsreduksjon brukes, skal vi se på problemene forbundet med høydimensjonale data og de mest vanlige metodene for å redusere dimensjonalitet.
Flere Dimensjoner Leder til Overfitting
Dimensjonalitet refererer til antallet egenskaper/kolonner i en datasett.
Det antas ofte at i maskinlæring er flere egenskaper bedre, da det skaper en mer nøyaktig modell. Imidlertid oversettes flere egenskaper ikke nødvendigvis til en bedre modell.
Egenskapene i en datasett kan variere mye i hvilken grad de er nyttige for modellen, med mange egenskaper som er av liten betydning. I tillegg, jo flere egenskaper datasettene inneholder, jo flere prøver er nødvendige for å sikre at de forskjellige kombinasjonene av egenskaper er godt representert i dataene. Derfor øker antallet prøver i forhold til antallet egenskaper. Flere prøver og flere egenskaper betyr at modellen må være mer kompleks, og jo mer komplekse modellene blir, jo mer følsomme blir de for overfitting. Modellen lærer mønsterene i treningdataene for godt og den klarer ikke å generalisere til data utenfor prøvene.
Å redusere dimensjonaliteten av en datasett har flere fordeler. Som nevnt, enklere modeller er mindre utsatt for overfitting, da modellen må gjøre færre antakelser om hvordan egenskapene er relatert til hverandre. I tillegg, færre dimensjoner betyr mindre beregningskraft er nødvendig for å trene algoritmene. Liksom, mindre lagringsplass er nødvendig for en datasett som har mindre dimensjonalitet. Å redusere dimensjonaliteten av en datasett kan også la deg bruke algoritmer som ikke er egnet for datasett med mange egenskaper.
Vanlige Dimensjonsreduksjonsmetoder
Dimensjonsreduksjon kan være ved egenskapsvalg eller egenskapsingeniøri. Egenskapsvalg er der hvor ingeniøren identifiserer de mest relevante egenskapene i datasettene, mens egenskapsingeniøri er prosessen med å skape nye egenskaper ved å kombinere eller transformere andre egenskaper.
Egenskapsvalg og egenskapsingeniøri kan gjøres programmeringsmessig eller manuelt. Når man valger og ingeniører egenskaper manuelt, er det vanlig å visualisere dataene for å oppdage korrelasjoner mellom egenskaper og klasser. Å utføre dimensjonsreduksjon på denne måten kan være ganske tidskrevende og derfor er noen av de mest vanlige måtene å redusere dimensjonalitet på, å bruke algoritmer som er tilgjengelige i biblioteker som Scikit-learn for Python. Disse vanlige dimensjonsreduksjonsalgoritmene inkluderer: Principal Component Analysis (PCA), Singular Value Decomposition (SVD) og Linear Discriminant Analysis (LDA).
Algoritmene som brukes i dimensjonsreduksjon for uovervakt læring oppgaver er vanligvis PCA og SVD, mens de som brukes for overvakt læring dimensjonsreduksjon er vanligvis LDA og PCA. I tilfelle av overvakt læring modeller, blir de nygenererte egenskapene bare matet inn i maskinlæringsklassifikatoren. Merk at bruksområdene beskrevet her er bare generelle bruksområder og ikke de eneste tilfellene hvor disse teknikkene kan brukes. Dimensjonsreduksjonsalgoritmene beskrevet ovenfor er bare statistiske metoder og de brukes utenfor maskinlæringsmodeller.
Principal Component Analysis

Bilde: Matrise med primærkomponenter identifisert
Principal Component Analysis (PCA) er en statistisk metode som analyserer egenskapene i en datasett og summerer de egenskapene som er mest innflytelsesrike. Egenskapene i datasettene kombineres sammen til representasjoner som beholder de fleste av egenskapene i dataene, men som er spredt over færre dimensjoner. Du kan tenke på dette som å “klemme” dataene ned fra en høyere dimensjon representasjon til en med bare noen få dimensjoner.
Som et eksempel på en situasjon hvor PCA kan være nyttig, tenk på de forskjellige måtene man kan beskrive vin. Mens det er mulig å beskrive vin ved hjelp av mange svært spesifikke egenskaper som CO2-nivåer, luftningsnivåer osv., kan slike spesifikke egenskaper være relativt ubrukelige når man skal identifisere en bestemt type vin. I stedet ville det være mer hensiktsmessig å identifisere typen basert på mer generelle egenskaper som smak, farge og alder. PCA kan brukes til å kombinere mer spesifikke egenskaper og skape egenskaper som er mer generelle, nyttige og mindre sannsynlige å forårsake overfitting.
PCA utføres ved å bestemme hvordan inndataegenskapene varierer fra gjennomsnittet i forhold til hverandre, bestemme om det finnes noen relasjoner mellom egenskapene. For å gjøre dette, skapes en kovariansmatrise, som etablerer en matrise sammensatt av kovarianser i forhold til de mulige parene av datasettets egenskaper. Dette brukes til å bestemme korrelasjoner mellom variablene, med en negativ kovarians som indikerer en invers korrelasjon og en positiv korrelasjon som indikerer en positiv korrelasjon.
De primære (mest innflytelsesrike) komponentene av datasettene skapes ved å skape lineære kombinasjoner av de initielle variablene, som gjøres med hjelp av lineære algebra konsepter som eigenverdier og egenvektorer. Kombinasjonene skapes slik at de primære komponentene er ukorrelerte med hverandre. Det meste av informasjonen i de initielle variablene er komprimert i de første få primærkomponentene, noe som betyr at nye egenskaper (de primære komponentene) er skapt som inneholder informasjonen fra den opprinnelige datasettene i en mindre dimensjonal rom.
Singular Value Decomposition

Bilde: Av Cmglee – Egen arbeid, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297
Singular Value Decomposition (SVD) er brukt til å forenkle verdiene i en matrise, ved å redusere matrisen ned til sine bestanddeler og gjøre beregninger med matrisen enklere. SVD kan brukes både for reelle og komplekse matriser, men for formålet med denne forklaringen, skal vi se på hvordan man kan dekomponere en matrise med reelle verdier.
Anta at vi har en matrise sammensatt av reelle data og vårt mål er å redusere antallet kolonner/egenskaper i matrisen, på samme måte som målet med PCA. Liksom PCA, vil SVD komprimere dimensjonaliteten av matrisen samtidig som den beholder så mye av matrisens varians som mulig. Hvis vi ønsker å operere på matrise A, kan vi representere matrise A som tre andre matriser kalt U, D og V. Matrise A består av de opprinnelige x * y elementene, mens matrise U består av elementer x * x (det er en ortogonal matrise). Matrise V er en annen ortogonal matrise som inneholder y * y elementer. Matrise D inneholder elementene x * y og det er en diagonal matrise.
For å dekomponere verdiene for matrise A, må vi konvertere de opprinnelige singulære matrisverdiene til de diagonale verdiene funnet i en ny matrise. Når vi arbeider med ortogonale matriser, endrer deres egenskaper ikke hvis de multipliseres med andre tall. Derfor kan vi approksimere matrise A ved å dra nytte av denne egenskapen. Når vi multipliserer de ortogonale matrisene sammen med en transponering av matrise V, er resultatet en ekvivalent matrise til vår opprinnelige A.
Når matrise A dekomponeres ned i matriser U, D og V, inneholder de dataene funnet i matrise A. Imidlertid vil de venstre kolonnene i matrisene inneholde de fleste av dataene. Vi kan ta bare disse første få kolonnene og få en representasjon av matrise A som har langt færre dimensjoner og de fleste av dataene i A.
Lineær Diskriminananalyse

Venstre: Matrise før LDA, Høyre: Akse etter LDA, nå separerbare
Lineær Diskriminananalyse (LDA) er en prosess som tar data fra en flerdimensjonal graf og prosjekterer det på en lineær graf. Du kan forestille deg dette ved å tenke på en todimensjonal graf fylt med datapunkter som tilhører to forskjellige klasser. Anta at punktene er spredt rundt sånn at ingen linje kan tegnes som kan separere de to forskjellige klassene på en pen måte. For å håndtere denne situasjonen, kan punktene i 2D-grafen reduseres ned til en 1D-graf (en linje). Denne linjen vil ha alle datapunktene fordelt over den og den kan håpes å kunne deles inn i to seksjoner som representerer den beste mulige separasjon av dataene.
Når LDA utføres, er det to primære mål. Det første målet er å minimere variasjonen for klassene, mens det andre målet er å maksimere avstanden mellom middelverdiene for de to klassene. Disse målene oppnås ved å skape en ny akse som vil eksistere i 2D-grafen. Den nyopprettede aksen fungerer som å separere de to klassene basert på målene som tidligere er beskrevet. Etter at aksen er opprettet, plasseres punktene i 2D-grafen langs aksen.
Det er tre trinn som kreves for å flytte de opprinnelige punktene til en ny posisjon langs den nye aksen. I det første trinnet brukes avstanden mellom de enkelte klassers middelverdier (mellom-klasse variasjon) til å beregne separasjonen av klassene. I det andre trinnet beregnes variasjonen innenfor de forskjellige klassene, gjort ved å bestemme avstanden mellom prøven og middelverdien for klassen i question. I det siste trinnet, n the final step, the lower-dimensional space that maximizes the variance between classes is created. LDA-teknikken oppnår de beste resultater når middelverdiene for målklassene er langt fra hverandre. LDA kan ikke effektivt separere klassene med en lineær akse hvis middelverdiene for distribusjonene overlapper.












