Grundlagen der KI

Was ist Dimensionalitätsreduktion?

mm

Was ist Dimensionalitätsreduktion?

Dimensionalitätsreduktion ist ein Prozess, der verwendet wird, um die Dimensionalität eines Datensatzes zu reduzieren, indem viele Merkmale in wenige Merkmale umgewandelt werden. Zum Beispiel kann Dimensionalitätsreduktion verwendet werden, um einen Datensatz mit zwanzig Merkmalen auf nur wenige Merkmale zu reduzieren. Dimensionalitätsreduktion wird häufig in unüberwachten Lernalgorithmen verwendet, um automatisch Klassen aus vielen Merkmalen zu erstellen. Um besser zu verstehen, warum und wie Dimensionalitätsreduktion verwendet wird, werden wir uns die Probleme mit hochdimensionalen Daten und die beliebtesten Methoden zur Reduzierung der Dimensionalität ansehen.

Mehr Dimensionen führen zu Overfitting

Dimensionalität bezieht sich auf die Anzahl der Merkmale/Spalten in einem Datensatz.

Es wird oft angenommen, dass in der maschinellen Lerntheorie mehr Merkmale besser sind, da sie ein genaueres Modell erzeugen. Allerdings führen mehr Merkmale nicht unbedingt zu einem besseren Modell.

Die Merkmale eines Datensatzes können sich stark in ihrer Nützlichkeit für das Modell unterscheiden, wobei viele Merkmale von geringer Bedeutung sind. Darüber hinaus ist die Anzahl der Proben, die benötigt werden, um sicherzustellen, dass die verschiedenen Kombinationen von Merkmalen im Datenbestand gut repräsentiert sind, proportional zur Anzahl der Merkmale. Mehr Proben und mehr Merkmale bedeuten, dass das Modell komplexer sein muss, und je komplexer die Modelle sind, desto empfindlicher sind sie gegenüber Overfitting. Das Modell lernt die Muster in den Trainingsdaten zu gut und kann nicht verallgemeinern, um auf unbekannte Daten zuzugreifen.

Die Reduzierung der Dimensionalität eines Datensatzes hat mehrere Vorteile. Wie bereits erwähnt, sind einfachere Modelle weniger anfällig für Overfitting, da das Modell weniger Annahmen über die Beziehungen zwischen den Merkmalen treffen muss. Darüber hinaus benötigen weniger Dimensionen weniger Rechenleistung, um die Algorithmen zu trainieren. Ebenso wird weniger Speicherplatz benötigt, um einen Datensatz mit geringerer Dimensionalität zu speichern. Die Reduzierung der Dimensionalität eines Datensatzes kann auch ermöglichen, Algorithmen zu verwenden, die für Datensätze mit vielen Merkmalen nicht geeignet sind.

Gängige Methoden der Dimensionalitätsreduktion

Dimensionalitätsreduktion kann durch Merkmalsauswahl oder Merkmalskonstruktion erfolgen. Merkmalsauswahl ist der Prozess, bei dem der Ingenieur die relevantesten Merkmale des Datensatzes identifiziert, während Merkmalskonstruktion der Prozess ist, bei dem neue Merkmale durch Kombination oder Transformation anderer Merkmale erstellt werden.

Merkmalsauswahl und -konstruktion können programmgesteuert oder manuell durchgeführt werden. Wenn Merkmale manuell ausgewählt und konstruiert werden, ist es typisch, die Daten zu visualisieren, um Korrelationen zwischen Merkmalen und Klassen zu entdecken. Die Durchführung der Dimensionalitätsreduktion auf diese Weise kann sehr zeitaufwändig sein, daher werden einige der gängigsten Methoden zur Reduzierung der Dimensionalität durch die Verwendung von Algorithmen in Bibliotheken wie Scikit-learn für Python durchgeführt. Zu diesen gängigen Algorithmen zur Dimensionalitätsreduktion gehören: Hauptkomponentenanalyse (PCA), Singulärwertzerlegung (SVD) und lineare Diskriminanzanalyse (LDA).

