hintergrundbild

Mathematische Datenstrukturen in Maschine Learning

Die beiden wichtigsten mathematischen Datenstrukturen oder Größen, die für die lineare Algebra von Interesse sind, sind Vektoren und Matrizen. Sie sind die Verallgemeinerung einer anderen Größe, die als sogenannter Tensor bekannt ist. Tensoren werden durch einen Rang beschrieben, der die Anzahl der Dimensiones des Arrays angibt, die benötigt wird um den Tensor darzustellen.


1. Skalare

Ein Skalar ist ein mathematischer Ausdruck für eine Zahl. In der Mathematik ist es notwendig, den Mengenbereich zu beschreiben, zu denen ein Skalar gehört. Ein Skalar x, das zur Menge von Reellen Zahlen gehört wird durch die folgenden Notation ausgedrückt: x \in \mathbb{R}.

Reelle Zahlen \mathbb{R} beinhalten alle Zahlen, die existieren. Bspw. existiert x = \sqrt{-5} nicht und daher ist x kein Element von \mathbb{R}. Innerhalb von Deep Learning und auch Machine Learning gibt es unterschiedliche Mengen, die von Interesse sein könnten. Diese sind:

  • \mathbb{Z} ={… -2, -1, 0, 1, 2, …} ganze Zahlen
  • \mathbb{Q} ={… 2/3, 4,5, 7/8…} rationale Zahlen, die als Bruchteil zweier ganzer Zahlen ausgedrückt werden können
  • \mathbb{N} ={0, 1, 2, …} natürlichen Zahlen, die alle Zahlen umfassen, die größer 0 sind.

2. Vektoren

Eine sehr wichtige Datenstruktur im Bereich von Machine Learning und Data Science allgemein sind die Vektoren. Vektoren sind geordnete Arrays von Zahlen bzw. Skalaren. Diese Anordnung aus Zahlen kann entweder eine Reihe oder eine Spalte sein.

Vektoren können beliebig viele Einträge aufweisen. Die Einträge in einem Vektor werden explizit durch Indizes charakterisiert. Das i-te skalare Element in einem Vektor \vec{x} kann als x_i bezeichnet werden. Beispielweise können wir einen Vektor mit drei Einträgen wie folgt darstellen:

Vektor
Abb. 1 Beispiel für einen Vektor mit drei Komponenten.

In dem Vektor \vec{x} können die Einträge x_1, x_2 und x_3 als Platzhalter für beliebige Zahlenwerte stehen. Vektoren haben in Machine- und Deep Learning eine enorme Bedeutung. Die Vektoren erfüllen dabei hauptsächlich zwei Funktionen. Diese sind eine mathematische und eine rein strukturelle. Fange wir mal mit der letzteren an.

Vektoren als Datenstrukturen

Die Eingangsdaten für ein neuronales Netz oder ein Modell des maschinelles Lernens werden als Features bzw. Merkmale bezeichnet. Die Features besteht in der Regel aus vielen Skalaren. Diese könnten bspw. sein: „Alter“, „Jahresgehalt“, „Geschlecht“ usw.

In der Praxis bestehen die Features in der Regel aus Dutzenden von Zahlenwerten. Aus diesem Grund empfiehlt es sich die Features in einem Vektor zusammenzufassen. Jedes einzelne Feature stellt dabei einen Eintrag in dem Vektor dar. Man bezeichnet diese Vektoren als Feature-Vektoren oder Merkmalsvektoren. 

Merkmalsvektor
Abb. 2 Merkmalsvektor

Erst wenn die Merkmale als Feature Vektoren vorliegen, können diese in ein neuronales Netzwerk eingespeist und bei den mathematischen Berechnungen verwendet werden, die in einem neuronalen Netzwerk stattfinden.

Features, die in einem Vektor zusammengefasst sind, können als Eingangsdaten verwendet werden

Darüberhinaus werden die Werte der Neuronen in einem neuronalen Netzwerk ebenfalls als Vektoren dargestellt. Hierbei stellen die Einträge in dem Vektor die einzelnen Aktivierungswerte der Neuronen in einem neuronalen Netz. 

