19. September 2022

Kenne deine Unbekannten: eine kurze Einführung in die Unsicherheit beim maschinellen Lernen

Mitwirkende
Thomas Janssens
Senior Ingenieur für maschinelles Lernen | Gruppenleiter
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

Egal, wie gut Sie Ihre Daten aufbereiten und Ihr Modell für maschinelles Lernen optimieren, selbst die besten Modelle sind nicht in der Lage, immer perfekte Antworten zu geben. In jeder ausreichend anspruchsvollen Umgebung verhindern die Begrenzung auf eine endliche Menge von Trainingsdaten, unabhängig von ihrer Qualität, und die inhärente Zufälligkeit in der realen Welt, dass sie eine perfekte Modellierung und Vorhersage erreichen.

Das bedeutet, dass wir uns dafür interessieren müssen, wann und wie sich die Ergebnisse dieser Modelle von den realen Prozessen, die sie modellieren sollen, unterscheiden werden. Die Modellvalidierung ist ein Ansatz hierfür, z. B. in Form eines Hold-out-Testsatzes oder einer Kreuzvalidierung, aber das sagt nur etwas über die allgemeine statistische Leistung Ihres Modells aus. Was aber, wenn wir mehr über die Zuverlässigkeit einer einzelnen Vorhersage wissen wollen? Regressionsmodelle liefern oft nur eine Punktschätzung des Ergebnisses, und während Klassifizierer eine "Konfidenz" erzeugen, handelt es sich dabei in der Regel um eine unkalibrierte Transformation der Logits des Modells und nicht um ein robustes statistisches Maß; nicht selten gibt ein Klassifizierer eine Konfidenz von 99 % für einen offensichtlichen Fehlalarm aus. Dieser Mangel an Transparenz bei den einzelnen Vorhersagen kann es schwierig machen, den Geschäftsinteressenten den Einblick und das Vertrauen zu geben, das sie brauchen, um voll auf den ML-Zug aufzuspringen.

Glücklicherweise gibt es eine wachsende Zahl von Ansätzen und Bibliotheken, die den Bedarf an einer quantifizierten Behandlung der Modellunsicherheit decken. In diesem Blog-Beitrag werfen wir einen Blick auf diese Landschaft und erörtern einige interessante Ansätze zur Unsicherheit, die wir in früheren Projekten verfolgt haben. Wir unterteilen die Diskussion in drei Bereiche: Vorhersage, Regression und Klassifizierung [1].

Vorhersage

Die Zeitreihenanalyse ist ein offensichtlicher Kandidat für die Quantifizierung der Unsicherheit, da wir oft an der Vorhersage der Zukunft interessiert sind, die natürlich nie sicher ist. In vielen Geschäftsanwendungen reicht die Extrapolation einer Zeitreihe in die Zukunft allein nicht aus, da es entscheidend sein kann, eine Vorstellung von den unteren und oberen Grenzen des Wertes zu haben, den man vorherzusagen versucht, sei es ein Preis, eine Verkaufszahl, eine Aktienbewegung oder etwas anderes.

Prophet ist eine von Facebook entwickelte Bibliothek für die Vorhersage von Geschäftsereignissen in großem Maßstab [2]. Sie erzeugt ein verallgemeinertes additives Modell, was hier bedeutet, dass die endgültige Modellvorhersage durch die Summierung von drei einzelnen Komponentenmodellen erstellt wird: Feiertage, Trend und Saisonalität. In diesem Fall wird die Unsicherheit nicht unbedingt in den Parametern des Modells erfasst (diese können als posteriore Wahrscheinlichkeitsverteilungen dargestellt werden, sind aber standardmäßig MAP-Punktschätzungen), sondern auch in der Art und Weise, wie die Vorhersagen generiert werden. Dies ermöglicht die Simulation vieler möglicher Prognosen, aus denen dann Unsicherheitsintervalle für die Prognose berechnet werden können. Dies berücksichtigt die Unsicherheit in den Trend- und optional den Saisonalitätsmodellen und ermöglicht zusätzlich die Modellierung von Beobachtungsrauschen. Leider ist diese Simulation auch mit einem zusätzlichen Rechenaufwand verbunden, so dass sie nicht in jedem Fall durchführbar ist.

