AI-United » Allgemein » Die 7 wichtigsten Tipps zur Verbesserung der Ergebnisse beim Umgang mit kleinen Datensätzen

Die 7 wichtigsten Tipps zur Verbesserung der Ergebnisse beim Umgang mit kleinen Datensätzen

Denn meistens werden Sie damit konfrontiert.

Die 7 wichtigsten Tipps zur Verbesserung der Ergebnisse beim Umgang mit kleinen Datensätzen

Eine der verbreitetsten Meinungen in der Datenwissenschaft lautet, dass Big Data der Schlüssel zur Erstellung erfolgreicher Projekte des maschinellen Lernens ist.

Ein großes Problem besteht jedoch darin, dass viele Unternehmen nicht die Daten haben, die Sie benötigen.

Wie können Ideen für maschinelles Lernen prototypisiert und validiert werden, wenn der wichtigste Rohstoff nicht vorhanden ist? Wie können Daten effizient gewonnen und geschaffen werden, wenn die Ressourcen knapp sind?

Für einen KI-Ingenieur, der an vielen Funktionspototypen für seine Kunden arbeitet, ist es häufig notwendig, dass Small Data einen langen Weg zurücklegt. Aus diesem Grund haben wir uns zum Ziel gesetzt, in diesem Artikel 7 Tipps zur Verbesserung der Ergebnisse beim Prototyping mit kleinen Datensätzen zu geben.

1. Feststellen, dass das Modell dies nicht so gut verallgemeinern wird.

Jedes Unternehmen sollte dies als seine erste Aufgabe betrachten. Das Wissen des Modells, das Sie erstellen, basiert auf einem winzigen Teil des Universums, und deshalb sollte dies der einzige Ort oder der einzige Fall sein, wo man erwarten kann, dass es gut funktioniert.

Nehmen Sie beispielsweise als Basis für die Erstellung eines Computer Vision-Prototyps eine Auswahl von Innenaufnahmen, sollten Sie nicht damit rechnen, dass er auch im Freien gut funktioniert. Wenn Ihr Sprachmodell auf Grundlage des Chatroom-Geschwätzes erstellt wird, sollten Sie auf keinen Fall erwarten, dass es auch für einen Krimi-Roman funktioniert. 

Stellen Sie sicher, dass dies sowohl Ihr Manager als auch Ihr Kunde verstanden haben. Dadurch bekommt jeder die Möglichkeit, sich auf eine realistische Erwartung der Ergebnisse einzustellen, die Ihr Modell bieten sollte. Eine weitere Möglichkeit besteht darin, dass nützliche neue KPIs entwickelt werden, um die Modellleistung innerhalb und außerhalb des Prototypenbereichs zu quantifizieren.

2. Erstellen einer guten Dateninfrastruktur.

Sehr oft verfügt der Kunde nicht über die Daten, die Sie benötigen, und öffentliche Daten sind in diesen Fällen keine Option. In Situationen, wenn für einen Teil Ihres Prototyps erforderlich ist, dass neue Daten gesammelt und beschriftet werden, müssen Sie sicherstellen, dass Ihre Infrastruktur dafür so wenig Reibung wie möglich erzeugt. 

Sie werden sich versichern wollen, dass die Datenbeschriftung ein sehr einfacher Prozess ist, sodass sie auch von Nicht-Technikern durchgeführt werden kann. Wir haben mit der Verwendung von Prodigy begonnen, da wir ihn wegen seiner Zugänglichkeit und Erweiterbarkeit für ein gutes Tool halten. Abhängig von der Größe des Projekts können Sie auch eine automatische Datenübergabe einrichten, mit der neue Daten aufgenommen und automatisch an das Beschriftungssystem weitergeleitet werden.

Wenn die Aufnahme neuer Daten in Ihr System schnell und einfach ist, können Sie mehr Daten erhalten.

3. Durchführen einer Datenerweiterung.

