Maybaygiare.org

Blog Network

Grundlegende lineare Algebra für Deep Learning

  • Einführung
  • Mathematische Objekte
  • Rechenregeln
  • Matrixmultiplikationseigenschaften
  • Inverse und Transponieren
  • Zusammenfassung
  • Ressourcen

Einführung

Die lineare Algebra ist eine kontinuierliche Form der Mathematik und wird in Wissenschaft und Technik angewendet, da Sie es Ihnen ermöglicht, Naturphänomene zu modellieren und berechnen Sie sie effizient. Da es sich um eine Form kontinuierlicher und nicht diskreter Mathematik handelt, haben viele Informatiker nicht viel Erfahrung damit. Die lineare Algebra ist auch für fast alle Bereiche der Mathematik wie Geometrie und Funktionsanalyse von zentraler Bedeutung. Seine Konzepte sind eine entscheidende Voraussetzung für das Verständnis der Theorie des maschinellen Lernens, insbesondere wenn Sie mit Deep-Learning-Algorithmen arbeiten. Sie müssen die lineare Algebra nicht verstehen, bevor Sie mit dem maschinellen Lernen beginnen, aber irgendwann möchten Sie vielleicht besser verstehen, wie die verschiedenen Algorithmen des maschinellen Lernens wirklich unter der Haube funktionieren. Dies wird Ihnen helfen, bessere Entscheidungen während der Entwicklung eines maschinellen Lernsystems zu treffen. Wenn Sie also wirklich ein Profi auf diesem Gebiet sein wollen, müssen Sie die Teile der linearen Algebra beherrschen, die für das maschinelle Lernen wichtig sind. In der linearen Algebra werden Daten durch lineare Gleichungen dargestellt, die in Form von Matrizen und Vektoren dargestellt werden. Daher handelt es sich hauptsächlich um Matrizen und Vektoren und nicht um Skalare (wir werden diese Begriffe im folgenden Abschnitt behandeln). Wenn Sie über die richtigen Bibliotheken wie Numpy verfügen, können Sie die komplexe Matrixmultiplikation mit nur wenigen Codezeilen sehr einfach berechnen. (Beachten: dieser Blogbeitrag ignoriert Konzepte der linearen Algebra, die für das maschinelle Lernen nicht wichtig sind.)

Mathematische Objekte

Skalar

Ein Skalar ist einfach eine einzelne Zahl. Zum Beispiel 24.

Vektor

Ein Vektor ist ein geordnetes Array von Zahlen und kann in einer Zeile oder einer Spalte stehen. Ein Vektor hat nur einen einzigen Index, der auf einen bestimmten Wert innerhalb des Vektors zeigen kann. Beispielsweise bezieht sich V2 auf den zweiten Wert innerhalb des Vektors, der in der obigen Grafik -8 ist.

Matrix

Eine Matrix ist ein geordnetes 2D-Array von Zahlen und hat zwei Indizes. Der erste zeigt auf die Zeile und der zweite auf die Spalte. Beispielsweise bezieht sich M23 auf den Wert in der zweiten Zeile und der dritten Spalte, der in der gelben Grafik oben 8 ist. Eine Matrix kann mehrere Zeilen und Spalten enthalten. Beachten Sie, dass ein Vektor auch eine Matrix ist, jedoch nur eine Zeile oder eine Spalte enthält.

Die Matrix im Beispiel in der gelben Grafik ist ebenfalls eine 2- mal 3-dimensionale Matrix (Zeilen x Spalten). Unten sehen Sie ein weiteres Beispiel einer Matrix zusammen mit ihrer Notation:

Tensor

Sie können sich einen Tensor als ein Array von Zahlen vorstellen, die in einem regulären Raster mit einer variablen Anzahl von Achsen angeordnet sind. Ein Tensor hat drei Indizes, wobei der erste auf die Zeile, der zweite auf die Spalte und der dritte auf die Achse zeigt. Beispielsweise zeigt T232 auf die zweite Zeile, die dritte Spalte und die zweite Achse. Dies bezieht sich auf den Wert 0 im rechten Tensor in der folgenden Grafik:

Tensor ist der allgemeinste Begriff für alle oben genannten Konzepte, da ein Tensor ein mehrdimensionales Array ist und je nach Anzahl der Indizes ein Vektor und eine Matrix sein kann. Zum Beispiel wäre ein Tensor erster Ordnung ein Vektor (1 Index). Ein Tensor zweiter Ordnung ist eine Matrix (2 Indizes) und Tensoren dritter Ordnung (3 Indizes) und höher werden Tensoren höherer Ordnung (3 oder mehr Indizes) genannt.

