Datenabhängigkeiten

Daten sind für ML-Entwickler ebenso wichtig wie Code für traditionelle Programmierer. In dieser Lektion geht es darum, welche Arten von Fragen Sie im Zusammenhang mit Ihren Daten stellen sollten.

Datenabhängigkeiten

  • Eingabedaten (Features) bestimmen das ML-Systemverhalten.
    • Wir schreiben Einheitentests für Softwarebibliotheken, aber was ist mit Daten?
  • Bei der Auswahl von Eingabesignalen ist Vorsicht geboten.
    • Vielleicht sogar noch wichtiger, als sich zu entscheiden, welche Softwarebibliotheken erforderlich sind?
  • Zuverlässigkeit
    • Was passiert, wenn das Signal nicht verfügbar ist? Schon gewusst?
  • Zuverlässigkeit
    • Was passiert, wenn das Signal nicht verfügbar ist? Schon gewusst?
  • Versionsverwaltung
    • Ändert sich das System, das dieses Signal berechnet, jemals? Wie oft? Was würde passieren?
  • Zuverlässigkeit
    • Was passiert, wenn das Signal nicht verfügbar ist? Schon gewusst?
  • Versionsverwaltung
    • Ändert sich das System, das dieses Signal berechnet, jemals? Wie oft? Was würde passieren?
  • Notwendigkeit
    • Ist der Nutzen des Signals die Gründe für die Aufnahme rechtfertigt?
  • Korrelationen
    • Sind einige meiner Eingabesignale so eng miteinander verbunden, dass wir zusätzliche Strategien benötigen, um uns abzuheben?
  • Korrelationen
    • Sind einige meiner Eingabesignale so eng miteinander verbunden, dass wir zusätzliche Strategien benötigen, um uns abzuheben?
  • Feedbackschleifen
    • Welches meiner Eingabesignale kann sich auf die Ausgaben meines Modells auswirken?

Zusammenfassung der Videovorträge

Das Verhalten eines ML-Systems hängt vom Verhalten und den Eigenschaften seiner Eingabefeatures ab. Wenn sich die Eingabedaten für diese Features ändern, ändert sich auch Ihr Modell. Manchmal ist diese Veränderung wünschenswert, manchmal aber auch nicht.

Bei der herkömmlichen Softwareentwicklung liegt der Fokus stärker auf Code als auf Daten. Obwohl die Programmierung noch Teil des Jobs ist, muss der Fokus bei der Entwicklung des maschinellen Lernens um Daten erweitert werden. In traditionellen Softwareentwicklungsprojekten hat es sich beispielsweise bewährt, Einheitentests zur Validierung von Code zu schreiben. Bei ML-Projekten müssen Sie außerdem die Eingabedaten kontinuierlich testen, prüfen und überwachen.

Sie sollten Ihr Modell beispielsweise kontinuierlich beobachten, um nicht verwendete (oder wenig genutzte) Features zu entfernen. Stellen Sie sich ein bestimmtes Merkmal vor, das zum Modell nur wenig oder gar nicht beigetragen hat. Wenn sich die Eingabedaten für dieses Feature abrupt ändern, kann sich das Verhalten Ihres Modells auch abrupt ändern.

Zuverlässigkeit

Fragen zur Zuverlässigkeit Ihrer Eingabedaten:

  • Ist das Signal immer verfügbar oder stammt es von einer unzuverlässigen Quelle? Beispiel:
    • Stammt das Signal von einem Server, der unter hoher Last abstürzt?
    • Stammt das Signal von Menschen, die im August in den Urlaub fahren?

Versionsverwaltung

Einige Fragen, die Sie zur Versionsverwaltung stellen sollten:

  • Ändert sich das System, das diese Daten berechnet, jemals? Wenn ja:
    • Wie oft?
    • Woher weißt du, wenn sich dieses System ändert?

Manchmal stammen Daten aus einem vorgelagerten Prozess. Wenn sich dieser Prozess abrupt ändert, kann Ihr Modell leiden.

Sie können eine eigene Kopie der Daten erstellen, die Sie vom vorgelagerten Prozess erhalten. Fahren Sie dann nur mit der nächsten Version der vorgelagerten Daten fort, wenn Sie sicher sind, dass dies sicher ist.

Notwendigkeit

Die folgende Frage kann Sie an die Regularisierung erinnern:

  • Ist die Nützlichkeit der Funktion gerechtfertigt?

Es ist verlockend, dem Modell immer mehr Merkmale hinzuzufügen. Angenommen, Sie finden ein neues Feature, durch das Ihr Modell etwas genauer wird. Eine höhere Genauigkeit klingt besser als weniger genau. Jetzt ist der Wartungsaufwand jedoch gerade höher. Diese zusätzliche Funktion könnte unerwartet beeinträchtigt werden, sodass Sie sie überwachen müssen. Überlege genau, bevor du Funktionen hinzufügst, die zu kurzfristigen Erfolgen führen.

Korrelationen

Einige Funktionen hängen (positiv oder negativ) mit anderen Funktionen zusammen. Stellen Sie sich folgende Frage:

  • Sind Funktionen so eng verknüpft, dass Sie zusätzliche Strategien benötigen, um sie hervorzuheben?

Feedbackschleifen

Manchmal kann ein Modell seine eigenen Trainingsdaten beeinflussen. Zum Beispiel sind die Ergebnisse einiger Modelle direkt oder indirekt in dieses Modell eingegeben.

Manchmal kann sich ein Modell auf ein anderes Modell auswirken. Betrachten Sie beispielsweise zwei Modelle zur Vorhersage von Aktienkursen:

  • Modell A ist ein fehlerhaftes Vorhersagemodell.
  • Modell B.

Da das Modell A fehlerhaft ist, entscheidet es sich fälschlicherweise für den Lagerbestand X. Diese Käufe erhöhen den Preis von X Aktien. Modell B verwendet den Preis von Aktien X als Eingabemerkmal, sodass Modell B leicht falsche Schlussfolgerungen über den Wert von Aktien X ziehen kann. Modell B könnte daher je nach fehlerhaftem Verhalten von Modell A Aktien von Aktien X kaufen oder verkaufen. Das Verhalten von Modell B kann sich wiederum auf Modell A auswirken und möglicherweise eine Tulpenmanie oder eine Folie im Bestand von Unternehmen X auslösen.