Die Algorithmen, die bei der Dimensionalitätsreduktion für unüberwachte Lernalgorithmen verwendet werden, sind in der Regel PCA und SVD, während die Algorithmen, die für die Dimensionalitätsreduktion bei überwachten Lernalgorithmen verwendet werden, in der Regel LDA und PCA sind. Im Falle von überwachten Lernalgorithmen werden die neu generierten Merkmale einfach in den maschinellen Lernalgorithmus eingespeist. Beachten Sie, dass die hier beschriebenen Verwendungen nur allgemeine Anwendungsfälle sind und nicht die einzigen Bedingungen sind, unter denen diese Techniken verwendet werden können. Die oben beschriebenen Algorithmen zur Dimensionalitätsreduktion sind einfach statistische Methoden und werden außerhalb von maschinellen Lernalgorithmen verwendet.

Hauptkomponentenanalyse

Bild: Matrix mit den Hauptkomponenten

Hauptkomponentenanalyse (PCA) ist eine statistische Methode, die die Merkmale eines Datensatzes analysiert und die Merkmale zusammenfasst, die am meisten Einfluss haben. Die Merkmale des Datensatzes werden zu Darstellungen kombiniert, die die meisten Merkmale des Datensatzes beibehalten, aber über weniger Dimensionen verteilt sind. Man kann sich dies als “Zusammenpressen” der Daten von einer höheren Dimensionsdarstellung auf eine mit nur wenigen Dimensionen vorstellen.

Als Beispiel für eine Situation, in der PCA nützlich sein könnte, denken Sie an die verschiedenen Möglichkeiten, Wein zu beschreiben. Während es möglich ist, Wein mit vielen spezifischen Merkmalen wie CO2-Werten, Belüftungswerten usw. zu beschreiben, können solche spezifischen Merkmale relativ nutzlos sein, wenn man versucht, eine bestimmte Art von Wein zu identifizieren. Stattdessen wäre es ratsamer, die Art auf der Grundlage allgemeinerer Merkmale wie Geschmack, Farbe und Alter zu identifizieren. PCA kann verwendet werden, um spezifischere Merkmale zu kombinieren und Merkmale zu erstellen, die allgemeiner, nützlicher und weniger anfällig für Overfitting sind.

PCA wird durchgeführt, indem die Eingabemerkmale in Bezug auf ihre Abweichung vom Mittelwert bestimmt werden, um festzustellen, ob Beziehungen zwischen den Merkmalen bestehen. Um dies zu tun, wird eine Kovarianzmatrix erstellt, die eine Matrix aus den Kovarianzen in Bezug auf die möglichen Paare der Datensatzmerkmale darstellt. Dies wird verwendet, um Korrelationen zwischen den Variablen zu bestimmen, wobei eine negative Kovarianz eine inverse Korrelation und eine positive Kovarianz eine positive Korrelation anzeigt.

Die Hauptkomponenten (die einflussreichsten Merkmale) des Datensatzes werden durch lineare Kombinationen der ursprünglichen Variablen erstellt, was mit Hilfe von linearen Algebra-Konzepten wie Eigenwerten und Eigenvektoren durchgeführt wird. Die Kombinationen werden so erstellt, dass die Hauptkomponenten nicht korreliert sind. Die meisten Informationen, die in den ursprünglichen Variablen enthalten sind, werden in die ersten paar Hauptkomponenten komprimiert, was bedeutet, dass neue Merkmale (die Hauptkomponenten) erstellt wurden, die die Informationen aus dem ursprünglichen Datensatz in einem kleineren dimensionalen Raum enthalten.

Singulärwertzerlegung

Bild: Durch Cmglee – Eigenes Werk, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Singulärwertzerlegung (SVD) wird verwendet, um die Werte in einer Matrix zu vereinfachen, indem die Matrix in ihre Bestandteile zerlegt und die Berechnungen mit dieser Matrix erleichtert werden. SVD kann für reelle und komplexe Matrizen verwendet werden, aber für die Zwecke dieser Erklärung werden wir uns ansehen, wie eine Matrix mit reellen Werten zerlegt wird.

