April 28, 2022

Wie man gute Datenerweiterungsstrategien fĂŒr ML entdeckt

Mitwirkende
Arne Vandendorpe
Machine Learning Engineer
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

‍

In frĂŒheren Blogposts haben wir darĂŒber gesprochen, wie man eine Kamera fĂŒr sein Computer Vision Projekt auswĂ€hlt und wie man die mit dieser Kamera aufgenommenen Daten korrekt beschriftet . Gehen wir also davon aus, dass wir an diesem Punkt unseren beschrifteten Datensatz bereit haben. Wir können nun einen Schritt weitergehen und uns mit der Praxis der Datenerweiterung befassen, d. h. mit der VergrĂ¶ĂŸerung unseres Datensatzes, indem wir kleine Variationen der vorhandenen Datenpunkte erstellen.

In diesem Blogpost geben wir eine kurze Auffrischung (oder Fibel) darĂŒber, was Datenerweiterung ist. Dann gehen wir dazu ĂŒber, zu begrĂŒnden, warum wir immer noch ĂŒber ein Konzept sprechen, das heute so gut etabliert und allgemein akzeptiert ist, und stellen es in den Kontext des aktuellen Themas der datenzentrierten KI. Abschließend erlĂ€utern wir, wie wir bei ML6 an die Datenerweiterung herangehen.

"Gib einem Mann einen großen Datensatz und er wird die Daten haben, um ein starkes Modell zu trainieren. Bringe einem Mann gute Verfahren zur Datenerweiterung bei, und er wird Daten fĂŒr ein ganzes Leben haben."

‍

Eine Fibel/Auffrischung zur Datenerweiterung

‍

(Wenn Sie mit dem Konzept der Datenerweiterung bereits vertraut sind, ist dieser kurze Abschnitt nicht fĂŒr Sie bestimmt. Sie können gerne zum nĂ€chsten Abschnitt ĂŒbergehen und ich werde Sie dort treffen).

‍

Die Praxis der Datenerweiterung zielt darauf ab, den Umfang Ihres Datensatzes zu vergrĂ¶ĂŸern, indem ein vorhandener Datenpunkt genommen und so umgewandelt wird, dass ein neuer, aber immer noch realistischer Datenpunkt entsteht. Die Vorteile sind zweifach:

  1. Wir erhöhen den Umfang unseres Datensatzes, so dass unser Modell mit mehr Beispielen trainieren und daraus lernen kann.
  2. Die Robustheit unseres Modells nimmt zu und das Risiko einer Überanpassung sinkt, da das Modell lernen muss, die von uns eingefĂŒhrten Transformationen zu ignorieren, indem es die zugrunde liegenden Daten versteht, anstatt sie auswendig zu lernen.

Ein kurzes Beispiel hilft, die Dinge zu verdeutlichen: Stellen Sie sich vor, wir trainieren ein Modell zur Erkennung von Vögeln. Im folgenden Beispiel haben wir links ein Bild eines Vogels, das aus unserem ursprĂŒnglichen Datensatz stammt. Auf der rechten Seite sehen wir drei Transformationen des Originalbildes, von denen wir erwarten, dass unser Modell sie trotzdem als Vogel interpretiert. Die ersten beiden sind ganz einfach: Ein Vogel ist ein Vogel, egal ob er nach Osten oder Westen, nach oben oder nach unten fliegt. Im dritten Beispiel sind der Kopf und der Körper des Vogels kĂŒnstlich verdeckt worden. Dieses Bild wĂŒrde unser Modell dazu bringen, sich auf gefiederte FlĂŒgel als Merkmal von Vögeln zu konzentrieren.

Beispiel fĂŒr grundlegende Techniken zur Datenerweiterung
Beispiel fĂŒr grundlegende Techniken zur Datenerweiterung: Horizontales Spiegeln, zufĂ€lliges Drehen und partielle Okklusion

‍

