Best Practices

Auf dieser Seite werden Best Practices für das Vorbereiten von Daten, Bewerten von Modellen und für die Verbesserung der Modellleistung beschrieben.

Daten vorbereiten

  • Die Daten, die Sie für das Training verwenden, sollten den Daten, für die Sie Vorhersagen treffen möchten, möglichst ähnlich sein. Wenn Ihr Anwendungsfall beispielsweise verschwommene Videos mit niedriger Auflösung (z. B. die Aufnahmen von einer Überwachungskamera) umfasst, sollten Ihre Trainingsdaten aus verschwommenen Videos mit niedriger Auflösung bestehen. Sie sollten außerdem mehrere Blickwinkel, Auflösungen und Hintergründe für Ihre Trainingsvideos bereitstellen.
  • Ihre Trainingsdaten müssen gewisse Mindestanforderungen erfüllen:

    • Alle Ihre Daten sollten mit Labels versehen sein.
    • Ihre Labels müssen gültige Strings sein (keine Kommas).
    • Alle Videosegmente sollten gültige Zeitstempel haben. Die Segmente müssen eine Start- und eine Endzeit haben. Die Endzeit muss größer als 0 und kleiner als die Gesamtdauer des Videos sein und die Startzeit muss vor der Endzeit liegen.
    • Alle Video-URIs in Ihrer CSV-Datei müssen in einem zugänglichen Cloud Storage-Bucket gespeichert werden.
    • Ihre Daten sollten mindestens 2 verschiedene Klassen mit jeweils mindestens 10 Elementen umfassen.
  • Je mehr Trainings- und Testdaten Sie haben, desto besser. Je leistungsfähiger das Modell ist, desto datenhungriger wird es.

  • Die Datenmenge, die zum Trainieren eines guten Modells benötigt wird, hängt von verschiedenen Faktoren ab:

    • Die Anzahl der Klassen: Je mehr eindeutige Klassen Sie haben, desto mehr Proben werden pro Klasse benötigt.
    • Komplexität oder Vielfalt der Klassen: Neuronale Netzwerke können schnell zwischen Lauf- und Schwimmvideos unterscheiden, würden jedoch eine viel größere Anzahl von Proben benötigen, um 30 verschiedene Tanzstile zu klassifizieren.
    • Modelle mit mehreren Labels sind schwieriger zu trainieren als Modelle mit mehreren Klassen. Wenn die meisten Ihrer Fälle nur ein Label pro Probe haben, sollten Sie statt eines Modelltrainings mit mehreren Labels eines mit mehreren Klassen in Betracht ziehen.
  • Als Faustregel sollte gelten, dass Sie mindestens 200 Trainingsproben pro Klasse haben, wenn unverwechselbare und wenige Klassen vorliegen, und mehr als 1000 Trainingsproben, wenn die Klassen differenzierter sind und mehr als 50 verschiedene Klassen vorliegen.

  • Vermeiden Sie es, ein Modell mit sehr unausgewogenen Daten zu trainieren. In vielen Fällen ist die Anzahl der Proben pro Klasse nicht gleich. Solange die Unterschiede nicht groß sind, ist es nicht so schlimm. Wenn jedoch ein größeres Ungleichgewicht besteht (z. B. wenn einige Klassen mehr als zehnmal häufiger als andere auftreten), wird dies zu einem Problem. AutoML Video Classification versucht zwar, Korrekturen für Klassenungleichgewichte vorzunehmen, doch dies ist keine ideale Konfiguration für das Modelltraining.

Weitere Informationen finden Sie unter Daten vorbereiten.

Daten aufteilen

Beim maschinellen Lernen unterteilen Sie Ihre Datasets normalerweise in drei separate Teilmengen: ein Trainings-Dataset, ein Validierungs-Dataset und ein Test-Dataset. Das Trainings-Dataset wird zum Erstellen eines Modells verwendet. Bei der Suche nach Mustern in den Trainingsdaten probiert das Modell mehrere Algorithmen und Parameter aus. Wenn das Modell Muster erkennt, verwendet es das Validierungs-Dataset, um die Algorithmen und Muster zu testen. Von den Algorithmen und Mustern, die während des Trainings verwendet wurden, werden die mit der besten Leistung ausgewählt.

