Feature Extraction
Feature-Extraktion wandelt Rohdaten wie Bilder mithilfe manuell entworfener Verfahren oder vortrainierter neuronaler Netze in kompakte, aussagekräftige Merkmale um.
Merkmalsextraktion ist der Vorgang, Rohdaten in eine kleinere Menge numerischer Merkmale umzuwandeln, die die für eine Aufgabe benötigten Informationen bewahren. Ein RGB-Foto mit 640×480 Pixeln enthält 921.600 Pixelwerte, von denen die meisten redundant sind. Ein Merkmalsextraktor kann sie auf einen Vektor aus einigen Hundert Zahlen reduzieren, der den Bildinhalt beschreibt. Klassisches maschinelles Lernen stützte sich auf von Hand für jeden Datentyp entwickelte Extraktoren. Deep Learning-Modelle erlernen eigene Merkmale in einem Backbone, dessen Ausgabe sich für Suche, Clustering und neue Klassifikatoren wiederverwenden lässt. Weniger und aussagekräftigere Dimensionen mildern außerdem den Fluch der Dimensionalität, sodass einfachere Modelle mit weniger Daten verallgemeinern können.
Von Hand entwickelte und erlernte Merkmale#
Vor Deep Learning entwickelten Ingenieure für jede Datenart einen eigenen Merkmalsextraktor:
- SIFT: Findet Schlüsselpunkte in einem Bild und beschreibt jeden mit einem 128-dimensionalen Histogramm der Gradientenrichtungen. Dieses bleibt bei Änderungen von Maßstab und Drehung stabil, wodurch SIFT zum Standardwerkzeug für den Bildabgleich und das Zusammensetzen von Panoramen wurde.
- HOG: Histogramme orientierter Gradienten, berechnet über ein Raster aus Zellen. Zusammen mit einer linearen Support Vector Machine wurde HOG 2005 für die Fußgängererkennung eingeführt und zu einem festen Bestandteil der klassischen Objekterkennung.
- Hauptkomponentenanalyse (PCA): Projiziert Daten auf die Richtungen mit der größten Varianz. Die vielseitige Methode eignet sich für Tabellendaten, Gesichter und Spektren.
- Mel-Frequenz-Cepstralkoeffizienten (MFCCs): Fassen das Kurzzeitspektrum von Audio anhand einer an das menschliche Gehör angepassten Skala zusammen. Sie waren lange die Standardeingabe für die Spracherkennung.
Erlernte Merkmale haben diese Verfahren für Bilder, Audio und Text größtenteils ersetzt. Ein auf Millionen von Bildern trainiertes faltendes neuronales Netz (CNN) oder ein Vision Transformer (ViT) erstellt selbstständig eine Hierarchie: Frühe Schichten erkennen Kanten und Farbflecken, mittlere Schichten Texturen und Teile und die letzten Schichten Konzepte auf Objektebene. Diese in Feature-Maps gespeicherten Repräsentationen lassen sich auf neue Aufgaben übertragen. Deshalb sind vortrainierte Backbones der übliche Ausgangspunkt für Transferlernen.
Merkmalsextraktion und verwandte Begriffe#
- Merkmalsentwicklung: Die umfassendere Praxis, Modelleingaben zu erstellen, umzuwandeln und auszuwählen – häufig auf Grundlage von Fachwissen. Ein Beispiel ist die Berechnung des Preises pro Quadratmeter aus Preis und Fläche. Die Merkmalsextraktion ist ein Teil davon und läuft bei Deep Learning vollständig automatisiert ab.
- Merkmalsauswahl: Behält eine Teilmenge der ursprünglichen Merkmale unverändert bei und verwirft den Rest. Bei der Merkmalsextraktion entstehen durch Umwandlung oder Kombination der ursprünglichen Merkmale neue Merkmale.
- Dimensionsreduktion: Überschneidet sich stark mit der Merkmalsextraktion; PCA zählt zu beiden. Für die Visualisierung entwickelte Methoden wie t-SNE reduzieren die Dimensionen zur Betrachtung durch Menschen und werden selten als Modelleingaben verwendet.
- Embeddings: Die Merkmalsvektoren, die ein erlernter Extraktor ausgibt. Bei Deep Learning bezeichnen „extrahierte Merkmale“ und „Embeddings“ üblicherweise dieselben Vektoren.
Ein vortrainiertes Netzwerk als Merkmalsextraktor verwenden#
Das übliche Vorgehen: Ein vortrainiertes Netzwerk wird übernommen, sein aufgabenspezifischer Kopf entfernt, Daten werden durch die eingefrorenen Schichten geleitet und die letzte Feature-Map wird zu einem Vektor pro Eingabe zusammengefasst. Bei gelabelten Daten liefert das Training eines linearen Klassifikators ausschließlich auf diesen Vektoren – das sogenannte lineare Sondieren – eine starke Ausgangsbasis, und zwar zu einem Bruchteil der Kosten eines vollständigen Netzwerktrainings. Ohne Labels findet die Vektorsuche visuell ähnliche Bilder. K-Means-Clustering gruppiert einen Datensatz zur Bereinigung und Deduplizierung. Der Abstand zu normalen Beispielen weist auf Fehler hin und hilft bei der Anomalieerkennung. Die Gewichte des Backbones ändern sich während der Merkmalsextraktion nie. Das unterscheidet sie vom Feinabstimmen.
YOLO26-Modelle bieten diese Funktion über model.embed(): Das Netzwerk wird bis zu einer ausgewählten Schicht ausgeführt und deren Feature-Map zu einem Vektor pro Bild gemittelt. embed=[10] endet an der letzten Schicht des YOLO26-Backbones.
from ultralytics import YOLO
# Ein vortrainiertes YOLO26-Modell laden; sein Backbone endet bei Schicht 10
model = YOLO("yolo26n.pt")
# Die abschließende Feature-Map des Backbones mitteln, um einen Vektor pro Bild zu erhalten
embeddings = model.embed("https://ultralytics.com/images/bus.jpg", embed=[10])
vector = embeddings[0]
print(vector.shape)Die Ausgabe ist torch.Size([256]): Das vollständige Busfoto wird auf 256 Zahlen reduziert, eine pro Kanal der Backbone-Ausgabe von YOLO26n mit Schrittweite 32. Sie eignen sich für Vektorsuche oder Clustering.