Matrix-Skalaroperationen

Wenn Sie einen Skalar multiplizieren, dividieren, subtrahieren oder zu einer Matrix hinzufügen, tun Sie dies mit jedem Element der Matrix. Das Bild unten veranschaulicht dies perfekt für die Multiplikation:

Matrix-Vektor-Multiplikation

Das Multiplizieren einer Matrix mit einem Vektor kann als Multiplikation jeder Zeile der Matrix mit der Spalte des Vektors angesehen werden. Die Ausgabe wird ein Vektor sein, der die gleiche Anzahl von Zeilen wie die Matrix hat. Das Bild unten zeigt, wie das funktioniert:

erstehen Sie das Konzept, werden wir durch die Berechnung des zweiten Bildes gehen. Um den ersten Wert des resultierenden Vektors (16) zu erhalten, nehmen wir die Zahlen des Vektors, den wir mit der Matrix (1 und 5) multiplizieren möchten, und multiplizieren sie mit den Zahlen der ersten Zeile der Matrix (1 und 3). Das sieht so aus:

1*1 + 3*5 = 16

Wir machen dasselbe für die Werte in der zweiten Zeile der Matrix:

4*1 + 0*5 = 4

Und wieder für die dritte Zeile der Matrix:

2*1 + 1*5 = 7

Hier ein weiteres Beispiel:

And here is a kind of cheat sheet:

Matrix-Matrix Addition and Subtraction

Matrix-Matrix Addition and Subtraction is fairly easy and straightforward. Die Anforderung ist, dass die Matrizen die gleichen Abmessungen haben und das Ergebnis eine Matrix ist, die ebenfalls die gleichen Abmessungen hat. Sie addieren oder subtrahieren einfach jeden Wert der ersten Matrix mit dem entsprechenden Wert in der zweiten Matrix. Siehe unten:

Matrix-Matrixmultiplikation

Das Multiplizieren von zwei Matrizen ist auch nicht so schwierig, wenn Sie wissen, wie man eine Matrix mit einem Vektor multipliziert. Beachten Sie, dass Sie Matrizen nur dann miteinander multiplizieren können, wenn die Anzahl der Spalten der ersten Matrix mit der Anzahl der Zeilen der zweiten Matrix übereinstimmt. Das Ergebnis ist eine Matrix mit der gleichen Anzahl von Zeilen wie die erste Matrix und der gleichen Anzahl von Spalten wie die zweite Matrix. Es funktioniert wie folgt:

Sie teilen einfach die zweite Matrix in Spaltenvektoren auf und multiplizieren die erste Matrix separat mit jedem dieser Vektoren. Dann fügen Sie die Ergebnisse in eine neue Matrix ein (ohne sie zu addieren!). Das Bild unten erklärt dies Schritt für Schritt:

And here is again some kind of cheat sheet:

Matrix Multiplication Properties

Matrix Multiplication has several properties that allow us to bundle a lot of computation into one Matrix multiplication. We will discuss them one by one below. Wir beginnen damit, diese Konzepte mit Skalaren und dann mit Matrizen zu erklären, da dies Ihnen ein besseres Verständnis des Prozesses vermittelt.

Nicht kommutativ

Die Skalarmultiplikation ist kommutativ, die Matrixmultiplikation jedoch nicht. Dies bedeutet, dass 7 * 3 beim Multiplizieren von Skalaren dasselbe ist wie 3 * 7. Aber wenn wir Matrizen miteinander multiplizieren, ist A*B nicht dasselbe wie B*A.

Assoziativ

Skalar- und Matrixmultiplikation sind beide assoziativ. Dies bedeutet, dass die Skalarmultiplikation 3(5*3) gleich (3*5)3 ist und dass die Matrixmultiplikation A(B*C) gleich (A*B)C ist.

Distributiv

Skalar- und Matrixmultiplikation sind ebenfalls beide distributiv. Dies bedeutet, dass
3(5 + 3) dasselbe ist wie 3*5 + 3*3 und dass A(B+C) dasselbe ist wie A*B + A*C.

Identitätsmatrix

Die Identitätsmatrix ist eine spezielle Art von Matrix, aber zuerst müssen wir definieren, was eine Identität ist. Die Zahl 1 ist eine Identität, weil alles, was Sie mit 1 multiplizieren, gleich sich selbst ist. Daher ist jede Matrix, die mit einer Identitätsmatrix multipliziert wird, gleich sich selbst. Zum Beispiel ist die Matrix A mal ihre Identitätsmatrix gleich A.