Nachdem die besten Algorithmen und Muster ermittelt wurden, werden sie mit dem Test-Dataset auf Fehlerrate, Qualität und Genauigkeit getestet. Sie sollten ein separates Test-Dataset haben, mit dem Sie Ihr Modell unabhängig testen können.

Es wird sowohl ein Validierungs- als auch ein Test-Dataset verwendet, um Verzerrungen im Modell zu vermeiden. Während der Validierungsphase werden optimale Modellparameter verwendet, was zu verzerrten Messwerten führen kann. Die Verwendung des Test-Datasets zur Bewertung der Qualität des Modells nach der Validierungsphase ermöglicht eine unvoreingenommene Qualitätsbeurteilung des Modells.

Beachten Sie beim Aufteilen Ihrer Daten die folgenden Best Practices:

  • Alle Datasets (auch als Dataset-Splits bezeichnet) sollten dieselbe Grundgesamtheit repräsentieren, ähnliche Videos und eine ähnliche Verteilung von Labels haben.

    Wenn Sie Ihre Daten bereitstellen, kann AutoML Video Classification diese automatisch in Trainings-, Validierungs- und Test-Datasets aufteilen. Sie können die Labels für die Trainings-Splits auch selbst vergeben. Alle Proben sollten entweder aus einem einzelnen Video stammen oder aus vielen Videos. Nur wenige Videos zu haben, könnte gefährlich sein, wenn die Videos unterschiedlich sind oder die Labelverteilung innerhalb der Videos nicht gleich ist. Dies liegt daran, dass AutoML Video Classification die Aufteilungen für Training, Validierung und Test auf Videoebene erstellt.

    Wenn Sie beispielsweise nur 3 Videos mit Tausenden von kommentierten Videosegmenten haben, einige Klassen aber nur in einzelnen Videos vorhanden sind, kann es vorkommen, dass das Modell für einige der Labels nicht trainiert wird und diese Labels während der Vorhersage möglicherweise nicht erkennt.

  • Vermeiden Sie einen Datenverlust. Datenverlust tritt auf, wenn der Algorithmus während des Modelltrainings Informationen verwenden kann, die er nicht verwenden sollte, und die bei zukünftigen Vorhersagen nicht verfügbar sein werden. Dies kann zu übermäßig optimistischen Ergebnissen bei Trainings-, Validierungs- und Test-Datasets führen, funktioniert jedoch möglicherweise nicht so gut, wenn Vorhersagen für zukünftige, nicht bekannte Daten gemacht werden sollen.

    Einige Beispiele für Datenverluste: eine Verzerrung basierend auf dem Betrachtungswinkel der Kamera oder den Lichtbedingungen (morgens/abends); eine Verzerrung in Richtung von Videos mit Kommentatoren gegenüber solchen, die dies nicht haben; ein Verzerrung basierend auf Videos mit bestimmten Labels, die aus bestimmten Regionen oder Sprachgruppen oder von bestimmten Kommentatoren stammen oder dasselbe Logo enthalten.

    Gehen Sie folgendermaßen vor, um Datenverluste zu vermeiden:

    • Sorgen Sie für einen gut diversifizierten Satz von Videos und Videosegmenten.
    • Überprüfen Sie die Videos darauf, dass es keine versteckten Hinweise gibt. (Beispiel: Videos mit positiven Proben wurden am Nachmittag aufgenommen, während Videos mit negativen Proben am Morgen aufgenommen wurden.)

Weitere Informationen finden Sie unter Daten vorbereiten.

Beispieldatenquellen

