Connect with us

AI 101

Wat is Dimensie-reductie?

mm

Wat is Dimensie-reductie?

Dimensie-reductie is een proces dat wordt gebruikt om de dimensionaliteit van een dataset te verminderen, waarbij veel kenmerken worden omgezet in minder kenmerken. Als voorbeeld kan dimensie-reductie worden gebruikt om een dataset van twintig kenmerken terug te brengen tot slechts een paar kenmerken. Dimensie-reductie wordt vaak gebruikt in onbegeleide leeropdrachten om automatisch klassen te creëren uit veel kenmerken. Om beter te begrijpen waarom en hoe dimensie-reductie wordt gebruikt, zullen we kijken naar de problemen die samenhangen met hoogdimensionale gegevens en de meest populaire methoden voor het verminderen van dimensionaliteit.

Meer Dimensies Leidt tot Overfitting

Dimensionaliteit verwijst naar het aantal kenmerken/kolommen binnen een dataset.

Het wordt vaak aangenomen dat in machine learning meer kenmerken beter zijn, omdat dit een nauwkeuriger model creëert. Echter, meer kenmerken vertalen zich niet noodzakelijkerwijs in een beter model.

De kenmerken van een dataset kunnen sterk variëren in termen van hoe nuttig ze zijn voor het model, met veel kenmerken die van weinig belang zijn. Bovendien zijn er meer monsters nodig om ervoor te zorgen dat de verschillende combinaties van kenmerken goed worden weergegeven in de gegevens. Daarom neemt het aantal monsters toe in verhouding tot het aantal kenmerken. Meer monsters en meer kenmerken betekenen dat het model complexer moet zijn, en naarmate modellen complexer worden, worden ze gevoeliger voor overfitting. Het model leert de patronen in de trainingsgegevens te goed en faalt om te generaliseren naar gegevens buiten de steekproef.

Het verminderen van de dimensionaliteit van een dataset heeft verschillende voordelen. Zoals eerder vermeld, zijn eenvoudigere modellen minder gevoelig voor overfitting, omdat het model minder aannamen hoeft te doen over de relatie tussen de kenmerken. Bovendien zijn minder dimensies minder rekenkracht vereist om de algoritmen te trainen. Evenzo is minder opslagruimte nodig voor een dataset met kleinere dimensionaliteit. Het verminderen van de dimensionaliteit van een dataset kan ook toelaten om algoritmen te gebruiken die niet geschikt zijn voor datasets met veel kenmerken.

Algemene Methoden voor Dimensie-reductie

Dimensie-reductie kan worden gedaan door kenmerkselectie of kenmerkengineering. Kenmerkselectie is waar de ingenieur de meest relevante kenmerken van de dataset identificeert, terwijl kenmerkengineering het proces is van het creëren van nieuwe kenmerken door bestaande kenmerken te combineren of te transformeren.

Kenmerkselectie en -engineering kunnen programmatisch of handmatig worden gedaan. Wanneer kenmerken handmatig worden geselecteerd en geëngineerd, is het typisch om de gegevens te visualiseren om correlaties tussen kenmerken en klassen te ontdekken. Het uitvoeren van dimensie-reductie op deze manier kan zeer tijdrovend zijn en daarom zijn enkele van de meest voorkomende manieren van dimensie-reductie het gebruik van algoritmen beschikbaar in bibliotheken zoals Scikit-learn voor Python. Deze algemene algoritmen voor dimensie-reductie omvatten: Principal Component Analysis (PCA), Singular Value Decomposition (SVD) en Linear Discriminant Analysis (LDA).

De algoritmen die worden gebruikt voor dimensie-reductie in onbegeleide leeropdrachten zijn typisch PCA en SVD, terwijl die welke worden gebruikt voor begeleide leeropdrachten voor dimensie-reductie typisch LDA en PCA zijn. In het geval van begeleide leermodellen worden de nieuw gegenereerde kenmerken rechtstreeks in de machine learning-classificator gevoerd. Houd er rekening mee dat de toepassingen die hier worden beschreven alleen algemene gebruiksgevallen zijn en niet de enige omstandigheden zijn waarin deze technieken kunnen worden gebruikt. De algoritmen voor dimensie-reductie die hier worden beschreven, zijn eenvoudigweg statistische methoden en worden gebruikt buiten machine learning-modellen.

Principal Component Analysis

Foto: Matrix met hoofdcomponenten geïdentificeerd

Principal Component Analysis (PCA) is een statistische methode die de kenmerken van een dataset analyseert en de kenmerken samenvat die het meest invloedrijk zijn. De kenmerken van de dataset worden gecombineerd tot representaties die de meeste kenmerken van de gegevens behouden, maar zijn verspreid over minder dimensies. U kunt dit zien als “samendrukken” van de gegevens van een hogere dimensionale weergave naar een met slechts een paar dimensies.

Als voorbeeld van een situatie waarin PCA nuttig kan zijn, denk aan de verschillende manieren waarop wijn kan worden beschreven. Terwijl het mogelijk is om wijn te beschrijven met veel specifieke kenmerken zoals CO2-niveaus, aëratieniveaus enz., kunnen dergelijke specifieke kenmerken relatief nutteloos zijn bij het identificeren van een specifiek type wijn. In plaats daarvan zou het meer zin hebben om het type te identificeren op basis van meer algemene kenmerken zoals smaak, kleur en leeftijd. PCA kan worden gebruikt om meer specifieke kenmerken te combineren en kenmerken te creëren die meer algemeen, nuttig en minder waarschijnlijk zijn om overfitting te veroorzaken.

