Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Vector Quantization

Bei der Vektorquantisierung wird jeder Vektor durch den Index des nächstgelegenen Codebucheintrags ersetzt. Dazu gehören Codebücher mit k-Means, Produktquantisierung und VQ-VAE-Tokens.

Vektorquantisierung (VQ) ist ein Kompressionsverfahren, bei dem jeder Vektor in einem Datensatz durch den Index des nächstgelegenen Eintrags in einer kleinen Menge repräsentativer Vektoren, dem sogenannten Codebuch, ersetzt wird. Beim Kodieren wird nur der Index gespeichert, beim Dekodieren wird der Index nachgeschlagen. Der Rekonstruktionsfehler entspricht dem Abstand zwischen dem ursprünglichen Vektor und seinem Codewort. Ein Codebuch mit K Einträgen benötigt unabhängig von der Anzahl der Dimensionen des Vektors log₂(K) Bits pro Vektor. Ein Codebuch mit 256 Einträgen speichert daher jeden Vektor in einem Byte. VQ stammt aus der Signalverarbeitung: Stuart Lloyds Algorithmus von 1957 aus den Bell Labs zur Entwicklung skalarer Quantisierer wurde 1982 veröffentlicht und wird heute üblicherweise k-means genannt. Yoseph Linde, Andrés Buzo und Robert Gray erweiterten den Algorithmus 1980 auf Vektoren. Im Deep Learning wurde VQ zum Standardverfahren, um Bilder, Audio und Video in diskrete Tokens für generative KI umzuwandeln.

So funktioniert Vektorquantisierung#

Ein Codebuch wird üblicherweise mit k-means-Clustering gelernt: Weise jeden Trainingsvektor dem nächstgelegenen Codewort zu, verschiebe jedes Codewort auf den Mittelwert der ihm zugewiesenen Vektoren und wiederhole den Vorgang. Dadurch steigt die durchschnittliche Verzerrung nie an. Die Farbquantisierung veranschaulicht den gesamten Ablauf anhand der Pixel eines Fotos mit dem Modul scipy.cluster.vq von SciPy:

import numpy as np
from scipy.cluster.vq import kmeans2, vq
from sklearn.datasets import load_sample_image

image = load_sample_image("china.jpg")  # 427 x 640 RGB photo bundled with scikit-learn
pixels = image.reshape(-1, 3).astype(np.float64)  # one 3-D color vector per pixel

# Learn a 16-entry codebook with k-means (Lloyd's algorithm) on a sample of pixels
rng = np.random.default_rng(0)
codebook, _ = kmeans2(rng.choice(pixels, 5000), 16, minit="++", seed=0)

# Encode: replace each pixel with the index of its nearest codeword (4 bits instead of 24)
indices, _ = vq(pixels, codebook)
# Decode: look each index up in the codebook
reconstruction = codebook[indices]

rmse = np.sqrt(((pixels - reconstruction) ** 2).mean())
print(f"{len(pixels):,} pixels, {len(codebook)} codewords, 24 -> 4 bits per pixel")
print(f"Reconstruction RMSE: {rmse:.1f} on the 0-255 scale")

Alle 273.280 Pixel werden als 4-Bit-Indizes in 16 Farben gespeichert. Das sind sechsmal weniger Farbdaten als bei 24-Bit-RGB, bei einem quadratischen Mittelwertfehler von 11,3 Intensitätsstufen von 255.

Skalare Quantisierung ist der eindimensionale Sonderfall, und die Modellquantisierung wendet sie auf neuronale Netze an. Ultralytics YOLO26 nutzt sie beim Export: quantize=8 rundet jedes Gewicht und jede Aktivierung einzeln auf einen von 256 ganzzahligen Werten. Die Aktivierungsbereiche werden in einem Kalibrierungsdurchlauf anhand der Bilder in data ermittelt. Die gemeinsame Quantisierung ganzer Vektoren nutzt die Korrelationen zwischen den Dimensionen aus. Bei derselben Bitrate hat ein optimaler Vektorquantisierer niemals eine höhere Verzerrung als ein optimaler skalarer Quantisierer, der auf jeden Wert einzeln angewendet wird.

