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
| Aktion | Algebraische Regel | Geometrische Bedeutung |
|---|---|---|
| Addition | Spitze 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 Skalarprodukts | Winkelbereich | Geometrische Bedeutung |
|---|---|---|
| Richtungen sind ungefähr gleich | ||
| Zwei Vektoren senkrecht (orthogonal) | ||
| Ungefähr entgegengesetzte Richtungen |
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
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.
Wichtige Eigenschaften
| Eigenschaften | Ausdruck | Bedeutung |
|---|---|---|
| Beschränktheit | Egal wie groß der Winkel ist, der Wert liegt immer in [-1, 1] | |
| Periodizität | Bei jeder vollen Umdrehung wiederholt sich der Wert einmal | |
| Quadratbeziehung | Direkte 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.
Beispiele
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-Intuition | Höherdimensionale Verallgemeinerung | Anwendungen in der KI |
|---|---|---|
| Projektion: die Komponente eines Vektors entlang einer Achse | Projektion eines hochdimensionalen Vektors in eine beliebige Richtung | Skalarprodukt / orthogonale Zerlegung ist die Grundlage von Dimensionsreduktionsalgorithmen |
| Orthogonalität: Zwei Richtungen sind senkrecht zueinander und beeinflussen sich nicht gegenseitig | "Orthogonale Basis" im hochdimensionalen Raum | PCA-Dimensionsreduktion findet zueinander orthogonale Hauptrichtungen |
| Basis: Die x-Achse und die y-Achse sind die grundlegendsten Referenzrichtungen | Jeder Vektor wird als Kombination von Basisvektoren geschrieben | Die 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
| Thema | Kernidee in einem Satz |
|---|---|
| Vektor in der Ebene | Trägt sowohl "Richtung" als auch "Länge" und ist die grundlegende Einheit hochdimensionaler Daten (Embedding) |
| Skalarprodukt | Misst, "wie nah" sich zwei Richtungen sind; es ist die mathematische Grundlage der Ähnlichkeitsberechnung |
| sin / cos | Koordinaten auf dem Einheitskreis besitzen Periodizität und Beschränktheit und sind ein mathematisches Werkzeug für die Positionskodierung |
| Koordinatensystem | Die 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 |