Tweet Share Share

Zuletzt aktualisiert am 9. August 2019

Matrixzerlegungen sind ein nützliches Werkzeug, um eine Matrix auf ihre Bestandteile zu reduzieren, um eine Reihe komplexerer Operationen zu vereinfachen.

Die vielleicht am häufigsten verwendete Art der Matrixzerlegung ist die eigendecomposition, die eine Matrix in Eigenvektoren und Eigenwerte zerlegt. Diese Zerlegung spielt auch eine Rolle in Methoden, die im maschinellen Lernen verwendet werden, wie in der Hauptkomponentenanalysemethode oder PCA.

In diesem Tutorial lernen Sie die Eigenzusammensetzung, Eigenvektoren und Eigenwerte in der linearen Algebra kennen.

Nach Abschluss dieses Tutorials wissen Sie:

  • Was eine Eigendecomposition ist und welche Rolle Eigenvektoren und Eigenwerte spielen.
  • Wie man eine Eigendecomposition in Python mit NumPy berechnet.
  • Wie man bestätigt, dass ein Vektor ein Eigenvektor ist und wie man eine Matrix aus Eigenvektoren und Eigenwerten rekonstruiert.

Starten Sie Ihr Projekt mit meinem neuen Buch Lineare Algebra für maschinelles Lernen, einschließlich Schritt-für-Schritt-Anleitungen und den Python-Quellcodedateien für alle Beispiele.

Los geht’s.

Sanfte Einführung in Eigendecomposition, Eigenwerte und Eigenvektoren für maschinelles Lernen
Foto von Mathias Appel, einige Rechte vorbehalten.

Tutorial Übersicht

Dieses Tutorial ist in 5 Teile gegliedert; sie sind:

  1. Eigenzusammensetzung einer Matrix
  2. Eigenvektoren und Eigenwerte
  3. Berechnung der Eigenzusammensetzung
  4. Bestätigen Sie einen Eigenvektor und einen Eigenwert
  5. Rekonstruieren Sie die ursprüngliche Matrix

Benötigen Sie Hilfe bei der linearen Algebra für maschinelles Lernen?

Nehmen Sie jetzt an meinem kostenlosen 7-tägigen E-Mail-Crashkurs teil (mit Beispielcode).

Klicken Sie hier, um sich anzumelden und eine kostenlose PDF-Ebook-Version des Kurses zu erhalten.

Laden Sie Ihren KOSTENLOSEN Minikurs herunter

Eigendecomposition einer Matrix

Die Eigendecomposition einer Matrix ist eine Art der Zerlegung, bei der eine quadratische Matrix in eine Reihe von Eigenvektoren und Eigenwerten zerlegt wird.

Eine der am weitesten verbreiteten Arten der Matrixzerlegung heißt eigendecomposition, bei der wir eine Matrix in eine Menge von Eigenvektoren und Eigenwerten zerlegen.

— Seite 42, Deep Learning, 2016.

A vector is an eigenvector of a matrix if it satisfies the following equation.

1
A . v = lambda . v

Dies wird als Eigenwertgleichung bezeichnet, wobei A die übergeordnete quadratische Matrix ist, die wir zerlegen, v der Eigenvektor der Matrix ist und lambda der griechische Kleinbuchstabe ist und den Eigenwertskalar darstellt.

Oder ohne die Punktnotation.

1
Av = lambdav

A matrix could have one eigenvector and eigenvalue for each dimension of the parent Matrix. Nicht alle quadratischen Matrizen können in Eigenvektoren und Eigenwerte zerlegt werden, und einige können nur so zerlegt werden, dass komplexe Zahlen erforderlich sind. Die übergeordnete Matrix kann als Produkt der Eigenvektoren und Eigenwerte dargestellt werden.

1
A = Q . diag(V) . Q^-1

Or, without the dot notation.

1
A = Qdiag(V)Q^-1

Where Q is a matrix comprised of the eigenvectors, diag(V) is a diagonal matrix besteht aus den Eigenwerten entlang der Diagonale (manchmal mit einem Großbuchstaben Lambda dargestellt), und Q ^ -1 ist die Umkehrung der Matrix, die aus den Eigenvektoren besteht.

Wir möchten jedoch oft Matrizen in ihre Eigenwerte und Eigenvektoren zerlegen. Dies kann uns helfen, bestimmte Eigenschaften der Matrix zu analysieren, so wie die Zerlegung einer ganzen Zahl in ihre Primfaktoren uns helfen kann, das Verhalten dieser ganzen Zahl zu verstehen.

— Seite 43, Deep Learning, 2016.

