Geometrie und Trigonometrie

Dieses Kapitel schafft Intuition für Vektoren als 'Richtung + Länge', entwickelt ein Verständnis grundlegender trigonometrischer Funktionen und nutzt die räumliche Intuition von Koordinatensystemen als Sprungbrett zum Erlernen von 'Vektorräumen' in der linearen Algebra.

Wort-Embeddings, Ähnlichkeitsberechnungen in Empfehlungssystemen und Positionskodierungen in Transformern bauen alle auf der geometrischen Intuition aus diesem Kapitel auf.


Ebene Vektoren: Richtung + Länge

Was ist ein Vektor?

Eine gewöhnliche Zahl (Skalar) trägt nur eine Information: 'Betrag', zum Beispiel 'die Temperatur beträgt 25 Grad'.

Vektorträgt gleichzeitig zwei Informationen:RichtungundLänge (Betrag)。

In einem rechtwinkligen ebenen Koordinatensystem wird ein Vektor in Koordinatenformgeschrieben, was die Position darstellt, die durch 'vom Ursprung ausgehend x Einheiten in x-Richtung und y Einheiten in y-Richtung gehen' erreicht wird. Der Pfeil selbst kodiert Richtung und Länge.

Vektorlänge (Betrag)

Dies ist der Satz des Pythagoras: Die Länge eines Vektors ist die Hypotenuse eines rechtwinkligen Dreiecks, das durch seine Komponenten entlang der x-Achse und y-Achse gebildet wird.

Vektoraddition und Skalarmultiplikation

AktionAlgebraische RegelGeometrische Bedeutung
AdditionSpitze an Schwanz: Verbinde den Anfang des zweiten Vektors mit dem Ende des ersten Vektors
SkalarmultiplikationÄndert nur die Länge (kehrt die Richtung um, wenn k negativ ist), ohne die Gerade zu ändern, auf der die Richtung liegt

Skalarprodukt von Vektoren: Messen, wie ähnlich zwei Richtungen sind

wobeider Winkel zwischen den beiden Vektoren ist. Das Vorzeichen des Skalarprodukts hat eine klare geometrische Bedeutung:

Vorzeichen des SkalarproduktsWinkelbereichGeometrische Bedeutung
Richtungen sind ungefähr gleich
Zwei Vektoren senkrecht (orthogonal)
Ungefähr entgegengesetzte Richtungen
Interaktive Demonstration: Winkel und Skalarprodukt von Vektoren
Der blaue Vektor a zeigt fest nach rechts. Ziehe den Schieberegler, um den grünen Vektor b zu drehen und seine Länge zu ändern, und beobachte das Vorzeichen des Skalarprodukts (grün bedeutet ähnliche Richtungen, rot bedeutet entgegengesetzt, grau bedeutet senkrecht).

Warum Vektoren für KI entscheidend sind

In maschinellem Lernen ist ein Beispiel-Datenpunkt (ein Bild, das Embedding eines Textstücks, die Merkmale eines Nutzers) im Wesentlichenein Vektor im hochdimensionalen Raum.。

Je größer das Skalarprodukt (oder der Kosinus des Winkels) der Embedding-Vektoren zweier Wörter ist, desto semantisch ähnlicher sind die beiden Wörter normalerweise. Dies ist die mathematische Grundlage der „Ähnlichkeitsberechnung“ in Wortvektoren und Empfehlungssystemen.

Was jede Schicht eines neuronalen Netzwerks tut, ist im Wesentlichen das Skalarprodukt des Gewichtsvektors und des Eingabevektors.

Beispiele

# Vektorlänge, Skalarprodukt und Kosinus des Winkels (Prototyp der Wortvektor-Ähnlichkeit)
import math

# Zwei „Wortvektoren“: Annahme: Embeddings zweier Wörter (auf 2D vereinfacht)
king  = (3, 4)
queen = (4, 3)

# Norm |v| = sqrt(x² + y²)
norm_king  = math.sqrt(3**2 + 4**2)   # 5
norm_queen = math.sqrt(4**2 + 3**2)   # 5
print(norm_king, norm_queen)

# Skalarprodukt a·b = a₁b₁ + a₂b₂
dot = king[0] * queen[0] + king[1] * queen[1]
print(dot)

# Cosinus des Winkels cos θ = (a·b) / (|a||b|); je näher an 1, desto näher liegen die beiden Vektorrichtungen beieinander
cos_theta = dot / (norm_king * norm_queen)
print(cos_theta)

Die Ausführung des obigen Codes gibt aus:

5.0 5.0
24
0.96

Eine Kosinusähnlichkeit von 0.96 bedeutet, dass die beiden Vektorrichtungen sehr nahe beieinanderliegen; das ist genau der geometrische Ausdruck von "semantischer Ähnlichkeit."