PCA wordt uitgevoerd door te bepalen hoe de invoerkenmerken variëren van de gemiddelde waarde ten opzichte van elkaar, en of er relaties bestaan tussen de kenmerken. Om dit te doen, wordt een covariantiematrix gemaakt, die een matrix vormt die bestaat uit de covarianties met betrekking tot de mogelijke paren van de datasetkenmerken. Dit wordt gebruikt om correlaties tussen de variabelen te bepalen, waarbij een negatieve covariantie een omgekeerde correlatie aangeeft en een positieve correlatie een positieve correlatie aangeeft.

De primaire (meest invloedrijke) componenten van de dataset worden gemaakt door lineaire combinaties van de initiële variabelen te creëren, met behulp van lineaire algebra-concepten zoals eigenwaarden en eigenvectoren. De combinaties worden gemaakt zodat de primaire componenten niet met elkaar correleren. De meeste informatie die is opgeslagen in de initiële variabelen, wordt samengeperst in de eerste paar primaire componenten, wat betekent dat nieuwe kenmerken (de primaire componenten) zijn gemaakt die de informatie uit de oorspronkelijke dataset bevatten in een kleinere dimensionale ruimte.

Singular Value Decomposition

Foto: By Cmglee – Eigen werk, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Singular Value Decomposition (SVD) is gebruikt om de waarden binnen een matrix te vereenvoudigen, de matrix terug te brengen tot zijn constituerende delen en berekeningen met die matrix gemakkelijker te maken. SVD kan worden gebruikt voor zowel reële als complexe matrices, maar voor de doeleinden van deze verklaring, zullen we bekijken hoe een matrix van reële waarden kan worden gedecomposeerd.

Stel dat we een matrix hebben die bestaat uit reële gegevens en ons doel is om het aantal kolommen/kenmerken in de matrix te verminderen, vergelijkbaar met het doel van PCA. Net als PCA, zal SVD de dimensionaliteit van de matrix comprimeren terwijl zoveel mogelijk van de variabiliteit van de matrix behouden blijft. Als we matrix A willen manipuleren, kunnen we matrix A voorstellen als drie andere matrices genaamd U, D en V. Matrix A bestaat uit de oorspronkelijke x * y-elementen, terwijl matrix U bestaat uit elementen X * X (het is een orthogonale matrix). Matrix V is een andere orthogonale matrix die bestaat uit y * y-elementen. Matrix D bevat de elementen x * y en het is een diagonale matrix.

Om de waarden voor matrix A te decomponeren, moeten we de oorspronkelijke singulaire matrixwaarden omzetten in de diagonale waarden die worden aangetroffen in een nieuwe matrix. Wanneer we werken met orthogonale matrices, verandert hun eigenschap niet als ze worden vermenigvuldigd met andere getallen. Daarom kunnen we matrix A benaderen door gebruik te maken van deze eigenschap. Wanneer we de orthogonale matrices met elkaar vermenigvuldigen met een transponeren van Matrix V, is het resultaat een equivalente matrix van onze oorspronkelijke A.

Wanneer Matrix A wordt gedecomposeerd in matrices U, D en V, bevatten ze de gegevens die worden aangetroffen in Matrix A. Echter, de linkermatigste kolommen van de matrices zullen de meeste gegevens bevatten. We kunnen alleen deze eerste paar kolommen nemen en een weergave van Matrix A hebben die veel minder dimensies heeft en de meeste gegevens in A bevat.

Lineaire Discriminant Analyse

 

Links: Matrix voor LDA, Rechts: As na LDA, nu gescheiden

Lineaire Discriminant Analyse (LDA) is een proces dat gegevens uit een multidimensionale grafiek neemt en ze projecteert op een lineaire grafiek. U kunt dit zich voorstellen door aan een tweedimensionale grafiek te denken die is gevuld met datapunten die behoren tot twee verschillende klassen. Stel dat de punten zijn verspreid zodat er geen lijn kan worden getrokken die de twee klassen netjes scheidt. Om deze situatie te behandelen, kunnen de punten in de 2D-grafiek worden teruggebracht tot een 1D-grafiek (een lijn). Deze lijn zal alle datapunten hebben die zijn verdeeld over de lijn en deze kunnen hopelijk worden verdeeld in twee secties die de beste mogelijke scheiding van de gegevens vertegenwoordigen.

Wanneer LDA wordt uitgevoerd, zijn er twee primaire doelen. Het eerste doel is het minimaliseren van de variantie voor de klassen, terwijl het tweede doel is het maximaliseren van de afstand tussen de middelpunten van de twee klassen. Deze doelen worden bereikt door een nieuwe as te creëren die zal bestaan in de 2D-grafiek. De nieuw gecreëerde as werkt om de twee klassen te scheiden op basis van de eerder beschreven doelen. Nadat de as is gecreëerd, worden de punten in de 2D-grafiek geplaatst langs de as.

Er zijn drie stappen vereist om de oorspronkelijke punten te verplaatsen naar een nieuwe positie langs de nieuwe as. In de eerste stap wordt de afstand tussen de individuele klassenmiddelpunten (de tussenklasse-variantie) gebruikt om de scheiding van de klassen te berekenen. In de tweede stap wordt de variantie binnen de verschillende klassen berekend, door de afstand te bepalen tussen het monster en het gemiddelde voor de klasse in kwestie. In de laatste stap wordt de lagere dimensionale ruimte gemaakt die de variantie tussen de klassen maximaliseert.

De LDA-techniek bereikt de beste resultaten wanneer de middelpunten van de doelklassen ver uit elkaar liggen. LDA kan de klassen niet effectief scheiden met een lineaire as als de middelpunten van de distributies overlappen.

Blogger and programmer with specialties in Machine Learning and Deep Learning topics. Daniel hopes to help others use the power of AI for social good.