hintergrund

Machine Learning Grundlagen: Algebra

Algebra ist die Sprache von Machine – und Deep Learning. In diesem Tutorial werden die wichtigsten algebraischen Operationen für Matrizen und Vektoren ausführlich behandelt. Insbesondere werden viele numerische Beispiele aufgeführt, um das Verständnis zu festigen.


1. Matrix Addition

Die erste wichtige algebraische Operation ist die Matrixaddition, bei der zwei Matrizen miteinander addiert werden. Diese Operation ist sehr intuitiv.

Sehen wir uns zwei Matrizen A,B \in \mathbb{R}^{m \times n} der Größe m  \times  n an:

Matrizen A und B
Abb. 1 Zwei Matrizen A und B.

Für diese zwei Matrizen ist es möglich eine Matrix C = A + B als die Summe der Matrizen A und B zu definieren. Für jeden Eintrag c_{ij} \iin C gilt: c_{ij} = a_{ij} + b_{ij}. Damit lautet die Definition für die Summation C = A +B wie folgt:

Summation von zwei Matrizen A und B.
Gl. 1 Summation von zwei Matrizen A und B.

Das bedeutet, die Matrix C wird durch elementweise Addieren der jeweiligen Einträge a_{ij} \in A und b_{ij} \in B konstruiert. Dies Summenoperation zwischen zwei Matrizen A und B kann nur dann durchgeführt werden, wenn A und B die gleiche Größe aufweisen. Das bedeutet, dass die Matrizen die gleiche Anzahl von Reihen und Spalten aufweisen müssen Die Definition der Summation der Matrizen A und B impliziert, dass die Matrix C am Ende die gleiche Größe m \times n aufweisen muss.

Die Matrix-Addition ist kommutativ. Das bedeutet, dass die Reihenfolge der Summanden spielt für das Ergebnis keine Rollen. Es gilt:

Matrix-Addition ist kommutativ.
Gl. 2 Matrix-Addition ist kommutativ.

Die Operation ist außerdem assoziativ. Es gilbt:

Matrix-Addition ist assoziativ.
Gl. 3 Matrix-Addition ist assoziativ.

Beide Eigenschaften ergeben sich aus der Tatsache, dass die Addition von Matrizen eigentlich nur elementweise Addition von Skalaren ist und diese Operation selbst kommutativ und assoziativ ist.


2. Matrix-Transponierung

Um bestimmte Operationen auf Matrizen und Vektoren zu definieren, ist es erforderlich, zuerst die Transponierte einer Matrix zu definieren.

Die Transponierte einer Matrix \A in \mathbb{R}^{m \times n} wird mit A^{T} bezeichnet. Dabei gilt A^{T} \in   \mathbb{R}^{n \times m}. Bei der Transponierung von A wird damit die Dimensionen n und m vertauscht. In anderen Worten: Bei der Transponierung einer Matrix vertauschen wir einfach die Reihen und Spalten.

Im folgenden Beispiel sehen Sie ein Beispiel für eine Matrix A und ihre Transponierte A^T:

Abb. 2 Tranponierung der Matrix A.

Die allgemeine mathematisch Darstellung der Transponierten einer Matrix A:

Allgemeine Def. einer Matrix A.
Abb. 3 Allgemeine Def. einer Matrix A.

ist damit gegeben durch:

Allgemeine Def. der Transponierten einer Matrix A.
Abb. 4 Allgemeine Def. der Transponierten einer Matrix A.

Während die Matrix A m Reihen und n Spalten aufweist, hat die Transponierte A^T n Reihen und m Spalten. Außerdem sind die Indizes i und j der jeweiligen Einträge in den Matrizen vertauscht.

Tatsächlich können wir nicht nur Matrizen, sondern auch Vektoren transponieren. Das Vorgehen ist analog zu der Transponierung einer Matrix. Dabei wird aus einem Zeilenvektor ein Reihenvektor und umgekert. Hier ein konkretes Beispiel:

Abb. 5 Transponierung eines Vektors x.

Bitte beachtet Sie, dass A^T nicht bedeutet, dass A mit sich selbst T-mal multipliziert wird. Um das T handelt es sich nicht um einen Exponenten, sondern nur um das Symbol, dass die Matrix als transponiert kennzeichnet. 


Willst Du einen Job in Data Science und AI?

Gerade als Quereinsteiger oder kompletter Berufseinsteiger ist es mittlerweile nahezu unmöglich, einen Job im Bereich AI/Data Science zu ergattern.