Wenn Sie an einer detaillierteren EinfĂŒhrung in die Datenerweiterung und die vielen hĂ€ufig verwendeten Transformationen interessiert sind, empfehlen wir Ihnen, sich eine der vielen guten Ressourcen wie diese und diese anzusehen.

‍

Datenzentrierte KI

Techniken zur Datenerweiterung fĂŒr das maschinelle Lernen, insbesondere fĂŒr das Computer-Vision-Verfahren, gibt es schon sehr lange und es hat sich immer wieder gezeigt, dass sie funktionieren. Selbst einer der ersten Erfolge mit faltigen neuronalen Netzen, Yann LeCuns LeNet-5 (veröffentlicht 1998), befĂŒrwortet bereits die "kĂŒnstliche Erzeugung von mehr Trainingsmustern durch zufĂ€llige Verzerrungen". Daher könnte man meinen, dass die Förderung der Datenerweiterung fĂŒr Praktiker des maschinellen Lernens wie eine Predigt vor dem Chor ist. Warum tun wir es dann?

Nun, wir befinden uns in guter Gesellschaft: Andrew Ng, MitbegrĂŒnder und ehemaliger Leiter von Google Brain, steht an der Spitze eines Wandels in der KI-Forschung und -Nutzung hin zu dem, was er als "datenzentrierte KI" bezeichnet, und weg von der Praxis der "modellzentrierten KI", die die Forschung ĂŒber die Jahre hinweg dominiert hat. Der Grundgedanke ist, dass unverhĂ€ltnismĂ€ĂŸig viel Zeit fĂŒr die Erforschung von Modellarchitekturen aufgewendet wird, wĂ€hrend die Forschung im Bereich der Datenbereinigung, -erweiterung und MLOps-Praktiken weit weniger populĂ€r ist und mehr Aufmerksamkeit verdient. Weitere Informationen finden Sie in Andrews Vortrag (oder den Folien).

"Das maschinelle Lernen ist so weit ausgereift, dass leistungsstarke Modellarchitekturen weithin verfĂŒgbar sind, wĂ€hrend die AnsĂ€tze fĂŒr die Entwicklung von DatensĂ€tzen zurĂŒckgeblieben sind."

Er hat auch den ersten datenzentrierten KI-Wettbewerb ins Leben gerufen. Bei herkömmlichen Kaggle-Wettbewerben werden Sie aufgefordert, ein Modell mit einem festen Datensatz zu trainieren und einzureichen. Hier wird das Format umgedreht und jeder Teilnehmer wird gebeten, einen Datensatz einzureichen, der dann zum Trainieren eines festen Modells verwendet wird.

Auch wenn die datenzentrierte KI ein breiteres Spektrum an Praktiken und Konzepten umfasst als nur die Datenanreicherung, ist sie dennoch ein wichtiger Teil davon. Wir reiten also nicht auf einem toten Pferd herum, wenn wir das Thema Datenanreicherung in diesem Blogpost noch einmal aufgreifen.

‍

Praktische Datenerweiterung

Bisher haben wir kurz erlÀutert, was Datenerweiterung ist, und wir haben festgestellt, dass dies immer noch ein aktuelles Thema ist. Kommen wir nun zum GeschÀft (Wert).

NatĂŒrlich hat jeder Anwendungsfall, den wir angehen, und jeder Datensatz, den wir verwenden oder erstellen, seine eigenen, einzigartigen Feinheiten. Im Allgemeinen gibt es jedoch drei Leitprinzipien, an die wir uns halten: solide Baselines, Kenntnis des Modells und Einbringung von Expertenwissen, wo immer möglich:

‍

1. Starke Grundlinien

‍

Maschinelles Lernen ist ein iterativer Prozess: Änderungen vornehmen, trainieren, bewerten und wiederholen. Daher ist es wichtig, einen guten Ausgangspunkt zu haben, so dass nachfolgende Iterationen mit diesem Ausgangspunkt verglichen werden können, um schnell herauszufinden, was funktioniert und was nicht. Dieser Ansatz gilt auch fĂŒr die Datenerweiterung.