Ihr Datensatz kann häufig durch die Erweiterung vorhandener Daten erweitert werden. Dies bedeutet, dass kleine Änderungen an den Daten vorgenommen werden, die die Modellausgabe nicht wesentlich verändern sollen. Beispielsweise ist ein Bild eines Hundes immer noch ein Bild eines Hundes, wenn es um 50 Grad gedreht ist.

Meistens ermöglichen Ihnen die Erweiterungsmethoden, viele weitere „halb-einzigartige“ Datenpunkte für das Training Ihres Modells zu erzeugen. Zu Beginn können Sie versuchen, Ihren Daten kleine Mengen an Gauß’schem Rauschen hinzuzufügen. 

Für die Computer Vision existieren viele nützliche Möglichkeiten zur Erweiterung Ihrer Bilder. Eine der gebräuchlichsten Bibliotheken in diesem Bereich ist Albumentations, mit deren Hilfe viele nützliche Bildtransformationen durchgeführt werden können, während Ihre Beschriftungen unversehrt bleiben.

Eine weitere nützliche Erweiterungmethode ist Mixup. Sie besteht darin, dass zwei Eingabebilder aufgenommen, zusammengemischt  und ihre Beschriftungen kombiniert werden.

Bei der Erweiterung anderer Arten von Eingabedaten ist es wichtig zu beachten, welche Transformationen eine Beschriftung verändern würden und welche nicht. 

4. Erzeugen einiger synthetischer Daten.

Wenn Ihre Möglichkeiten zum Erweitern realer Daten erschöpft sind, könnten Sie darüber nachdenken, gefälschte Daten zu erstellen. Das Erzeugen synthetischer Daten bietet eine ausgezeichnete Möglichkeit zum Abdecken einiger Randfälle, die Ihr realer Datensatz nicht abdecken kann.

Ein gutes Beispiel dafür sind viele Systeme des bestärkenden Lernens in der Robotik (wie OpenAIs Dactyl), die in simulierten 3D-Umgebungen trainiert werden, um für echte Roboter eingesetzt werden zu können. Auf ähnliche Art und Weise können auch für Bilderkennungssysteme 3D-Szenen erstellt werden, die Tausende von neuen Datenpunkte liefern könnten.

Die 15 simulierten Beispiele von Dactyl-Training parallel.

Um synthetische Daten zu erstellen, werden viele Ansätze verwendet. Bei Kanda wird zur Erstellung der Daten für Objekterkennung eine auf Plattentellern basierende Lösung entwickelt. Sollten Sie eine sehr hohe Datenanforderung haben, steht Ihnen Generative Adverserial Networks zur Verfügung, mit dem synthetische Daten erstellt werden können. Wie bekannt ist es ziemlich schwer, GANs zu trainieren. Deshalb sollen Sie zunächst sicherstellen, dass es sich überhaupt lohnt.

GauGAN von NVIDIA im Einsatz!

Das Kombinieren der Ansätze ist nicht ausgeschlossen: Apple bietet eine sehr clevere Möglichkeit zur Verarbeitung der Bilder von 3D-modellierten Gesichtern mithilfe des GAN, damit sie fotorealistischer aussehen. Fantastische Technik zur Erweiterung Ihres Datensatzes, wenn Sie viel Zeit haben.

5. Vorsicht vor vielversprechenden Spaltungen.

Beim Training von Modellen des maschinellen Lernens ist es häufig üblich, den Datensatz zufällig nach einem bestimmten Verhältnis in Training- und Testsätze aufzuteilen. Im Allgemeinen ist das in Ordnung. Wenn Sie jedoch mit kleinen Datensätzen arbeiten, besteht aufgrund der geringen Anzahl der Trainingsbeispiele ein großes Rauschrisiko.