Mittlerweile gibt es durchschnittlich einhundert Bewerber auf jede Stelle und es kommt mir so vor, als hätte jeder, der sich bewirbt, bereits mehrere Online-Kurse zum Thema Data Science absolviert und ein halbes Dutzend Zertifikate vorzuweisen.

Ohne aus dieser großen Masse an Kandidaten herauszustechen, landet die Bewerbung schnell im virtuellen Mülleimer.

Als Teamleiter im Bereich KI/Data Science habe ich im Laufe der Jahre Bewerbungen von Hunderten von Kandidaten gesehen. Ich weiß, worauf es ankommt.

Ein Quereinsteiger oder Berufseinsteiger ohne nennenswerte Erfahrung hat nur eine Chance, den Job zu bekommen: mit einem umfangreichen Data-Science-Portfolio, das perfekt auf die ausgeschriebene Stelle zugeschnitten ist. Damit überzeugst du die HR und die Entscheidungsträger warum gerade Du der richte Kandidat für die Stelle bist.

Ich unterstütze dich persönlich dabei, ein maßgeschneidertes Data-Science-Projektportfolio zu entwickeln und umzusetzen, das genau auf deine Wunschstelle zugeschnitten ist.

Interesse? Dann, trage unten deinen Namen und Email ein und ich melde mich bei dir mit weiteren Informationen.


3. Spezialformen von Matrizen und Vektoren

An dieser Stelle möchte ich Ihnen kurz die unterschiedlichen Arten von Matrizen vorstellen.

3.1 Quadratische Matrizen

Da wäre zum Beispiel die quadratische Matrix. Eine quadratische Matrix ist eine Matrix, die die gleiche Anzahl von Reihen und Spalten aufweist:

Quadratusche Matrix.
Abb. 6 Quadratusche Matrix.

3.2 Diagonalmatrix

Eine weitere Art von Matrizen ist eine Diagonalmatrix. Eine Diagonalmatrix stellt eine quadratische Matrix dar, in der die Einträge außerhalb der Hauptdiagonale alle Null sind. Hier ist ein Beispiel einer A \in \mathbb{R}^{m \times m} Diagonalmatrix:

Diagonalmatrix
Abb. 7 Diagonalmatrix.

3.3 Einheitsmatrix

Ein Spezialfall der Diagonalmatrix ist die sogenannte Einheitsmatrix. In dieser Matrix sind die Einträge der Hauptdiagonalen alle 1:

Einheitsmatrix.
Abb. 8 Einheitsmatrix.

Eine Eigenschaft der Einheitsmatrix ist, dass das Produkt zwischen der Einheitsmatrix und einem Vektor, wieder den gleichen Vektor ergibt:

Die Diagonalmatrix, die normalerweise mit einem I abgekürzt wird, wird häufig in der linearen Algebra als ein Hilfswerkzeug bei der Herleitung von einigen Theorem verwendet. Der Grund dafür ist, dass mit der Einheitsmatrix einige mathematische „Tricks“ möglich werden. Aber das wird an dieser Stelle erstmal nicht diskutiert.

3.4 Symmetrische Matrix

Symmetrische Matrix stellt wiederum eine quadratische Matrix, dar. Die Einträge einer symmetrischen Matrix sind bezüglich der Hauptdiagonale symmetrisch. Wie zum Beispiel bei dieser Symmetrischen Matrix der Fall ist:

Symmetrische Matrix.
Abb. 9 Symmetrische Matrix.

Eine interessante Eigenschaft dieser Matrix ist, dass ihre Transponierte genau der nicht-transponierten Matrix entspricht. Es gilt A=A^T. Diese Eigenschaft ergibt sich aus der Tatsache, dass jedes Element a_{ij} in der Matrix A dem Element a_{ji} in der Matrix A^T entspricht. Das heißt selbst wenn wir die Reihen und Spalten der Matrix vertauschen bleibt alles so wie es ist.


4. Summenzeichen

Bevor wir mit den algebraischen Operationen der Matrizen und Vektoren fortfahren können, müssen wir uns zunächst mit dem sog. Summenzeichen \Sigma befassen.

Wie der Name bereits impliziert wird in der Mathematik der griechische Buchstabe \Sigma als Abkürzung oder Symbol für Bildung von Summen verwendet.

Das Summenzeichen wird verwendet, wenn wir eine Summe über endlich oder unendlich viele Glieder einer Reihe bilden wollen, wobei der Wert der Glieder von einer Variablen abhängt. Sehen wir uns ein Beispiel an:

Summenzeichen
Abb. 10 Summenzeichen \Sigma.

Zu dem Summenzeichen gehören verschiedene Bestandteile, die oben farblich markiert sind:

  • Die Laufvariable, bzw. der Laufindex (blau): Dies ist die veränderliche Variable der Summe. Für jeden Wert der Laufvariable gibt es genau einen Summanden. Für die Laufvariable, bzw. den Laufindex werden üblicherweise die Buchstaben i, j, k oder l gewählt.
  • Der Startwert (rot): Dies ist der kleinste Wert, den die Laufvariable annimmt. Der Startwert ist eine ganze Zahl.
  • Der Endwert (grün): Dies ist der größte Wert, den die Laufvariable annimmt. Der Endwert ist eine ganze Zahl. Falls hier das Unendlichkeitszeichen (eine liegende Acht: ∞) steht, wird die unendliche Summe gebildet, wobei die Laufvariable den Wert des Startwerts und jeder Ganzzahl größer als dem Startwert annimmt.
  • Die Summanden (orange): Die Summanden bestehen üblicherweise aus einer Funktion, die von der Laufvariable abhängt.

Wenn die Summe wie oben mit Start- und Endwert geschrieben ist, nimmt die Laufvariable den Wert jeder ganzen Zahl zwischen dem Start- und dem Endwert ein (inklusive Startwert und Endwert). Für jeden der Werte wird genau ein Summand addiert. In Abb. 10 sehen wir ein Beispiel für die Summe aller Quadrate der ganzen Zahlen zwischen 1 und 5.

Die Laufvariable ist hier i, der Startwert 1, der Endwert 5 und die Summanden werden über die Funktion i2 gebildet, wobei i alle Werte von eins bis fünf einnimmt.

Das Summenzeichen spielt eine große Rolle in der linearen Algebra, insbesondere bei unterschiedlichen Operationen mit Matrizen und Vektoren. Beispielweise können wir mittels der \Sigma-Notation die Summe über alle Einträge im im Vektor \vec{x} definieren:

Vektor x.
Abb. 11 Vektor x.
Bildung der Summe über alle Einträge im Vektor x.
Abb. 12 Bildung der Summe über alle Einträge im Vektor x.

5. Matrix-Matrix Multiplikation

An dieser Stelle diskutieren wir, wie zwei Matrizen miteinander multipliziert werden können. Die Regeln für die Matrixaddition waren relativ einfach und intuitiv. Wenn es jedoch um die Multiplikation von Matrizen geht, werden die Regeln etwas komplizierter. Der Grund dafür ist, dass die Matrizen nicht einfach Element für Element multipliziert werden können. Die Matrix-Matrix Multiplikation ist nur für Matrizen definiert, die eine bestimmte Größe aufweisen. Angenommen wir möchten das Produkt C = A \cdot B bilden. Die Regel dabei ist, dass die Matrix A die gleiche Anzahl von Spalten aufweisen muss, wie die Matrix B an Reihen hat. Wenn das nicht gegeben ist, ist das Produkt C = A \cdot B nicht definiert.

Die folgende Definition für Multiplikation zweier Matrizen kann auf den ersten Blick kompliziert erschienen. Doch eigentlich ist die Operation ziemlich intuitiv.

Gegeben ist die Matrix A \in \mathbb{R}^{m \times n} und Matrix B \in \mathbb{R}^{n \times p}. Das Produkt aus A und B ergibt die Matrix C: C = A \cdot B. Für die Matrix C gilt dabei C \in \mathbb{R}^{m \times p}. Jeder Eintrag c_{ik} in C wird wie folgt definiert:

Berechnung eines Eintrags in der Ergebnismatrix.
Gl. 4 Def. der Berechnung eines Eintrags in der Ergebnismatrix.

Das heißt, die Elemente c_{ik} in der Matrix C = AB werden berechnet durch das Summieren der Produkte der Elemente der i-ten Zeile der Matrix A mit den Elementen der k-ten Spalte in der Matrix B.

Sehen wir uns nun ein konkretes Beispiel für die Multiplikation von zwei Matrizen A und B an. Diese sind gegeben durch:

Matrix A und B.
Abb. 13 Matrix A und B.