Sie können eine Identitätsmatrix daran erkennen, dass sie entlang ihrer Diagonalen Einsen hat und dass jeder andere Wert Null ist. Es ist auch eine „quadratische Matrix“, was bedeutet, dass die Anzahl der Zeilen der Anzahl der Spalten entspricht.

iskutiert, dass Matrixmultiplikation nicht kommutativ ist, aber es gibt eine Ausnahme, nämlich wenn wir eine Matrix mit einer Identitätsmatrix multiplizieren. Daher gilt die folgende Gleichung: A*I = I*A = A

Inverse und Transponieren

Die Matrixinverse und die Matrixtransponieren sind zwei spezielle Arten von Matrixeigenschaften. Auch hier werden wir zunächst diskutieren, wie sich diese Eigenschaften auf reelle Zahlen und dann auf Matrizen beziehen.

Inverse

Zunächst einmal, was ist eine inverse? Eine Zahl, die mit ihrer Umkehrung multipliziert wird, ist gleich 1. Beachten Sie, dass jede Zahl außer 0 eine Inverse hat. Wenn Sie eine Matrix mit ihrer Inversen multiplizieren, ist das Ergebnis ihre Identitätsmatrix. Das folgende Beispiel zeigt, wie die Umkehrung der Skalare aussieht:

Matrix hat eine inverse. Sie können die Inverse einer Matrix berechnen, wenn es sich um eine „quadratische Matrix“ handelt und wenn sie eine Inverse hat. Zu diskutieren, welche Matrizen eine Inverse haben, würde leider nicht in den Anwendungsbereich dieses Beitrags fallen.

Warum brauchen wir eine Inverse? Weil wir Matrizen nicht teilen können. Es gibt kein Konzept der Division durch eine Matrix, aber wir können eine Matrix mit einer Inversen multiplizieren, was im Wesentlichen zu derselben Sache führt.

Das Bild unten zeigt eine Matrix multipliziert mit ihrer Inversen, was zu einer 2-mal-2-Identitätsmatrix führt.

Sie können berechnen Sie einfach die Umkehrung einer Matrix (falls vorhanden) mit Numpy . Hier ist der Link zur Dokumentation: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html .

Transponieren

Und schließlich werden wir die Matrix-Transponierungseigenschaft diskutieren. Dies ist im Grunde das Spiegelbild einer Matrix entlang einer 45-Grad-Achse. Es ist ziemlich einfach, die Transponierung einer Matrix zu erhalten. Seine erste Spalte ist die erste Zeile der Matrixtransponierung und die zweite Spalte ist die zweite Zeile der Matrixtransponierung. Eine m * n-Matrix wird in eine n * m-Matrix umgewandelt. Außerdem ist das Aij-Element von A gleich dem Aji-Element (Transponieren). Das Bild unten zeigt, dass:

Zusammenfassung

In diesem Beitrag lernten Sie die mathematischen Objekte der linearen Algebra kennen, die im maschinellen Lernen verwendet werden. Sie haben gelernt, diese mathematischen Objekte zu multiplizieren, zu dividieren, zu addieren und zu subtrahieren. Darüber hinaus haben Sie die wichtigsten Eigenschaften von Matrizen kennengelernt und warum sie uns ermöglichen, effizientere Berechnungen durchzuführen. Darüber hinaus haben Sie gelernt, was inverse und transponierte Matrizen sind und was Sie damit machen können. Obwohl es auch andere Teile der linearen Algebra gibt, die im maschinellen Lernen verwendet werden, gab Ihnen dieser Beitrag eine angemessene Einführung in die wichtigsten Konzepte.

Ressourcen

Deep Learning (Buch) — Ian Goodfellow, Joshua Bengio, Aaron Courville

Linear Algebra for Machine Learning

Andrew Ngs Maschineller Lernkurs auf Coursera

https://en.wikipedia.org/wiki/Linear_algebra

https://www.mathsisfun.com/algebra/scalar-vector-matrix.html

https://www.quantstart.com/articles/scalars-vectors-matrices-and-tensors-linear-algebra-for-deep-learning-part-1

Understanding Scalar and Vector Quantities

Dieser Beitrag wurde ursprünglich auf meinem Blog veröffentlicht (https://machinelearning-blog.com).

Schreibe einen Kommentar

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