Eine besonders interessante Entwicklung in dieser Hinsicht ist Googles AutoAugment. Sie formulieren das Problem, die beste Erweiterungspolitik fĂŒr einen Datensatz zu finden, als ein diskretes Suchproblem. In ihrem Papier zeigen sie die optimalen entdeckten Augmentierungsstrategien fĂŒr DatensĂ€tze: CIFAR-10, SVHN und ImageNet. Okay, toll, Problem gelöst also? Nun, nicht ganz. Die Suche nach einer optimalen Erweiterungsstrategie fĂŒr einen ausreichend großen Suchraum erfordert eine Menge Rechenleistung. Aus diesem Grund ist die AusfĂŒhrung von AutoAugment auf Ihrem eigenen Datensatz keine praktikable Option. Aber es gibt eine gute Nachricht. Die Autoren von AutoAugment argumentieren, dass gelernte Richtlinien zwischen verschiedenen DatensĂ€tzen ĂŒbertragbar sind, z. B. dass eine optimale Richtlinie fĂŒr ImageNet auch auf anderen, ImageNet-Ă€hnlichen DatensĂ€tzen gut funktioniert. Wir sehen hier eine offensichtliche Parallele zum Transfer-Lernen, bei dem vortrainierte Gewichte aus einem Datensatz oft auch in anderen DatensĂ€tzen gute Ergebnisse liefern. Folglich kann eine AutoAugment-Richtlinie als solide Basis fĂŒr eine große Bandbreite von DatensĂ€tzen verwendet werden.

Seit seiner Veröffentlichung wurden Verbesserungen wie Fast AutoAugment und RandAugment vorgeschlagen, um AutoAugment weniger rechenintensiv zu machen, aber die zentrale Idee ist dieselbe geblieben: die automatische Suche nach einer guten Augmentierungspolitik fĂŒr einen gegebenen Datensatz. Es gibt auch eine Version von AutoAugment, die vollstĂ€ndig auf die Objekterkennung ausgerichtet ist.

Immer noch nicht ĂŒberzeugt? Beachten Sie, dass eines der Gewinnerteams des bereits erwĂ€hnten datenzentrierten KI-Wettbewerbs, Synaptic-AnN, genau diese Strategie als Teil seiner Siegerlösung verwendet hat. Sie bemerkten, dass der Datensatz des Wettbewerbs (römische Ziffern) eine gewisse Ähnlichkeit mit dem SVHN-Datensatz (Street View House Numbers) aufwies, fĂŒr den es eine erlernte AutoAugment-Richtlinie gibt, die sie als Ausgangspunkt fĂŒr ihre Verbesserungen nutzten:

"Wir untersuchten die Möglichkeiten der Verwendung von AutoAugment um die Parameter der Augmentationstechnik zu erlernen, aber aufgrund begrenzter Rechenressourcen und unzureichender Daten sind die Ergebnisse der Arbeit fĂŒr den SVHN-Datensatz auf den Wettbewerbsdatensatz angewendet. Wir stellten fest, dass Augmentationstechniken wie Solarize und Invert ineffektiv waren und entfernten sie daher aus der endgĂŒltigen SVHN-Policy. Diese Methode fĂŒhrte zu einer deutlichen Leistungssteigerung und wurde gewĂ€hlt, weil der SVHN-Datensatz Graustufen aufweist und mit Zahlendarstellungen (Hausnummern) zu tun hat. Wir haben auch andere Auto-Augment-Verfahren auf der Grundlage von CIFAR10 und ImageNet untersucht, aber diese waren nicht so effektiv wie SVHN."

‍

2. Kennen Sie Ihr Modell

‍

Wenn Sie dachten, der Begriff "datenzentrierte KI" wĂŒrde Sie davon entbinden, Ihr Modell zu verstehen, dann irren Sie sich. Einige Modelle werden mit Blick auf eine bestimmte Datenaufbereitung entwickelt. Wenn Sie dies außer Acht lassen, kann sich das negativ auf die Leistung Ihres Modells auswirken.