In dieser Situation kann versehentlich eine vielversprechende Spaltung entstehen, dies bedeutet, dass ein bestimmter Datensatz aufgeteilt wird, wo Ihr Modell wirklich gut funktioniert und sich auf den Testsatz verallgemeinert. In Wirklichkeit lässt es sich jedoch dadurch erklären, dass keine schwierigen Beispiele im Testsatz (nach Zufall) vorhanden sind. 

In diesem Fall ist es am besten, die k-fache Kreuzvalidierung zu verwenden. Wie funktioniert sie? Im Grunde genommen wird der Datensatz in k „Falten“ aufgeteilt und für jedes k ein neues Modell trainiert. Dabei wird eine Falte für den Testsatz und der Rest für das Training verwendet. Dadurch wird kontrolliert, dass die Testleistung, die Sie sehen, nicht einfach auf eine vielversprechende (oder nicht vielversprechende) Spaltung zurückzuführen ist.

6. Verwenden des Transferlernens.

Wenn Ihre Tätigkeit im Bereich des etwas standardisierten Datenformats wie Text, Bild, Video oder Ton liegt, haben Sie die Möglichkeit, alle früheren Arbeiten, die andere auf diesen Gebieten geleistet haben, mithilfe des Transferlernens zu nutzen. Es ist, als würde man auf den Schultern von Riesen stehen.

Beim Durchführen des Transferlernens nehmen Sie die von anderen aufgebaute Modelle (mit „anderen“ sind häufig Google, Facebook oder eine große Universität gemeint), um sie an Ihre speziellen Bedürfnisse abzustimmen.

Als Basis für das Funktionieren des Transferlernens dient die Tatsache, dass sich die meisten mit Sprache, Bildern oder Ton verbunden Aufgaben viele gemeinsame Merkmale auszeichnen. Bei der Computer Vision handelt es sich beispielsweise um das Erkennen bestimmter Arten von Formen, Farben oder Mustern.

Vor kurzem haben uns damit beschäftigt, einen Objekterkennungsprototyp mit hohen Genauigkeitsanforderungen zu erstellen. Uns ist es gelungen, die Entwicklung durch die Verfeinerung von MobileNet Single Shot Detector enorm zu beschleunigen, der auf Googles Open Images v4-Datensatz (ungefähr 9 Millionen beschriftete Bilder!) trainiert wurde. Nach einem Trainingstag waren wir in der Lage, ein ziemlich robustes Objekterkennungsmodell mit einem Test-mAP von 0,85 zu erstellen, wobei circa 1.500 beschriftete Bilder verwendet wurden.

7. Verwenden eines Ensembles von „schwachen Lernenden“.

Manchmal können Sie damit konfrontiert sein, dass Ihnen ungenügend Daten zur Verfügung stehen, um etwas Außergewöhnliches zu tun. In diesem Fall können Sie einen der vielen traditionellen Algorithmen des maschinellen Lernens verwenden, die weniger empfindlich auf die Größe Ihres Datensatzes sind.

Bei einem kleinen Datensatz und hoher Dimensionalität der Datenpunkte eignen sich am besten Algorithmen wie die Support Vector Machine.

Da diese Algorithmen nicht immer so genau wie die modernsten Methoden sind, können Sie als „schwache Lernende“ genannt werden, zumindest, wenn sie mit stark parametrisierten neuronalen Netzen verglichen werden.

Um die Leistung zu verbessern, können mehrere dieser „schwachen Lernenden“ kombiniert werden (dies kann beispielsweise eine Reihe von Support Vector Machines oder Entscheidungsbäumen sein). Durch ihre „Zusammenarbeit“ wird eine Vorhersage erzeugt. Genau darum handelt es sich beim Ensemble-Lernen.

Sollten Sie weitere Anregungen dazu haben, wie die Ergebnisse beim Umgang mit kleinen Datensätzen verbessert werden können, so können Sie sich an das Team von AI-United.de per Mail oder Q&A wenden.

Quelle

AI-United-Redaktion

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.