Abb. 3 Neuronales Netz

Mathematische Funktion der Vektoren in Maschine Learning

Die zweite Funktion eines Vektors in Deep Learning ist dagegen eine rein mathematische. In der Mathematik leben die Vektoren in sog. Vektorräumen. Ein Vektorraum ist einfache eine Bezeichnung für einen Raum, der eine beliebige Anzahl an Raumdimensionen aufweisen kann.

Die Vektoren haben die gleiche Anzahl der Komponenten wie der Vektorraum, aus dem sie stammen, an Dimensionen aufweist. Jede Komponente des Vektors repräsentiert dabei eine Raumdimension. Zum Beispiel die Welt in der wir leben kann mathematisch als ein Vektorraum mit drei Raumdimensionen aufgefasst werden. Die Vektoren in diesem Vektorraum würden daher drei Komponenten besitzen. Eine Komponente pro Raum Dimension.

Vektorräume werden normalerweise mit \mathbb{R}^n bezeichnet. Dabei steht n für die Anzahl der Raumdimensionen. Ein Vektor \vec{x}, der ein Element eines bestimmten Vektorraums ist, wird mathematisch wie folgt dargestellt: \vec{x} in \mathbb{R}^n.

Eine besondere Eigenschaft von einem Vektors ist, dass dieser neben einem Betrag noch eine Richtung aufweist. Ein Skalar dagegen hat nur einen Betrag, aber keine Richtung. 

Oft ist es ist notwendig in einem Raum eine Richtung anzugeben. Für diesen Zweck kann eine Vektor verwenden werden. Wie geht das? Betrachtet wir dazu das Beispiel eines 2D-Vektorraums. 

Abb. 4

Stellen Sie sich vor, dass wir uns in dem 2D-Vektorraum an dem Punkt A befinden (vgl. Abb. 4). Nun möchten wir in die Richtung zeigen, in der Punkt B liegt. Dafür können wir einen Vektor \vec{v} verwenden. Die erste Komponente des Vektors gibt an wie viele Schritte wir von dem Punkt A in die x-Richtung gehen müssen. Die zweite Komponente gibt an wie viele Schritte wir in die yRichtung gehen müssen. Beide Komponenten zusammen ergeben einen Pfeil, der in die Richtung von dem Punkt B zeigt.

Dies ermöglicht es uns, Vektoren zu verwenden, um Richtungen in einem Raum mit beliebig vielen Raumdimensionen anzuzeigen.

Neben der Richtung besitzt ein Vektor, genau wie ein Skalar, einen Betrag. Der Betrag eines Vektors gibt die Länge dieses Vektors. Um den Betrag zu berechnen müssen wir die einzelnen Komponenten des Vektors quadrieren, aufsummieren und eine Wurzel daraus ziehen.

Gl. 1 Betrag eines Vektors.

In der Mathematik bezeichnet man den Betrag eines Vektors als die sog. Norm. Im Beispiel in Gl. 1 stellt die Definition des Betrags von x die sog. Euklidische Norm.


3. Matrizen 

Matrizen ist eine weitere ungemein wichtige mathematische Datenstruktur in Machine Learning. Einfach ausgedrückt stellen Matrizen eine rechteckige Anordnungen von Skalaren dar. Matrizen sind ein Beispiel für einen Tensor der Dimension 2.

Eine Matrix weist eine bestimmte Anzahl von Reihen und Spalten auf. Seien n, m ganze positive Zahlen. Sei darüberhinaus n=3 die Anzahl der Reihen und m=4 Anzahl der Spalten. Diese Matrix würde als eine 3×4 Matrix wie folgt dargestellt werden:

Matrix
Abb. 5 Beispiel einer Matrix

Wir können auch sagen, dass eine Matrix aus Vektoren bestehen, die zweidimensional tabellenförmig angeordnet werden. Damit besteht diese Matrix aus folgenden Elementen:

  • n, m \in \mathbb{Z}
  • n = 3 (Anzahl der Reihen)
  • m = 4 (Anzahl der Spalten)
  • x_{ij}, Eintrag in der Zeile i und Spalte j