Propheten-Unsicherheitsintervalle(Quelle)

Wir haben diesen Ansatz zur Behebung von Unsicherheiten bei der Vorhersage genutzt, um unsere Kunden besser über die bevorstehende Nachfrage nach ihren Produkten zu informieren, damit sie ihre Lagerbestände optimieren können. Wir taten dies sowohl im Business-to-Business- als auch im Business-to-Consumer-Bereich, für einzelne Produkte und in aggregierter Form.

Ein alternatives Paket für probabilistische Zeitreihenmodellierung kommt über TensorFlow Probability in Form des tfp.sts Pakets. Dieses bringt auch die Modellierung strukturierter Zeitreihen zurück zu einem verallgemeinerten additiven Modell, lässt Ihnen aber im Gegensatz zu Prophet, das schwieriger anzupassen ist, eine gewisse Flexibilität. Sie können verschiedene Modelle mit unterschiedlichen Annahmen so definieren und kombinieren, dass sie am besten zu Ihrem Modellierungskontext passen. Als zusätzlicher Bonus unterstützt tfp.sts auch GPU-Beschleunigung und lässt Sie zwischen Variational Inference und MCMC wählen. Dieser Blogbeitragder Autoren bietet eine gute Einführung.

Ein verallgemeinerter Ansatz für Zeitreihen in tfp.sts kombiniert mehrere Trend- und autoregressive Modelle(Quelle)

Regression

Im Allgemeinen geht es bei Regressionsproblemen um die Vorhersage eines numerischen Wertes aus einer Reihe von Eingangsvariablen. Bei Standardregressionsansätzen erhält man nur eine Punktschätzung als Vorhersage, d. h. eine einzelne Zahl, ohne jegliche Angabe von Konfidenz oder Unsicherheit. Dennoch kann es sehr wertvoll sein, die Unsicherheit bei Regressionszielen zu berücksichtigen. So ist beispielsweise eine Hauspreisvorhersage von 300.000 EUR mit einer Unsicherheitsspanne von 100.000 EUR etwas ganz anderes als eine Vorhersage desselben Preises mit einer Unsicherheitsspanne von 2.000 EUR. Ein anderer Anwendungsfall könnte in der Fertigung liegen: Wenn Sie einen präzise platzierten Schnitt machen müssen, um zwei Teppiche zu trennen, ist ein Unsicherheitsintervall von 2 mm auf der Koordinate in Ordnung, aber ein Intervall von 20 cm könnte ein Auslöser sein, um menschliches Eingreifen zu verlangen. Die Schätzung der Dauer einzelner Aufgaben zu Planungszwecken ist ein weiterer Bereich, in dem Unsicherheitsinformationen entscheidend sein können.

Unsicherheit bei der Regression kann aus zwei Hauptquellen entstehen: Unsicherheit, die dem Problem selbst innewohnt (aleatorische Unsicherheit) und Unsicherheit, die auf einen Mangel an verfügbaren Daten zurückzuführen ist (epistemische Unsicherheit). Wenn Sie beispielsweise die Hauspreise auf dem Markt auf der Grundlage einer kleinen Stichprobe verkaufter Häuser vorhersagen wollen, wird der Fehler bei der Vorhersage eines einzelnen Hauspreises sowohl von der persönlichen Meinung des einzelnen Verkäufers (inhärenter Zufallseffekt) als auch davon beeinflusst, wie gut dieser Haustyp (Lage, Preisspanne,...) durch den Datensatz abgedeckt ist.