Übung: Vektor, finde seine Länge。

Klicken Sie, um die Antwort zu sehen


Grundlegende trigonometrische Funktionen: sin und cos

Von rechtwinkligen Dreiecken zum Einheitskreis

Wenn man trigonometrische Funktionen zum ersten Mal lernt, beginnt man normalerweise mit den Seitenlängenverhältnissen eines rechtwinkligen Dreiecks:

Eine allgemeinere und für KI-Szenarien besser geeignete Art, sie zu verstehen, ist dieDefinition über den Einheitskreis: Auf einem Kreis mit Radius 1 hat der Punkt, der ausgehend von der positiven x-Achse um einen Winkelgegen den Uhrzeigersinn gedreht wird, die Koordinaten。

Der Vorteil dieser Definition ist:Sie kann jeden Winkel annehmen (nicht auf 0°~90° beschränkt). Sin und cos drehen sich mit θ weiter "im Kreis" und zeigenPeriodizität(jede volle Umdrehung ist 360°, d. h.,2π Radiant, die Werte wiederholen sich einmal).

Klicke auf "Play", um zu sehen, wie der Punkt auf dem Einheitskreis eine Sinuswelle zeichnet.

Dynamische Demonstration: Der Einheitskreis erzeugt eine Sinuswelle
Während sich der Punkt auf dem Einheitskreis mit dem Winkel θ gegen den Uhrzeigersinn dreht, wird seine Höhe (sin θ) Punkt für Punkt rechts aufgezeichnet und bildet eine rote Sinuskurve; seine horizontale Projektion (cos θ) ist blau markiert.

Wichtige Eigenschaften

EigenschaftenAusdruckBedeutung
BeschränktheitEgal wie groß der Winkel ist, der Wert liegt immer in [-1, 1]
PeriodizitätBei jeder vollen Umdrehung wiederholt sich der Wert einmal
QuadratbeziehungDirekte Folgerung daraus, dass der Radius des Einheitskreises 1 ist (Satz des Pythagoras)

sin, cos und Positionskodierung

Wenn ein Transformer-Modell eine Textsequenz verarbeitet, kennt es von Natur aus nicht die "Reihenfolge der Wörter" (es verarbeitet alle Wörter parallel).

Um Informationen über die "Position" in das Modell zu kodieren, verwendet Transformer die folgende Formel:

Hier werden zwei Kerneigenschaften von sin/cos genutzt:

Beschränktheit: Egal wie lang die Sequenz ist, die Werte der Positionskodierung explodieren nicht; sie bleiben immer in [-1, 1] und stören andere numerische Berechnungen nicht.

Periodizität + Überlagerung verschiedener Frequenzen: Verschiedene Dimensionen verwenden Sinus-/Cosinuswellen unterschiedlicher Frequenzen, sodass das Modell "benachbarte Positionen" unterscheiden kann (hochfrequente Wellen ändern sich schnell) und auch "Positionsbeziehungen über große Entfernungen" wahrnimmt (niedrigfrequente Wellen ändern sich langsam).

Dahinter steckt dasselbe wie in der SignalverarbeitungFourier-TransformationDer Gedanke ist derselbe: Jedes komplexe Signal kann durch eine Überlagerung einer Reihe von Sinuswellen unterschiedlicher Frequenzen dargestellt werden.

Interaktive Demo: Heatmap der Positionskodierung
Die horizontale Achse ist die Position in der Sequenz (0~49), die vertikale Achse ist die Kodierungsdimension (0~15), und die Farbe ist der Kodierungswert. Man kann sehen, dass niedrige Dimensionen (oben) schnell veränderliche Wellen haben, während hohe Dimensionen (unten) langsam veränderliche Wellen haben -- Sinus/Cosinus unterschiedlicher Frequenzen sind gemeinsam überlagert.
Rot ist positiv, Blau ist negativ, konsistent mit den Wellenformen von sin/cos. Die Kodierungsdimension eines echten Transformers ist normalerweise 512 oder sogar höher; hier werden nur die ersten 16 Dimensionen zur Veranschaulichung gezeigt.

Beispiele

# Manuelle Berechnung der Positionskodierung: Frequenzverteilung der ersten paar Dimensionen bei d=16
import math

d = 16   # Gesamtkodierungsdimension (zur Veranschaulichung; reales Modell ist 512+)

# Die Kreisfrequenz der Dimension 2i ist 1 / 10000^(2i/d)
# Niedrige Dimensionen haben hohe Frequenz (unterscheiden benachbarte Positionen), hohe Dimensionen haben niedrige Frequenz (nehmen große Entfernungen wahr)
for i in [0, 2, 4]:
    freq = 1 / (10000 ** (i / d))
    print(i, round(freq, 6))

# sin-Kodierungswert bei pos=3 auf Dimension 0: sin(3 * 1.0)
print(round(math.sin(3 * 1.0), 6))

Die Ausführung des obigen Codes gibt aus:

0 1.0
2 0.316228
4 0.1
0.14112

Die Frequenz von Dimension 0 ist 1.0, und Dimension 4 fällt auf 0.1 ab -- die Frequenz nimmt entlang der Dimensionen exponentiell ab; das ist genau die Anordnung von "hohe Frequenz zuerst, niedrige Frequenz später".


Koordinatensysteme und räumliche Intuition

Das 2D-Koordinatensystem ist der Ausgangspunkt für das Verständnis 'höherdimensionaler Räume'

Rechtwinkliges Koordinatensystem in der EbeneVerwende zwei zueinander senkrechte Zahlenachsen, um jedem Punkt auf der Ebene eine eindeutige "Adresse" zu geben.

Diese intuitive Idee lässt sich direkt erweitern: Füge eine z-Achse für den dreidimensionalen Raum hinzu, und für den n-dimensionalen Raum ist es。

Obwohl der n-dimensionale Raum nicht direkt gezeichnet werden kann, ist die algebraische Behandlung genau dieselbe: Jede Koordinatenachse ("Dimension") ist weiterhin eine unabhängige Richtung.

Was das für das Verständnis von 'Vektorräumen' in der linearen Algebra bedeutet

2D-IntuitionHöherdimensionale VerallgemeinerungAnwendungen in der KI
Projektion: die Komponente eines Vektors entlang einer AchseProjektion eines hochdimensionalen Vektors in eine beliebige RichtungSkalarprodukt / orthogonale Zerlegung ist die Grundlage von Dimensionsreduktionsalgorithmen
Orthogonalität: Zwei Richtungen sind senkrecht zueinander und beeinflussen sich nicht gegenseitig"Orthogonale Basis" im hochdimensionalen RaumPCA-Dimensionsreduktion findet zueinander orthogonale Hauptrichtungen
Basis: Die x-Achse und die y-Achse sind die grundlegendsten ReferenzrichtungenJeder Vektor wird als Kombination von Basisvektoren geschriebenDie Dimension des Einbettungsraums ist die Anzahl der Basisvektoren

Die Einbettungsdimension vieler Sprachmodelle reicht von Hunderten bis Tausenden (zum Beispiel 768 Dimensionen). Man kann diesen Raum nicht auf Papier zeichnen, aber man kann ihn mit vertrauten Operationen aus 2D und 3D "imaginieren".

Eine konkrete Analogie

Stellen Sie sich vor, Sie beschreiben einen Film; Sie können ihn anhand vieler Dimensionen bewerten, wie "Menge an Actionszenen", "Humorlevel", "Handlungskomplexität" und so weiter.

Jeder Film entspricht einem Punkt (Vektor) in diesem "mehrdimensionalen Bewertungsraum".

Je ähnlicher zwei Filme sind, desto "näher" liegen ihre entsprechenden Vektoren im Raum (großes Skalarprodukt, kleiner Winkel).

Das ist genau die geometrische Intuition hinter "ähnlicher Inhaltsempfehlung" in Empfehlungssystemen, und der Ursprung dieser Intuition ist das räumliche Gefühl dafür, "ob zwei Punkte nahe beieinander liegen", in einem 2D-Koordinatensystem.

Übung: Wenn ein Vektor eine große Projektion entlang der x-Achsen-Richtung und eine nahezu null Projektion entlang der y-Achsen-Richtung hat, was sagt das über die allgemeine Richtung des Vektors aus?

Klicken, um die Antwort anzuzeigen

Die Richtung verläuft fast entlang der x-Achse: Sein "Beitrag" in y-Richtung ist sehr klein, was bedeutet, dass er nahezu senkrecht zur y-Achse und nahezu parallel zur x-Achse ist.


Kapitelzusammenfassung

ThemaKernidee in einem Satz
Vektor in der EbeneTrägt sowohl "Richtung" als auch "Länge" und ist die grundlegende Einheit hochdimensionaler Daten (Embedding)
SkalarproduktMisst, "wie nah" sich zwei Richtungen sind; es ist die mathematische Grundlage der Ähnlichkeitsberechnung
sin / cosKoordinaten auf dem Einheitskreis besitzen Periodizität und Beschränktheit und sind ein mathematisches Werkzeug für die Positionskodierung
KoordinatensystemDie räumliche Intuition von 2D/3D ist der Ausgangspunkt für das Verständnis von n-dimensionalen Vektorräumen, Projektion, Orthogonalität und anderen Konzepten
Zusätzliche Erweiterungen