Beispiele für Datenquellen finden Sie in den folgenden öffentlich verfügbaren Video-Datasets:

  • UCF-101: Aktionserkennungs-Dataset (101 Klassen; mehrklassig; 13320 kurze Videos/Proben)
  • HMDB-51: Human Motion DataBase (51 Klassen; mehrklassig; 6849 kurze Videos/Proben)
  • Kinetics: Ein umfangreiches Dataset für die Aktionserkennung (400/600/800 Klassen; mehrklassig; mehr als 400.000 kurze Videos/Proben)
  • Something-Something: Aktionen von Menschen mit Objekten (174 Klassen; 220847 Videos/Proben)
  • AVA: Umfassend mit Annotationen versehene Atomic Visual Actions (80 Klassen, mit mehreren Labels versehen; 1,58 Mio. Annotationen in 430 15-minütigen Videoclips)

Mein Modell trainieren

Je nach Ihren Anforderungen können Sie dieselben Daten zum Trainieren verschiedener Modelle und zum Generieren unterschiedlicher Vorhersagetypen verwenden. Wenn Sie dasselbe Modell mit denselben Daten trainieren, kann dies außerdem zu leicht unterschiedlichen Ergebnissen führen. Das Training des neuronalen Netzwerkmodells umfasst randomisierte Vorgänge, sodass nicht garantiert werden kann, dass genau das gleiche Modell mit denselben Eingaben trainiert wird. Die Vorhersagen können daher geringfügig abweichen.

Weitere Informationen finden Sie unter Modelle verwalten.

Modelle bewerten

Wenn das Modell mit dem Training fertig ist, können Sie die Leistung anhand von Validierungs- und Test-Datasets oder Ihren eigenen neuen Datasets bewerten.

Übliche Klassifizierungsmesswerte sind:

  • Die "Fläche unterhalb der Kurve" (Area Under the Curve, AUC), auch als "Fläche unterhalb Grenzwertoptimierungskurve" (Receiver Operating Curve, ROC) bezeichnet. Die Kurve zeigt die Trefferquote über der Wahrscheinlichkeit eines Fehlalarms bei verschiedenen Punktzahl-Schwellenwerten. Der AUC-Wertebereich liegt zwischen 0,5 und 1,0. Dieser Messwert wird hauptsächlich für binäre Klassifizierungsprobleme verwendet.
  • Die "Fläche unter der Genauigkeits-/Trefferquotenkurve" (Area Under the Precision/Recall Curve, AuPRC), auch als "durchschnittliche Genauigkeit" (average precision, AP) bezeichnet: Hierbei handelt es sich um das Integral der Genauigkeitswerte über den Bereich der Trefferquoten. Dieser Messwert wird am besten für binäre Probleme interpretiert.
  • Die "mittlere durchschnittliche Genauigkeit" (mean average precision, mAP oder MAP) kann als der Mittelwert der durchschnittlichen Genauigkeit (AP) über mehrere Klassen oder Labels angesehen werden. Manchmal werden mAP und AP gleichbedeutend verwendet.
  • Die "Genauigkeit" stellt die Quote der Proben dar, die richtig klassifiziert wurden.
  • Bei Problemen mit binären und mehreren Klassen können Sie die Genauigkeit und die Trefferquote bei verschiedenen Konfidenzwert-Schwellenwerten auch unabhängig voneinander überprüfen.
  • Wenn es nicht zu viele Labels mit mehreren Klassen gibt, können Sie anhand der Wahrheitsmatrix untersuchen, welche Labels für welche Vorhersagen falsch klassifiziert wurden. Sie können aber auch über die Benutzeroberfläche die am häufigsten falsch klassifizierten Klassen in der Wahrheitsmatrix einsehen.

Nicht alle Messwerte können für die verschiedenen Probleme der Videoklassifizierung verwendet werden. Das intuitive Verständnis von Genauigkeit und Trefferquote aus einer binären Klassifizierung wird beispielsweise weniger klar, wenn mehrere Klassen betrachtet werden (Problem mit mehreren Klassen) oder wenn mehrere gültige Labels pro Probe vorhanden sind (Problem mit mehreren Labels). Speziell für den letzteren Fall gibt es keinen einheitlich anerkannten Messwert. Sie könnten jedoch den Messwert "Durchschnittliche Genauigkeit" bei Bewertungsentscheidungen berücksichtigen.