Diese beiden Effekte können modelliert werden. Die aleatorische Unsicherheit kann im Wesentlichen durch einen Rauschfaktor in Ihrem generierenden Modell dargestellt werden, während die epistemische Unsicherheit modelliert wird, indem feste Modellparameter (z. B. lineare Regression oder MLP-Gewichte und Verzerrungen) durch Wahrscheinlichkeitsverteilungen ersetzt werden. Sobald diese entweder durch Variational Inference oder MCMC geschätzt wurden, kann aus ihnen eine Stichprobe gezogen werden, um die Ausgabeverteilung für eine bestimmte Eingabe zu erzeugen. Dies kann in verschiedenen probabilistischen Frameworks modelliert werden, wie z.B. Tensorflow Probability, Pyro, PyMC4,... Diese Blogpost-Serie baut schön auf ein vollständiges probabilistisches Modell in Tensorflow auf. Mit dieser Methodik erhält der Benutzer schließlich eine Ausgabe, die Konfidenzintervalle (aleatorische Unsicherheit) über mehrere Stichproben (epistemische Unsicherheit) enthält.

Werfen Sie auch einen Blick auf MAPIE. Es ist ein auf Scikit-Learn basierendes Paket, das Unsicherheitsschätzungen sowohl für Regression als auch für Klassifikation implementiert (siehe unten).

Klassifizierung

Wie in der Einleitung erwähnt, geben Klassifizierungsmodelle in der Regel Klassenwerte aus, die nicht kalibriert sind, d. h. wenn wir eine repräsentative Stichprobe von Modelleingaben betrachten, die alle zu einem Konfidenzwert von 0,95 für eine Klasse führen, können wir nicht garantieren (und sollten auch nicht erwarten), dass wir 95 % richtig positive und 5 % falsch positive Ergebnisse erhalten. Eine Möglichkeit, die Unsicherheit hier besser zu quantifizieren, ist die Modellkalibrierung. Sklearn enthält eine entsprechende Funktion.

Für komplexere neuronale Netze, insbesondere im Bereich der Bildverarbeitung und des NLP, gibt es zwar probabilistische Methoden(1,2,3), doch werden diese unseres Wissens nach in der Industrie noch nicht häufig eingesetzt.

Ein weiterer interessanter Ansatz im Bereich der Klassifizierung ist der sogenannte spektral-normalisierte neuronale Gauß-Prozess (SNGP). Diese Methode ermöglicht es einem regulären DNN, sich einem vollständig Bayes'schen Ansatz zur Unsicherheit anzunähern, ohne die zusätzlichen Rechenkosten, die bei der Anwendung auf große Eingabedatenräume anfallen, indem eine Gewichtsnormalisierung auf der Grundlage des Abstands zu den Trainingsbeispielen und ein Gauß-Prozess am Ausgang hinzugefügt werden.

SNGP (rechts) nähert sich dem Goldstandard (links) mit hoher Unsicherheit für (rot) Proben, die weit von den Trainingsdaten (blau/orange) entfernt sind(Quelle)

Fazit

Dies ist der Abschluss unserer kurzen Tour durch einige Anwendungen der Unsicherheit beim maschinellen Lernen. Diese Methoden können zwar mit zusätzlichen Modellierungskosten oder Rechenaufwand verbunden sein, aber sie können auch relevante geschäftliche Erkenntnisse liefern, die wichtig sind, um Ihre Vorhersagen mit Unsicherheitsschätzungen zu kontextualisieren. Wir hoffen, dass diese Beispiele Sie dazu inspirieren, diese Methoden für Ihre eigenen Projekte zu erforschen oder sie für eine Ihrer Anwendungen in Betracht zu ziehen. Wenn Sie denken, dass Sie einen Anwendungsfall haben, der von einem solchen Ansatz profitieren könnte, zögern Sie nicht, sich mit uns in Verbindung zu setzen.

Fußnoten

[1] Die Vorhersage ist wohl eine besondere Form der Regression. Für die Zwecke dieses Artikels lohnt es sich, sie separat zu betrachten, da sie ihre eigenen spezialisierten Ansätze und Pakete hat

[2] Es gibt auch eine Variante von Prophet, die ein tiefes Netz für die autoregressive Komponente verwendet, genannt NeuralProphet.

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
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