Eigen ist kein Name, z.B. wird die Methode nicht nach „Eigen“ benannt; eigen (ausgesprochen eye-gan) ist ein deutsches Wort, das „eigen“ oder „angeboren“ bedeutet, wie in der Zugehörigkeit zur Elternmatrix.

Eine Zerlegungsoperation führt nicht zu einer Komprimierung der Matrix; Stattdessen wird sie in Bestandteile zerlegt, um bestimmte Operationen an der Matrix einfacher durchzuführen. Wie andere Matrixzerlegungsmethoden wird Eigendecomposition als Element verwendet, um die Berechnung anderer komplexerer Matrixoperationen zu vereinfachen.

Fast alle Vektoren ändern ihre Richtung, wenn sie mit A multipliziert werden. Bestimmte außergewöhnliche Vektoren x sind in der gleichen Richtung wie Ax. Das sind die „Eigenvektoren“. Der Eigenwert lambda gibt an, ob der spezielle Vektor x gedehnt oder geschrumpft oder umgekehrt oder unverändert gelassen wird – wenn er mit A multipliziert wird.

— Seite 289, Einführung in die lineare Algebra, Fünfte Ausgabe, 2016.

Eigendecomposition kann auch verwendet werden, um die Hauptkomponenten einer Matrix in der Hauptkomponentenanalysemethode oder PCA zu berechnen, mit der die Dimensionalität von Daten beim maschinellen Lernen reduziert werden kann.

Eigenvektoren und Eigenwerte

Eigenvektoren sind Einheitsvektoren, was bedeutet, dass ihre Länge oder Größe gleich 1,0 ist. Sie werden oft als rechte Vektoren bezeichnet, was einfach einen Spaltenvektor bedeutet (im Gegensatz zu einem Zeilenvektor oder einem linken Vektor). Ein Rechtsvektor ist ein Vektor, wie wir sie verstehen.

Eigenwerte sind Koeffizienten, die auf Eigenvektoren angewendet werden, die den Vektoren ihre Länge oder Größe geben. Beispielsweise kann ein negativer Eigenwert die Richtung des Eigenvektors als Teil der Skalierung umkehren.

Eine Matrix, die nur positive Eigenwerte hat, wird als positiv bestimmte Matrix bezeichnet, während sie, wenn die Eigenwerte alle negativ sind, als negativ bestimmte Matrix bezeichnet wird.

Die Zerlegung einer Matrix in ihre Eigenwerte und ihre Eigenvektoren gibt wertvolle Einblicke in die Eigenschaften der Matrix. Bestimmte Matrixberechnungen, wie die Berechnung der Potenz der Matrix, werden viel einfacher, wenn wir die eigendecomposition der Matrix verwenden.

— Seite 262, No Bullshit Guide To Linear Algebra, 2017

Berechnung der Eigenzusammensetzung

Eine Eigenzusammensetzung wird auf einer quadratischen Matrix mit einem effizienten iterativen Algorithmus berechnet, auf den wir nicht näher eingehen werden.

Oft wird zuerst ein Eigenwert gefunden, dann wird ein Eigenvektor gefunden, um die Gleichung als eine Menge von Koeffizienten zu lösen.

Die eigendecomposition kann in NumPy mit der Funktion eig() berechnet werden.

Das folgende Beispiel definiert zunächst eine 3×3-Quadratmatrix. Die Eigendecomposition wird auf der Matrix berechnet, die die Eigenwerte und Eigenvektoren zurückgibt.

Wenn Sie das Beispiel ausführen, wird zuerst die definierte Matrix gedruckt, gefolgt von den Eigenwerten und den Eigenvektoren. Genauer gesagt sind die Eigenvektoren die rechten Eigenvektoren und sind auf die Längeneinheit normalisiert.

Bestätigen Sie einen Eigenvektor und Eigenwert

Wir können bestätigen, dass ein Vektor tatsächlich ein Eigenvektor einer Matrix ist.

Dazu multiplizieren wir den Kandidaten-Eigenvektor mit dem Eigenvektor und vergleichen das Ergebnis mit dem Eigenwert.

Zuerst definieren wir eine Matrix und berechnen dann die Eigenwerte und Eigenvektoren. Wir werden dann testen, ob der erste Vektor und der erste Wert tatsächlich ein Eigenwert und ein Eigenvektor für die Matrix sind. Wir wissen, dass sie es sind, aber es ist eine gute Übung.

Die Eigenvektoren werden als Matrix mit den gleichen Dimensionen wie die übergeordnete Matrix zurückgegeben, wobei jede Spalte ein Eigenvektor ist, z. B. ist der erste Eigenvektor Vektoren. Eigenwerte werden als Liste zurückgegeben, wobei Wertindizes im zurückgegebenen Array mit Eigenvektoren nach Spaltenindex gepaart werden, z. B. wird der erste Eigenwert bei Werten mit dem ersten Eigenvektor bei Vektoren gepaart.