Beachten Sie jedoch, dass eine Bewertung der Modellleistung anhand von einer einzelnen Zahl oder eines einzelnen Messwerts eine übermäßige Vereinfachung bedeutet. Sehen Sie sich verschiedene Messwerte und beispielsweise auch die grafischen Darstellungen von Genauigkeits- und Trefferquotenkurven oder die Verteilung falsch klassifizierter Proben, beispielsweise in der Wahrheitsmatrix, an.

Weitere hilfreiche Tipps zur Bewertung Ihres Modells:

  • Achten Sie auf die Verteilung von Labels in Ihren Trainings- und Test-Datasets. Wenn die Datasets unausgewogen sind, können Messwerte mit hoher Genauigkeit irreführend sein. Da standardmäßig alle Proben bei der Bewertung gleich gewichtet werden, kann ein häufiger auftretendes Label mehr Gewicht haben. Liegen beispielsweise zehnmal mehr positive Labels als negative vor und das Netzwerk beschließt, einfach alle Proben den positiven Labels zuzuweisen, können Sie immer noch eine Genauigkeit von 91 % erreichen. Dies bedeutet jedoch nicht, dass das trainierte Modell besonders nützlich ist.

  • Sie können auch versuchen, Ground-Truth- und Vorhersage-Labels beispielsweise in einem Python-Skript mithilfe von scikit-learn zu analysieren. Dabei könnten Sie verschiedene Methoden zur Gewichtung der Labels während der Bewertung prüfen: Zu den gängigen Ansätzen gehören die Makromittelung (Messwerte werden pro Klasse berechnet und dann gemittelt), die gewichtete Mittelung (Messwerte werden pro Klasse berechnet und dann mit einer Gewichtung gemittelt, die auf der Häufigkeit von einzelnen Klassen basiert) und die Mikromittelung (alle Proben haben das gleiche Gewicht, unabhängig von möglichen Ungleichgewichten).

  • Bei der Fehlerbehebung eines Modells geht es eher darum, Fehler in den Daten statt im Modell zu beheben. Wenn sich Ihr Modell unerwartet verhält, während Sie die Leistung vor und nach der Fertigstellung bewerten, sollten Sie die bisherigen Schritte überprüfen, um festzustellen, wo die Daten verbessert werden könnten.

Weitere Informationen finden Sie unter Modelle bewerten.

Modell in der Google Cloud Console bewerten

Auf dem Tab Bewerten der AutoML Video Classification-UI können Sie die Leistung Ihres benutzerdefinierten Modells anhand der Ausgabe des Modells in Testbeispielen und allgemeinen Messwerten für maschinelles Lernen bewerten. Der Tab enthält die folgenden Informationen zu Ihrem Modell:

  • Modellausgabe
  • Punktzahl-Schwellenwert
  • Richtig positive, richtig negative, falsch positive und falsch negative Ergebnisse
  • Genauigkeit und Trefferquote
  • Genauigkeits-/Trefferquotenkurven
  • Durchschnittliche Genauigkeit