Produkt- und Residualquantisierung#

Ein einzelnes Codebuch wächst mit dem Bitbudget exponentiell, denn für 64 Bits wären 2⁶⁴ Codewörter erforderlich. Die 2011 von Hervé Jégou, Matthijs Douze und Cordelia Schmid eingeführte Produktquantisierung teilt jeden Vektor in m Teilvektoren auf und quantisiert jeden davon mit einem eigenen Codebuch mit 256 Einträgen. Bei m = 8 schrumpft ein 128-dimensionales float32-Embedding von 512 Bytes auf 8 Bytes, und die Abstände zu einer Suchanfrage werden anhand kleiner Nachschlagetabellen berechnet. Die FAISS-Bibliothek von Meta kombiniert das Verfahren mit einem invertierten Dateiindex, einem groben k-means-Quantisierer, der jede Suchanfrage auf wenige Cluster beschränkt. So wird eine Vektorsuche im Milliardenmaßstab möglich.

Bei der Residualquantisierung werden Codebücher stattdessen gestapelt: Das zweite Codebuch quantisiert den Fehler, den das erste hinterlässt, das dritte den Fehler des zweiten und so weiter. Die neuronalen Audiocodecs SoundStream von Google (2021) und EnCodec von Meta (2022) komprimieren damit Sprache und Musik auf wenige Kilobit pro Sekunde. Visuelle autoregressive Modellierung (VAR) wendet das Verfahren über verschiedene Bildauflösungen hinweg an.

VQ-VAE und Bild-Tokens#

Aäron van den Oord, Oriol Vinyals und Koray Kavukcuoglu von DeepMind stellten VQ-VAE 2017 in Neural Discrete Representation Learning vor. Die Encoder-Ausgabe eines Autoencoders wird an jeder räumlichen Position durch das nächstgelegene Codewort ersetzt, und der Decoder rekonstruiert die Eingabe aus den Codewörtern. Für die Suche nach dem nächsten Nachbarn gibt es keinen Gradienten. Daher leitet ein Straight-Through-Schätzer während der Rückpropagierung den Gradienten des Decoders daran vorbei. In PyTorch wird dies als z_q = z + (z_q - z).detach() geschrieben. Zwei zusätzliche Verlust-Terme ziehen die Codewörter zu den Encoder-Ausgaben und sorgen dafür, dass sich der Encoder auf seine ausgewählten Codewörter festlegt. Im Paper wird der zweite Term mit 0,25 gewichtet.

Die resultierenden Token-Raster speisen ein zweites Modell, meist einen Transformer, der lernt, sie zu erzeugen. VQGAN (2021) ergänzte adversariale und perzeptuelle Verluste, um schärfere Tokens zu erzeugen, und wurde zum Tokenizer zahlreicher Text-zu-Bild-Modelle. Ein häufiges Problem ist der Kollaps des Codebuchs: Die meisten Codewörter werden nie ausgewählt, wodurch das effektive Vokabular schrumpft. Initialisierung mit k-means, Aktualisierungen des Codebuchs anhand gleitender Mittelwerte und das Zurücksetzen ungenutzter Codes wirken dem entgegen. Googles finite skalare Quantisierung (FSQ, 2023) vermeidet das Problem, indem einige wenige latente Dimensionen jeweils auf eine Handvoll fester Stufen gerundet werden. So ist jeder Code im impliziten Codebuch erreichbar.

  • Vektordatenbanken: Speichern und indexieren Embeddings und wenden intern oft Produktquantisierung an, damit diese in den Arbeitsspeicher passen.
  • Dimensionsreduktion: Bildet Vektoren auf weniger kontinuierliche Dimensionen ab, wie es PCA tut. VQ bildet dagegen jeden Vektor auf einen diskreten Code ab.
  • Tokenisierung: Zerlegt Text in Einheiten aus einem festen Vokabular. VQ erstellt ein entsprechendes Vokabular für kontinuierliche Signale wie Bildausschnitte und Audio-Frames.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens