In diesem Beitrag werden einige sehr grundlegende Konzepte des maschinellen Lernens behandelt, von der linearen Algebra bis zu Bewertungsmetriken. Er dient als Leitfaden für Neulinge, die in das Gebiet einsteigen wollen.

Lineare Algebra

Lineare Algebra ist der Grundpfeiler im Bereich des maschinellen Lernens. Why? Die Algorithmen des maschinellen Lernens werden in Büchern, Abhandlungen und auf Websites mit Hilfe der Vektor- und Matrixnotation beschrieben. Lineare Algebra ist die Mathematik der Daten, und ihre Notation ermöglicht es, Operationen auf Daten mit spezifischen Operatoren genau zu beschreiben. Die beiden wichtigsten Konzepte der linearen Algebra, mit denen man vertraut sein sollte, sind Vektoren und Matrizen.

1 – Vektoren

Ein Vektor ist ein Tupel aus einem oder mehreren Werten, die als Skalare bezeichnet werden. Es ist üblich, Vektoren mit Hilfe der geometrischen Definition einzuführen, bei der ein Vektor einen Punkt oder eine Koordinate in einem hochdimensionalen Raum darstellt. Die wichtigsten arithmetischen Operationen für Vektoren sind Addition, Subtraktion, Multiplikation, Division, Punktprodukt und skalare Multiplikation.

  • Zwei Vektoren gleicher Länge können addiert werden, um einen neuen dritten Vektor zu erzeugen.
  • Ein Vektor kann von einem anderen Vektor gleicher Länge subtrahiert werden, um einen neuen dritten Vektor zu erzeugen.
  • Zwei Vektoren gleicher Länge können miteinander multipliziert werden.
  • Zwei Vektoren gleicher Länge können dividiert werden.
  • Das Punktprodukt ist die Summe der multiplizierten Elemente zweier Vektoren gleicher Länge und ergibt einen Skalar.
  • Ein Vektor kann mit einem Skalar multipliziert werden, um die Größe des Vektors zu skalieren.

Es gibt viele Verwendungsmöglichkeiten von Vektoren. Zum Beispiel können Vektoren einen Versatz im 2D- oder 3D-Raum darstellen. Punkte sind einfach Vektoren vom Ursprung aus. Daten (Pixel, Gradienten an einem Bild-Schlüsselpunkt usw.) können auch als Vektor behandelt werden.

2 – Matrizen

Eine Matrix ist eine zweidimensionale Anordnung von Skalaren mit einer oder mehreren Spalten und einer oder mehreren Zeilen. Wenn die Matrix die gleiche Anzahl von Zeilen und Spalten hat, dann ist sie eine Quadratmatrix. Die Identitätsmatrix ist eine quadratische Matrix mit 1en auf der Diagonale und 0en überall sonst. Eine Diagonalmatrix ist eine quadratische Matrix mit Zahlen auf der Diagonalen und 0en an anderen Stellen. Ein Spaltenvektor ist nur eine Matrix mit einer Zeile, während ein Zeilenvektor nur eine Matrix mit einer Spalte ist.

Die grundlegenden Matrixoperationen sind Addition, Skalierung, Punktprodukt, Vektormultiplikation, Skalarmultiplikation, Transponierung, Umkehrung und Determinante / Spur.

  • Zwei Matrizen mit den gleichen Dimensionen können addiert werden, um eine neue, dritte Matrix zu bilden.
  • Auch kann eine Matrix von einer anderen Matrix mit den gleichen Dimensionen subtrahiert werden.
  • Zwei gleich große Matrizen können miteinander multipliziert werden, was oft als elementweise Matrixmultiplikation bezeichnet wird.
  • Eine Matrix kann durch eine andere Matrix mit den gleichen Dimensionen dividiert werden.
  • Beim Matrixpunktprodukt werden die Einträge von 2 Vektoren miteinander multipliziert und das Ergebnis addiert.
  • Eine Matrix und ein Vektor können miteinander multipliziert werden, solange die Regel der Matrixmultiplikation eingehalten wird.
  • Eine Matrix kann mit einem Skalar multipliziert werden. Das Ergebnis ist eine Matrix mit der gleichen Größe wie die Ausgangsmatrix, bei der jedes Element der Matrix mit dem Skalarwert multipliziert wird.
  • Bei einer Matrixtransponierung werden die Spalten und Zeilen einer Matrix umgedreht, so dass Zeile 1 jetzt Spalte 1 ist usw.
  • Bei einer Matrix A ist ihre Inverse A^(-1) eine solche Matrix, dass A x A^(-1) = I. Wenn A^(-1) existiert, dann ist A invertierbar oder nicht singulär. Andernfalls ist es singulär.

Maschinelles Lernen

1 – Hauptansätze

Die 3 Hauptansätze des maschinellen Lernens sind:

  • Unüberwachtes Lernen, das viel in der Computer Vision verwendet wird. Beispiele sind k-means, ICA, PCA, Gaussian Mixture Models und Deep Auto-Encoder.
  • Überwachtes Lernen, das ebenfalls häufig in der Computer Vision eingesetzt wird. Beispiele sind tiefe überwachte neuronale Netze.
  • Reinforcement Learning, das vor allem in der Robotik und bei Steuerungsproblemen eingesetzt wird. Beispiele sind Deep Q-learning und Policy-Gradient-Methoden.

Beim Reinforcement Learning sind die Spielregeln unbekannt. Es gibt keinen Supervisor, sondern nur ein Belohnungssignal mit verzögerter Rückmeldung. Die Handlungen des Agenten wirken sich auf die nachfolgenden Daten aus, die er erhält.

Beim unüberwachten Lernen geht es darum, Struktur und Bedeutung in Daten ohne Kennzeichnung zu finden. Wie bereits erwähnt, sind Beispielalgorithmen die Hauptkomponentenanalyse, k-means, die nicht-negative Matrixfaktorisierung, die unabhängige Komponentenanalyse, Gaussian Mixture Models, Latent Dirichlet Allocation und Auto-Encoder.

Beim überwachten Lernen ist die grundlegende Terminologie so, dass wir einen anfänglichen Eingaberaum x und einen anfänglichen Ausgaberaum y haben. Nachdem wir eine Reihe von Beispielen (x, y) gesehen haben, wollen wir eine Abbildung F: x -> y wählen, die das Eingabe-Ausgabe-Muster der Beispiele genau repliziert. Es gibt eine Vielzahl von Algorithmen, um verschiedene Modelle von F aus markierten Beobachtungen (Ground Truth) zu finden. Häufig werden die Lernverfahren nach ihrem Ausgaberaum kategorisiert, der entweder diskret oder kontinuierlich sein kann.

  • Der kontinuierliche Ausgaberaum wird bei Regressionsproblemen verwendet. Wenn die Eingabe zum Beispiel das Bild eines Tellers mit Lebensmitteln ist, soll die Ausgabe die Anzahl der Gesamtkalorien sein. Oder wenn die Eingabe das Gesicht einer Person ist, soll die Ausgabe das Alter dieser Person sein.
  • Im diskreten Ausgaberaum werden in der Regel Klassifikatoren erstellt. Die Ausgabe soll zum Beispiel Klasse 1, Klasse 2, Klasse 3… sein, wobei die Zahlen eine Art von sinnvoller Kategorie darstellen. Man kann sie auch als Etiketten oder Kategorien bezeichnen.

2 – Trainingsdaten und Testdaten

Trainingsdaten sind die Daten, die wir dem Klassifikator während des Trainingsprozesses geben. Dies sind die gepaarten Daten zum Lernen von f(x) = y, wobei x die Eingabe (ein Vektor von Merkmalen in R^d) und y die Ausgabe (ein Label mit Klassifizierung) ist. Während des Trainings versuchen wir, ein gutes Modell von f(x) zu finden, das die Input-Output-Beziehung der Daten nachbildet.

Testdaten werden mit einem trainierten Klassifikator verwendet, um ihn zu bewerten. Wir haben x, aber wir kennen y nicht. Normalerweise tun wir in der Forschung nur so, als hätten wir y nicht, aber in der realen Welt werden wir es wirklich nicht haben. Das trainierte System sagt y für uns voraus, und wir beurteilen, wie gut das System funktioniert.

3 – Wahrscheinlichkeiten

Anstatt eine Eingabe nur in eine von K verschiedenen Klassen zu kategorisieren, möchten wir vielleicht die Wahrscheinlichkeit jeder dieser Klassen kennen. Für jede mögliche Kategorie liefert P(C = k | x) einen Wert zwischen 0 und 1, wobei Werte, die näher an 1 liegen, bedeuten, dass der Klassifikator „denkt“, dass diese Klasse wahrscheinlich die Kategorie der Eingabe ist. Um zu klassifizieren, wollen wir den größten P(C = k | x) auswählen.

4 – Parametrische und nicht-parametrische

Parametrische Modelle beinhalten die Anpassung von Parametern. Wir wollen zum Beispiel gute Werte für die w-Vektoren für unseren linearen Klassifikator finden. Parametrische Modelle haben eine endliche Anzahl von Parametern, wobei die Anzahl der Parameter unabhängig von der Trainingsmenge ist.

Nicht-parametrische Modelle beinhalten die Speicherung der Daten und deren Verwendung. Hier hängt die Anzahl der Parameter von der Trainingsmenge ab (wie viele Daten man speichert). Genauer gesagt wächst die Anzahl der Parameter mit der Größe der Trainingsmenge.

Bewertung von Klassifizierern für maschinelles Lernen

Nach der Betrachtung einer Reihe von Beispielen (x, y) wählt das Modell eine Abbildung F: x -> y, die das Input-Output-Muster der Beispiele repliziert. Die Frage ist: Wie gut funktioniert das Modell F nach dem Training? Wir können F anhand der Trainingsdaten bewerten, aber die Leistung bei den Trainingsdaten sagt nicht wirklich etwas darüber aus, wie gut das Modell auf andere Daten verallgemeinert. Mit anderen Worten: F könnte sich die Trainingsdaten einfach merken. Daher müssen wir die Testdaten auswerten, um eine bessere Vorstellung davon zu bekommen, wie gut das Modell funktioniert.

Das einfachste Bewertungsmaß für die Klassifizierung ist die Genauigkeit, d. h. der Anteil der korrekt klassifizierten Punkte. Die Genauigkeit kann berechnet werden als die Summe der wahren Positiven und wahren Negativen, geteilt durch alle Datenpunkte. Die Fehlerrate ist einfach 1 – Genauigkeit, oder die Summe der falsch positiven und falsch negativen Ergebnisse, geteilt durch alle Datenpunkte.

Um die Genauigkeit zu implementieren, ist es am besten, die Vorhersagen für jeden Testvektor x_t zu speichern. Wenn man also insgesamt T Vektoren zu testen hat, erhält man einen T-dimensionalen Vektor mit all seinen Vorhersagen und vergleicht ihn dann einfach mit der Grundwahrheit. Man könnte die Wahrscheinlichkeiten auch speichern, um andere Metriken zu berechnen, aber das kann viel Speicherplatz erfordern, wenn man viele Klassen hat.

1 – Konfusionsmatrix

Eine Konfusionsmatrix ist ein spezielles Tabellenlayout, das die Visualisierung der Leistung eines Algorithmus ermöglicht, typischerweise eines überwachten Lernalgorithmus. Jede Zeile der Matrix stellt die Instanzen in einer vorhergesagten Klasse dar, während jede Spalte die Instanzen in einer tatsächlichen Klasse darstellt. So können Sie sehen, welche Klassen am häufigsten verwechselt werden. Eine „starke“ Diagonale zeigt eine gute Leistung an. In einer normalisierten Konfusionsmatrix werden die Zeilen so normalisiert, dass die Summe 1 ergibt.