Ein Paradebeispiel dafĂŒr ist YOLOv4, das nach wie vor ein sehr beliebtes Modell zur Objekterkennung ist. Einer der BeitrĂ€ge, die zum Erfolg des Modells beitragen, ist die sogenannte Bag of Freebies (BoF). Dabei handelt es sich um Techniken, die die Leistung des Modells verbessern, ohne das Modell zum Zeitpunkt der Inferenz zu beeinflussen, einschließlich der Datenerweiterung. Die Augmentationstransformationen, die aufgrund von Ablationsexperimenten tatsĂ€chlich in BoF aufgenommen wurden, sind CutMix und Mosaic Data Augmentation. Diese Augmentierungen sind also ebenso Teil des Modells wie die Modellarchitektur selbst.

‍

3. Expertenwissen

‍

Jahre der "modellzentrierten KI" haben dazu gefĂŒhrt, dass hochleistungsfĂ€hige Modellarchitekturen und vortrainierte Gewichte zum Standard gehören. DarĂŒber hinaus haben Forschungsentwicklungen wie AutoAugment dazu gefĂŒhrt, dass starke Augmentierungs-Baselines weithin anwendbar sind. Gibt es in dieser Geschichte also noch Platz fĂŒr Expertenwissen? Kann ein erfahrener ML-Praktiker immer noch einen Unterschied machen und den letzten Tropfen Leistung aus den Daten herausquetschen? Wir glauben, dass die Antwort ein klares "Ja" ist.

Werfen wir noch einmal einen Blick auf die Lösung von Synaptic-AnN. Nachdem sie die AutoAugment-Richtlinie fĂŒr den SVHN-Datensatz verwendet hatten, stellten sie die wichtigsten Unterschiede zwischen SVHN und ihrem Datensatz fest und kamen zu dem Schluss, dass einige Augmentierungen fĂŒr ihren Datensatz nicht sinnvoll waren: Solarisieren und Invertieren. Diese Strategie fĂŒhrte zu einer erheblichen Leistungssteigerung.

In Ă€hnlicher Weise haben viele AnwendungsfĂ€lle, mit denen wir uns bei ML6 befassen, sehr spezifische DatensĂ€tze, und die Nichtbeachtung der feinen Unterschiede zwischen ihnen wĂŒrde dazu fĂŒhren, dass die Modellleistung auf der Strecke bleibt. Nehmen wir zum Beispiel die automatische QualitĂ€tskontrolle in einer Fertigungsstraße. Bildverarbeitungsanwendungen in der Fertigung ermöglichen in der Regel eine sehr kontrollierte Umgebung: Es gibt eine konstante Beleuchtung, einen festen Blickwinkel, einen festen Abstand zum Objekt... Folglich ist es unnötig, Augmentierungen zu verwenden, um unser Modell invariant gegenĂŒber LichtverhĂ€ltnissen, Blickwinkeln oder der ObjektgrĂ¶ĂŸe zu machen. Stattdessen sollten wir uns auf Erweiterungen konzentrieren, die plausible Variationen der Defekte erzeugen, die wir zu erkennen versuchen.

‍

Fazit

‍

Wenn Sie den Datensatz fĂŒr Ihr nĂ€chstes ML-Projekt gesammelt und beschriftet haben, sollten Sie sich etwas Zeit nehmen, um eine gute Strategie fĂŒr die Datenerweiterung zu erstellen und zu entwickeln. Beginnen Sie mit der Anwendung einer soliden Basisstrategie und erweitern Sie diese, indem Sie Expertenwissen einbeziehen, indem Sie Ihre Daten und Ihren Anwendungsfall verstehen. Schließlich sollten Sie sich die Zeit nehmen, die innere Funktionsweise Ihres Modells zu verstehen, um sicherzustellen, dass Ihre Erweiterungsstrategien darauf abgestimmt sind.

‍


‍

‍

Verwandte BeitrÀge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu Àndern.
Großes Sprachmodell
Stiftung Modelle
Unternehmen
Unser Team
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natĂŒrlicher Sprache
Computer Vision