Die einzelnen Komponenten einer Matrix sind skalare Werte. Jedes dieser Werte weist Indices auf. In der Regel werden diese mit den Buchstaben i und j dargestellt. Der Index i steht dabei für die Reihe und das Index j für die Spalte, in der die Komponente mit diesen Indices sich befindet. Die mathematische Notation der Matrix in Abb. 5 ist M in \mathbb{R}^{3x4} bzw. M= [x_{ij}]^{3x4}.

Beachtet Sie bitte, dass ein Vektor ebenfalls als eine Matrix der Größe n x 1 bezeichnet werden könnte. Wobei n hier die Anzahl der Reihen dieses Vektors darstellt. In diesem Fall ist es auch die Anzahl der Elemente im Vektor:

M
Abb. 6 Spalte einer Matrix ist ein Vektor.

Matrizen werden für unterschiedliche Operation verwendet, die auch als lineare Abbildungen bezeichnet werden. Im folgenden wird erläutern welche Operation es genau sind. Zum Beispiel ist es möglich Multiplikations-Operationen zwischen zwei Matrizen oder zwischen Matrizen und Vektoren zu definieren. Solche Operationen sind in den Bereichen Physik, Finanzen, Informatik und natürlich Machine – und Deep Learning von enormer Bedeutung.

Matrizen können geometrische Operationen wie Rotation, Reflexion und Transformation darstellen.

Darüber hinaus stellen Matrix-Matrix, bzw. Matrix-Vektor-Multiplikationen in Deep Learning den größten Anteil aller mathematischen Operationen dar. Wenn Sie neuronale Netze implementieren, werden Sie schnell merken, dass diese Operation gefühlt 90% aller mathematischen Operation ausmachen, die in einem neuronalen Netzwerk passieren.

In anderen Worten: Wenn Sie diese Operationen erstmal verstanden haben, so verstehen Sie auch sofort zu 90% was genau in einem neuronalen Netz passiert.


Einschub: Rang einer Matrix


4. Tensoren

Kommen wir zu der letzten mathematischen Struktur, die wir für Machine- und Deep Learning benötigt wird. Bei dieser Struktur handelt sich dabei um einen Tensor. Tatsächlich stellt ein Tensor nur eine allgemeine Bezeichnung für die Art der Datenstrukturen, die wir bis jetzt behandelt haben.

In der Mathematik kann jede mathematische Größe, die eine Dimension aufweist, als ein Tensor bezeichnet werden. Skalare, Vektoren und Matrizen werden einfachheitshalber ausgekapseln und bekommen ihre eigenen Bezeichnungen. Aber tatsächlich ist eine Skalar ein Tensor mit der Dimension 0, ein Vektor ist ein Tensor mit der Dimension 1 und eine Matrix ein Tensor mit der Dimension 3.

Es ist jedoch manchmal notwendig – sowohl in der Physik als auch in Deep Learning – Tensoren mit der Dimension n>2 zu verwenden.

Tensor
Abb. 7 Beispiel eines Tensors mit der Dimension 3.

Da ich eigentlich ursprünglich aus der theoretischen Physik komme, kann ich an dieser Stelle nicht unerwähnt lassen, dass z.B. Tensoren 4ter Dimension in der allgemeinen Relativitätstheorie den sog. Riemannschen Krümmungstensor darstellen. Dieser wird unter anderem bei der Beschreibung der Raumzeit in der Nähe der schwarzen Löcher verwendet. Nur so, falls Ihnen mal beim Abendessen mit Kollegen die Themen ausgehen.

Beim maschinellen Lernen und insbesondere in Deep Learning kann ein Tensor 3. Ordnung verwendet werden, um die Intensitätswerte mehrerer Farbkanäle (rot, grün und blau) aus einem zweidimensionalen Bild zu beschreiben.

Schreibe einen Kommentar

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