2 – Präzision und Rückgewinnung

Präzision ist die Anzahl der korrekt klassifizierten positiven Beispiele geteilt durch die Gesamtzahl der als positiv klassifizierten Beispiele. Recall ist die Anzahl der richtig klassifizierten positiven Beispiele geteilt durch die Gesamtzahl der tatsächlich positiven Beispiele im Testsatz. Precision-Recall ist eine dominante Metrik bei der Objekterkennung und ist besonders nützlich, wenn die Kategorien unausgewogen sind. Eine hohe Präzision bedeutet, dass ein Algorithmus wesentlich mehr relevante als irrelevante Ergebnisse liefert, während ein hoher Recall bedeutet, dass ein Algorithmus die meisten relevanten Ergebnisse liefert.

3 – Klassifikatorschwellen

Oftmals hat ein Klassifikator einen Vertrauenswert in jeder Kategorie. Diese werden meist von probabilistischen Klassifikatoren erzeugt. Manchmal werden für die Wahrscheinlichkeitswerte Schwellenwerte festgelegt. In der Computer Vision kommt dies häufig bei der Erkennung vor. Der optimale Schwellenwert hängt von der jeweiligen Aufgabe ab. Einige Leistungsmetriken reagieren empfindlich auf den Schwellenwert. Indem man den Wert des Schwellenwerts vom Minimum zum Maximum (von 0 bis 1) ändert, kann man eine Kurve zeichnen (ROC- und Precision-Recall-Kurven).

Modellleistung

1 – Überanpassung & Unteranpassung

Eine Überanpassung des Klassifikators F an die Daten liegt vor, wenn die Trainingsleistung viel größer ist als die Testleistung. Andererseits passt F nicht zu den Daten, wenn er nicht leistungsfähig genug ist, um die Input-Output-Beziehung zu modellieren.

2 – Modellkapazität

Modellkapazität bezieht sich auf die Anzahl der Parameter. Eine größere Kapazität bedeutet im Allgemeinen, dass Sie mehr Trainingsdaten benötigen, um das Modell zu trainieren, da sonst die Gefahr einer Überanpassung besteht. Andererseits bedeutet eine niedrige Kapazität wahrscheinlich, dass die Trainingsdaten deutlich unterdurchschnittlich angepasst werden.

Besonders bei neuronalen Netzen bedeuten mehr Neuronen mehr Kapazität. Eine gute Analogie ist, dass ein linearer Klassifikator eine sehr geringe Kapazität hat und ein tiefes neuronales Netz eine große Kapazität. Bei mehr Trainingsdaten gewinnt das komplexere Modell. Klassifizierer mit einem größeren Modell können komplexe Entscheidungsgrenzen erstellen, aber zu komplex kann ein schlechtes Modell für die Testdaten sein, insbesondere wenn die Daten begrenzt sind.

3 – Probenkomplexität

Die Probenkomplexität ist die Anzahl der Trainingsproben, die wir dem Lernalgorithmus zur Verfügung stellen müssen, damit die vom Algorithmus zurückgegebene Funktion innerhalb eines willkürlich kleinen Fehlers der bestmöglichen Funktion liegt (train und test). Algorithmen mit größerer Modellkapazität haben in der Regel eine schlechtere Stichprobenkomplexität, da sie mehr Parameter anpassen müssen und bei unzureichenden Trainingsdaten zu einer Überanpassung neigen. In diesen Fällen können Regularisierungstechniken helfen.

Wenn Sie an diesem Material interessiert sind, folgen Sie der Veröffentlichung „Cracking Data Science Interview“, um meine nachfolgenden Artikel darüber zu erhalten, wie man den Data Science Interview-Prozess knackt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.