Beachten Sie beim Lesen der Modellbewertungsdaten in der Google Cloud Console Folgendes:

  • AutoML Video Classification ruft Beispielvideosegmente aus Ihren Testdaten ab, um Ihr Modell vor völlig neue Herausforderungen zu stellen. Für jedes Beispiel gibt das Modell eine Reihe von Zahlen aus, die angeben, wie stark jedes Label diesem Beispiel zugeordnet wird. Wenn die Zahl hoch ist, ist das Modell sehr sicher, dass das Label auf dieses Dokument angewendet werden sollte.

  • Sie können die Konfidenzwerte in einen binären Ein/Aus-Wert konvertieren. Legen Sie hierzu einen Schwellenwert für die Bewertung fest. Der Bewertungsschwellenwert bezieht sich auf den Vertrauensgrad, den das Modell haben muss, um einem Testobjekt eine Kategorie zuzuweisen. Der Schieberegler für den Punktzahl-Schwellenwert in der Benutzeroberfläche ist ein visuelles Werkzeug, mit dem Sie die Auswirkungen verschiedener Schwellenwerte für alle Kategorien und einzelne Kategorien in Ihrem Dataset testen können. Wenn der Punktzahl-Schwellenwert niedrig ist, klassifiziert Ihr Modell mehr Videosegmente. Dabei besteht jedoch die Gefahr, dass einige Videosegmente falsch klassifiziert werden (weniger falsch negative Ergebnisse, aber viele falsch positive Ergebnisse). Wenn der Punktzahl-Schwellenwert hoch ist, klassifiziert Ihr Modell weniger Videosegmente. Dabei besteht jedoch ein geringeres Risiko, Videosegmente falsch zu klassifizieren (wenige falsch positive Ergebnisse, aber viele falsch negative Ergebnisse). Sie können die Schwellenwerte für die einzelnen Kategorien in der Benutzeroberfläche anpassen, wenn Sie experimentieren möchten. Wenn Sie Ihr Modell in der Produktion verwenden, müssen Sie jedoch die von Ihnen als optimal ermittelten Schwellenwerte durchsetzen.

  • Nach dem Anwenden des Punktzahl-Schwellenwerts fallen die von Ihrem Modell gemachten Vorhersagen in eine der folgenden vier Kategorien:

    • Richtig positiv: Das Modell hat das Label richtig vorhergesagt.
    • Richtig negativ: Das Modell hat dieses Label richtigerweise nicht vorhergesagt.
    • Falsch positiv: Das Modell hat das Label für ein Videosegment falsch vorhergesagt.
    • Falsch negativ: Das Modell konnte das richtige Label nicht vorhersagen.

    Mit diesen Kategorien können Sie die Genauigkeit und die Trefferquote berechnen, d. h die Messwerte, mit denen Sie die Effektivität Ihres Modells beurteilen können.

  • Genauigkeit und Trefferquote helfen Ihnen zu verstehen, wie gut Ihr Modell Informationen erfasst und wie viele Informationen es auslässt. Die Genauigkeitspunktzahl misst, wie viele Testbeispiele, die mit einem Label versehen wurden, auch mit diesem Label kategorisiert werden sollten. Der Punktwert für die Trefferquote misst, wie viele Testbeispiele, die mit diesem Label versehen werden sollten, tatsächlich mit diesem Label versehen wurden.

  • Mit der Wahrheitsmatrix lässt sich die Leistung eines Modells für jedes Label vergleichen. In einem idealen Modell sind die Werte auf der Diagonalen hoch und alle anderen Werte niedrig. Daran ist zu erkennen, dass die gewünschten Kategorien richtig identifiziert werden. Sind die anderen Werte hoch, ist das ein Hinweis darauf, dass das Modell Testelemente falsch klassifiziert.

  • Mit dem Punktzahl-Schwellenwert-Tool können Sie herausfinden, wie sich der gewählte Punktzahl-Schwellenwert auf Genauigkeit und Trefferquote auswirkt. Bewegen Sie den Schieberegler für den Punktzahl-Schwellenwert, um zu sehen, wo Sie sich auf der Genauigkeits-/Trefferquotenkurve befinden und wie sich dieser Schwellenwert jeweils auf Genauigkeit und Trefferquote auswirkt. Bei Modellen mit mehreren Klassen wird bei diesen Diagrammen für die Berechnung der Genauigkeit und der Trefferquote nur das am besten bewertete Label verwendet. Dies kann Ihnen helfen, ein Gleichgewicht zwischen falsch positiven und falsch negativen Ergebnissen zu schaffen.

    Wenn Sie einen Schwellenwert gewählt haben, der für Ihr Modell insgesamt akzeptabel erscheint, können Sie auf einzelne Labels klicken und sehen, in welchen Bereich dieser Schwellenwert auf der Genauigkeits-/Trefferquotenkurve eines bestimmten Labels fällt. Dabei kann es sein, dass Sie für einige Labels eine Menge falscher Vorhersagen erhalten. In diesem Fall ist es eine Überlegung wert, für jede Klasse einen eigenen Schwellenwert zu wählen, der genau auf diese Labels zugeschnitten ist.

  • Ein nützlicher Messwert für die Modellgenauigkeit ist die Fläche unter der Genauigkeits-/Trefferquotenkurve. Er misst, wie gut Ihr Modell über alle Punktzahl-Schwellenwerte hinweg funktioniert. In AutoML Video wird dieser Messwert als durchschnittliche Genauigkeit bezeichnet. Je näher dieser Wert bei 1,0 liegt, desto besser schneidet Ihr Modell im Test-Dataset ab. Ein Modell, das Labels nach dem Zufallsprinzip errät, hätte eine durchschnittliche Genauigkeit von etwa 0,5.