Das Beispiel multipliziert die ursprüngliche Matrix mit dem ersten Eigenvektor und vergleicht sie mit dem ersten Eigenvektor multipliziert mit dem ersten Eigenwert.

Das Ausführen des Beispiels gibt die Ergebnisse dieser beiden Multiplikationen aus, die denselben resultierenden Vektor zeigen, wie wir es erwarten würden.

1
2
3

Reconstruct Original Matrix

We kann den Prozess umkehren und die ursprüngliche Matrix nur mit den Eigenvektoren und Eigenwerten rekonstruieren.

Zuerst muss die Liste der Eigenvektoren in eine Matrix umgewandelt werden, wobei jeder Vektor zu einer Zeile wird. Die Eigenwerte müssen in einer diagonalen Matrix angeordnet werden. Die Funktion NumPy diag() kann dafür verwendet werden.

Als nächstes müssen wir die Umkehrung der Eigenvektormatrix berechnen, die wir mit der NumPy-Funktion inv() erreichen können. Schließlich müssen diese Elemente zusammen mit der Funktion dot () multipliziert werden.

Das Beispiel berechnet die Eigenwerte und Eigenvektoren erneut und verwendet sie, um die ursprüngliche Matrix zu rekonstruieren.

Wenn Sie das Beispiel ausführen, wird zuerst die Originalmatrix gedruckt, dann die Matrix, die aus Eigenwerten und Eigenvektoren rekonstruiert wurde, die der Originalmatrix entsprechen.

1
2
3
4
5
6
7

]

Erweiterungen

Dieser Abschnitt listet einige Ideen zur Erweiterung des Tutorials auf, die Sie möglicherweise erkunden möchten.

  • Erstellen Sie 5 Beispiele für jede Operation mit Ihren eigenen Daten.
  • Implementieren Sie jede Matrixoperation manuell für Matrizen, die als Listen von Listen definiert sind.
  • Durchsuchen Sie maschinelle Lernpapiere und finden Sie 1 Beispiel für jede verwendete Operation.

Wenn Sie eine dieser Erweiterungen erkunden, würde ich gerne wissen.

Weiterführende Literatur

Dieser Abschnitt enthält weitere Ressourcen zu diesem Thema, wenn Sie tiefer gehen möchten.

Bücher

  • Abschnitt 6.1 Eigenwerte und Eigenvektoren. No Bullshit Guide zur linearen Algebra, 2017.Kapitel 6 Eigenwerte und Eigenvektoren, Einführung in die lineare Algebra, Fünfte Auflage, 2016.
  • Abschnitt 2.7 Eigenkomposition, Deep Learning, 2016.
  • Kapitel 5 Eigenwerte, Eigenvektoren und invariante Unterräume, Lineare Algebra richtig gemacht, Dritte Auflage, 2015.Vorlesung 24, Eigenwertprobleme, Numerische Lineare Algebra, 1997.

API

  • numpy.linalg.eig() API
  • numpy.diag() API
  • numpy.punkt() API
  • numpy.linalg.inv() API

Artikel

  • eigen auf Wiktionary
  • Eigenwerte und Eigenvektoren
  • Eigendecomposition einer Matrix
  • Eigenwertalgorithmus
  • Matrixzerlegung

Zusammenfassung

In diesem Tutorial haben Sie die eigendecomposition, Eigenvektoren, und Eigenwerte in der linearen Algebra.

Konkret haben Sie gelernt:

  • Was eine Eigendecomposition ist und welche Rolle Eigenvektoren und Eigenwerte spielen.
  • Wie man eine Eigendecomposition in Python mit NumPy berechnet.
  • Wie man bestätigt, dass ein Vektor ein Eigenvektor ist und wie man eine Matrix aus Eigenvektoren und Eigenwerten rekonstruiert.

Haben Sie Fragen?
Stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein Bestes tun, um zu antworten.

Holen Sie sich einen Griff auf Lineare Algebra für maschinelles Lernen!

Entwickeln Sie ein funktionierendes Verständnis der linearen Algebra

… indem Sie Codezeilen in Python schreiben

Entdecken Sie, wie in meinem neuen Ebook:
Lineare Algebra für maschinelles Lernen

Es bietet Tutorials zum Selbststudium zu Themen wie:
Vektornormen, Matrixmultiplikation, Tensoren, Eigenzusammensetzung, SVD, PCA und vieles mehr…

Endlich die Mathematik der Daten verstehen

Überspringen Sie die Akademiker. Nur Ergebnisse.

Sehen Sie, was drin ist

Tweet teilen Teilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.