Wir können nun Produkt C= AB bilden. Jeder Eintrag wird dabei gemäg Gleichung 4 berechnet:

 C = AB
Abb. 14 C = AB

Wie sie sehen können besteht jedes Element in dieser neuen Matrix aus der Summe der Produkte der Elemente aus der Reihe der Matrix A und der Spalte der Matrix B. Es ist ebenso möglich das Produkt C=BA zu bilden:

C = BA
Abb. 15 C = BA

Wie sie sehen können ist die Matrix-Matrix-Multiplikation nicht kommutativ ist. Es gilt AB \ne BA.


6. Hadamard – Produkt

Eine andere Möglichkeit der Multiplikation zwischen zwei Matrizen stellt das Hadamard-Produkt dar. Klingt kompliziert, jedoch ist die Operation deutlich leichter als die vorherige.

Hadamard-Produkt bedeutet nichts weiter als eine elementweise Multiplikation von Matrizen. Diese unterscheiden sich sich von der vorherigen Definition der Matrix-Matrix-Multiplikation. Das Hadamard-Produkt beruht auf dem gleichen Konzept wie die Matrix-Matrix-Addition, die wir weiter oben diskutiert haben.

Das Hadamard-Produkt zweier Matrizen A = (a_{ij}) \in \mathbb{R}^{ m \times n} und B = (b_{ij}) \in \mathbb{R}^{ m \times n} wird mit A \circ B bezeichnet und wie folgt definiert:

Gl. 5 Def. von dem Hadamard-Produkt.

Das bedeutet, dass die Elemente in der Ergebnismatrix C=(A \circ B)_{ij} als skalare Vielfache von jedem der Elemente aus den Matrizen A und B berechnet werden. Hier ein Beispiel für die Berechnung des Hadamard-Produkts von den Matrizen A und B:

Matrizen
Berechnung von dem Hadamard-Produkt zwischen A und B.
Gl. 6 Berechnung von dem Hadamard-Produkt zwischen A und B.

7. Das Skalarprodukt von Vektoren

Bis jetzt haben wir nur Operationen an Matrizen betrachtet. An dieser Stelle werden einige der wichtigsten Vektor- Operationen diskutiert. Eine davon ist as Skalarprodukt von Vektoren bzw. die Vektor-Vektor-Multiplikation. Weil Vektoren im Grunde nichts anderes sind als eine Matrix, die nur eine Spalte bzw. Zeile aufweist, gelten bei der Vektor-Vektor-Multiplikation die gleichen Regeln, wie bei der Multiplikation von Matrizen.