Modell testen

AutoML Video Classification verwendet zum Testen des Modells automatisch 30 % Ihrer Daten – oder, wenn Sie die Aufteilung Ihrer Daten selbst definieren möchten, den von Ihnen gewählten Prozentsatz. In der AutoML Video Classification-UI können Sie auf dem Tab Bewerten ablesen, wie das Modell mit den Testdaten zurechtgekommen ist. Für eine Plausibilitätsprüfung Ihres Modells haben Sie verschiedene Möglichkeiten. Eine Möglichkeit besteht darin, eine CSV-Datei mit Videodaten zum Testen auf dem Tab "Test und Nutzung" bereitzustellen und sich dann die Labels anzusehen, die das Modell für die Videos vorhersagt. Hoffentlich werden Ihre Erwartungen dabei erfüllt.

Sie können den Schwellenwert für die Visualisierung der Vorhersagen anpassen und die Vorhersagen auf drei Zeitskalen anzeigen: 1-Sekunden-Intervalle, Videokamera-Aufnahmen nach der automatischen Erkennung der Aufnahmegrenzen und ganze Videosegmente.

Modellleistung verbessern

Wenn Sie einen ersten Eindruck von der Leistung Ihres Modells gewonnen haben und es weiter verbessern möchten, können Sie verschiedene Ansätze ausprobieren:

  • Erhöhen Sie die Anzahl der mit Labels versehenen Proben (insbesondere für unterrepräsentierte Klassen).
  • Untersuchen Sie genau, wo Ihr Modell nicht so gut funktioniert:

    • Vielleicht ist eine Klasse zu weit gefasst und es wäre sinnvoll, sie in zwei oder mehr Klassen aufzuteilen.
    • Oder vielleicht sind einige Klassen zu spezifisch und sie könnten zusammengeführt werden, ohne dass sich dies auf das Endziel des Projekts auswirkt?
    • Ziehen Sie in Betracht, mehr Proben mit Labels zu versehen, insbesondere für die Klassen, die schlechter abschneiden.
  • Wechseln Sie ggf. von einem Problem mit mehreren Klassen zu einem Modell mit mehreren Labels, denn es ist in der Regel einfacher, ein neuronales Netzwerkmodell zu trainieren, das versucht, Proben in getrennte Klassen zu klassifizieren, als zu versuchen, für jede Probe einen Satz von Labels mit unbekannter Länge vorherzusagen.

  • Sorgen Sie für eine bessere Ausgewogenheit der Daten. Fügen Sie entweder weitere Proben hinzu oder versuchen Sie ggf., die Anzahl der Proben der Klasse mit großer Nutzungshäufigkeit zu reduzieren, insbesondere in Fällen, in denen eine große Unausgewogenheit besteht, z. B. "1 zu 100" oder mehr.

  • Kontrollieren Sie sorgfältig und versuchen Sie, mögliche Datenverluste zu vermeiden.

  • Lassen Sie weniger wichtige Klassen weg und konzentrieren Sie sich auf eine geringere Zahl von kritischen Klassen.

  • Prüfen Sie weitere Optionen, die Ihnen auf der Support-Seite zur Verfügung stehen.