Nehmen wir an, wir haben eine Matrix, die aus reellen Daten besteht, und unser Ziel ist es, die Anzahl der Spalten/Merkmale in der Matrix zu reduzieren, ähnlich wie das Ziel der PCA. Wie PCA wird SVD die Dimensionalität der Matrix komprimieren, während sie so viel wie möglich von der Variabilität der Matrix beibehält. Wenn wir auf der Matrix A operieren möchten, können wir die Matrix A als drei andere Matrizen namens U, D und V darstellen. Die Matrix A besteht aus den ursprünglichen x * y-Elementen, während die Matrix U aus Elementen von X * X (sie ist eine orthogonale Matrix) besteht. Die Matrix V ist eine andere orthogonale Matrix, die y * y-Elemente enthält. Die Matrix D enthält die Elemente x * y und ist eine Diagonalmatrix.

Um die Werte für die Matrix A zu zerlegen, müssen wir die ursprünglichen singulären Matrixwerte in die diagonalen Werte umwandeln, die in einer neuen Matrix gefunden werden. Wenn wir mit orthogonalen Matrizen arbeiten, ändern sich ihre Eigenschaften nicht, wenn sie mit anderen Zahlen multipliziert werden. Daher können wir die Matrix A approximieren, indem wir diese Eigenschaft nutzen. Wenn wir die orthogonalen Matrizen miteinander multiplizieren und mit der Transposition der Matrix V, ist das Ergebnis eine äquivalente Matrix zu unserer ursprünglichen A.

Wenn die Matrix A in die Matrizen U, D und V zerlegt wird, enthalten sie die Daten, die in der Matrix A gefunden werden. Die linken Spalten der Matrizen enthalten jedoch die meisten Daten. Wir können nur diese ersten paar Spalten nehmen und eine Darstellung der Matrix A haben, die viel weniger Dimensionen hat und die meisten Daten in A enthält.

Lineare Diskriminanzanalyse

 

Links: Matrix vor LDA, Rechts: Achse nach LDA, jetzt trennbar

Lineare Diskriminanzanalyse (LDA) ist ein Prozess, der Daten aus einem mehrdimensionalen Graphen nimmt und sie auf einen linearen Graphen projiziert. Sie können sich dies vorstellen, indem Sie an einen zweidimensionalen Graphen denken, der mit Datenpunkten gefüllt ist, die zwei verschiedenen Klassen angehören. Nehmen wir an, die Punkte sind so verteilt, dass keine Linie gezogen werden kann, die die beiden Klassen sauber trennt. Um diese Situation zu bewältigen, können die Punkte im 2D-Graphen auf einen 1D-Graphen (eine Linie) reduziert werden. Diese Linie wird alle Datenpunkte enthalten und kann hoffentlich in zwei Abschnitte unterteilt werden, die die beste mögliche Trennung der Daten darstellen.

Wenn LDA durchgeführt wird, gibt es zwei primäre Ziele. Das erste Ziel ist die Minimierung der Varianz für die Klassen, während das zweite Ziel die Maximierung des Abstands zwischen den Mittelwerten der beiden Klassen ist. Diese Ziele werden erreicht, indem eine neue Achse erstellt wird, die in dem 2D-Graphen existiert. Die neu erstellte Achse dient dazu, die beiden Klassen basierend auf den zuvor beschriebenen Zielen zu trennen. Nachdem die Achse erstellt wurde, werden die Punkte im 2D-Graphen entlang der Achse platziert.

Es gibt drei Schritte, die erforderlich sind, um die ursprünglichen Punkte in eine neue Position entlang der neuen Achse zu bewegen. Im ersten Schritt wird der Abstand zwischen den Mittelwerten der einzelnen Klassen (die Varianz zwischen den Klassen) verwendet, um die Trennbarkeit der Klassen zu berechnen. Im zweiten Schritt wird die Varianz innerhalb der verschiedenen Klassen berechnet, indem der Abstand zwischen der Probe und dem Mittelwert für die Klasse bestimmt wird. Im letzten Schritt wird der niedrigdimensionale Raum erstellt, der die Varianz zwischen den Klassen maximiert.

Die LDA-Technik erzielt die besten Ergebnisse, wenn die Mittelwerte für die Zielklassen weit voneinander entfernt sind. LDA kann die Klassen nicht effektiv mit einer linearen Achse trennen, wenn die Mittelwerte für die Verteilungen überlappen.

Blogger und Programmierer mit Spezialisierungen in Machine Learning und Deep Learning Themen. Daniel hofft, anderen zu helfen, die Macht von KI für das soziale Wohl zu nutzen.