Aufgrund der Regeln der Matrixmultiplikation können zwei Vektoren \vec{a} und \vec{b} nicht multipliziert werden, wenn beide Vektoren als Spaltenvektoren \vec{a}, \vec{b} \in \mathbb{R}^{n \times 1} oder als Zeilenvektoren \vec{a}, \vec{b} \in \mathbb{R}^{1 \times n vorliegen. Wenn wir bspw. versuchen, eine n \times 1-Matrix mit einer anderen n \times 1-Matrix zu multiplizieren (die im Grunde nichts Anderes sind als zwei Spaltenvektoren), ist das Produkt zwischen den beiden Spalten-Matrizen nicht definiert. Wie bereits erwähnt, muss die Anzahl der Spalten der ersten Matrix mit der Anzahl der Zeilen der zweiten Matrix übereinstimmen.

Um dieses Problem zu beheben können, können wir den ersten Spaltenvektor \vec{a} transponieren. Mit dieser Operation, ist das Produkt klar definiert. Das Produkt einer 1 × n-Matrix mit einer n × 1-Matrix ist eine 1 × 1-Matrix, d. h. ein Skalar.

Die Anzahl der Spalten der ersten Matrix (1) stimmt nicht mit der Anzahl der Zeilen der zweiten Matrix (n) überein. Um dieses Problem zu beheben, können wir die Transponierte des ersten Vektors in eine 1 × n-Zeilenmatrix umwandeln. Mit dieser Änderung ist das Produkt zwischen \vec{a} und \vec{b} nun klar definiert. Das Produkt einer 1 \times n-Matrix (bzw. Zeilenvektor) mit einer n \times 1-Matrix (bzw. Spaltenvektor) ist eine 1 \times 1-Matrix, d. h. ein Skalar.

Mathematisch ist das Skalarprodukt zwischen zwei Vektoren \vec{a} \in \mathbb{R}^{1 \times n} und \vec{b} \in \mathbb{R}^{n \times 1} wie folgt definiert:

Skalarprodukt zwischen zwei Vektoren.
Gl. 6 Skalarprodukt zwischen zwei Vektoren.

Und hier noch ein konkretes Beispiel mit Zahlenwerten:

8. Matrix-Vektor-Produkt

Die wahrscheinlich häufigste algebraische Operation, die im Bereich von Machine – und Deep Learningverwendet wird, ist das Matrix-Vektor-Produkt. Wie der Name suggeriert, wird bei dieser Operation eine Matrix mit einem Vektor multipliziert.

Weil wir einen Vektor als eine Matrix ansehen können, die entweder nur eine Zeile oder eine Spalte hat, stellt das Matrix-Vektor-Produkt eigentlich nur eine Matrix-Matrix-Multiplikation dar, wo eine Matrix nur aus einer Zeile bzw. Spalte besteht. Angenommen wir wollen das Produkt \vec{b} = A\cdot \vec{x} berechnen. In diesem Fall müssen A und \vec{x} eine bestimmte Größe aufweisen, damit das Produkt ausgeführt werden kann. Diese Vorausetzung ist, dass A die gleiche Anzahl von Spalten aufweisen muss, wie \vec{x} Zeilen hat. Es muss also gelten: A \in \mathbb{R}^{m \times n} und \vec{x} \in \mathbb{R}^{n \times 1}.

Wenn also A eine m × n-Matrix ist (d. h. Mit n Spalten), dann ist das Produkt b=A\vec{x} nur für einen n × 1 Spaltenvektor \vec{x} definiert. Das Produkt Ax ergibt als Ergebnis den Vektor \vec{b} \in \mathbb{R}^{m \times 1}. Dieser ist ein m \times 1 Spaltenvektor. Mit anderen Worten, die Anzahl der Zeilen in A (die beliebig sein kann) bestimmt die Anzahl der Zeilen im Produkt \vec{b}:

Die einzelnen Elemente im Vektor b werden durch komponentenweise Multiplikation und Summation der Einträge der entsprechenden Zeile der Matrix mit den Elementen des Vektors \vec{x} berechnet. Das Matrix-Vektor-Produkt kann als Spezialfall einer Matrizenmultiplikation angesehen werden, bei der die zweite Matrix aus nur einer Spalte besteht.

Die allgemeine Formel für ein Matrix-Vektor-Produkt lautet wie folgt: 

Sehen wir uns nun ein Beispiel an. Gegeben sei die Matrix A und der (Spalten-)Vektor \vec{x}:

Matrix und Vektor.
Abb. 16 Matrix und Vektor.

Das Produkt \vec{b}= A \dot \vec{x} wäre damit:

8.1 Eigenschaften des Matrix-Vektor-Produkts

Willst Du einen Job in Data Science und AI?

Gerade als Quereinsteiger oder kompletter Berufseinsteiger ist es mittlerweile nahezu unmöglich, einen Job im Bereich AI/Data Science zu ergattern.

Mittlerweile gibt es durchschnittlich einhundert Bewerber auf jede Stelle und es kommt mir so vor, als hätte jeder, der sich bewirbt, bereits mehrere Online-Kurse zum Thema Data Science absolviert und ein halbes Dutzend Zertifikate vorzuweisen.

Ohne aus dieser großen Masse an Kandidaten herauszustechen, landet die Bewerbung schnell im virtuellen Mülleimer.

Als Teamleiter im Bereich KI/Data Science habe ich im Laufe der Jahre Bewerbungen von Hunderten von Kandidaten gesehen. Ich weiß, worauf es ankommt.

Ein Quereinsteiger oder Berufseinsteiger ohne nennenswerte Erfahrung hat nur eine Chance, den Job zu bekommen: mit einem umfangreichen Data-Science-Portfolio, das perfekt auf die ausgeschriebene Stelle zugeschnitten ist. Damit überzeugst du die HR und die Entscheidungsträger warum gerade Du der richte Kandidat für die Stelle bist.

Ich unterstütze dich persönlich dabei, ein maßgeschneidertes Data-Science-Projektportfolio zu entwickeln und umzusetzen, das genau auf deine Wunschstelle zugeschnitten ist.

Interesse? Dann, trage unten deinen Namen und Email ein und ich melde mich bei dir mit weiteren Informationen.


Schreibe einen Kommentar

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