Neuronale Netze - Vektoren
LIN 8080
Für das Verständniss neuronaler Netze ist ein Einblick in deren zugrundeliegende Mathematik unumgänglich. Beginnen wir mit Vektoren.
Normalerweise wird ein Vektor mit einem x gekennzeichnet und in eingeklammerten Spalten geschrieben. Als Zeile notiert spricht man von einem transponierten Vektor x hoch T.
Das Skalarprodunkt (auch Punktprodukt) ist definiert durch x*y = x1*y1 + x2*y2 + ... + xn*yn = Summe( xi yi ). Für x*y = 0 stehen die beiden Vektoren x und y senkrecht zueinander.
Mit x, y und z als Vektoren, 0 als Nullvektor und c als Zahl gelten folgenden
Vektoroperationen:
- x*y = y*x
- x*(y+z) = x*y + x*z = (y+z)*x
- (c*x)*y = c*(x*y) = x*(c*y)
- x*x = 0 wenn x = 0, sonst x*x > 0
Der Einheitsvektor ist |x| = 1, somit gilt auch |x| = a mit (1/a)x. Somit ist (x / |x|) Einheitsvektor in die selbe Richtung wie x. Die Projektion eines Vektors x entlang eines anderen Vektors y ist der Vektor cy = y (x*y) / (y*y). Die Einheitsvektoren e1 = (1, 0, 0), e2 = (0, 1, 0) und e3 = (0, 0, 1) stehen in den drei Raumrichtungen senkrecht zueinander. Für cx = y gilt: x und y haben die selbe Richtung.
Die Länge eines Vektors ist: |x| = (x*x) ^ 1/2 = Summe( xi^2 ) ^ 1/2. Als Abstand zwischen den Vektoren x und y gilt: |x - y| = ( (x - y) * (x - y) ) ^ 1/2.
Der Winkel zwischen zwei Vektoren in einem Kreuzungspunkt berechnet sich aus: x*y = |x| |y| cos ß. Damit wird ß = arccos ( x*y / |x| |y| ). Ausführlich: ß = arccos ( xx*yx + xy*yy + xz*yz ) / ( ( x2x + x2y + x2z )^1/2 * ( y2x + y2y + y2z )^1/2 ). Für cos ß = 0 stehen sie senkrecht zueinander.
Das Quadrat des Skalarprodukts zweier Vektoren ist kleiner oder gleich dem Produkt des Betrages der Vektoren ( x*y )2 <= |x|^2 |y|^2 (Cauchy - Schwartz - Ungleichgewicht). Hier noch ein Beispiel für das Skalarprodukt x*y zweier Vektoren:
Allgemein: Summe( aik bik ). Vorausgesetzt, die Verkettbarkeit, das ist: Spaltenzahl x = Zeilenzahl von y. Es ist das skalare Produkt zweier Vektoren in Matrizenschreiweise.