Machine-Learning-Tests durch Continuous Assurance

Machine-Learning-Tests durch Continuous Assurance

Warum Machine Learning mehr Absicherung braucht

Die „unangemessene Wirksamkeit“ von Daten

In ihrem 2009 veröffentlichten Artikel The Unreasonable Effectiveness of Data schrieben die Google-Forscher Peter Norvig, Alon Halevy und Fernando Pereira:

„Ein Korpus aus einer Billion Wörtern könnte als Grundlage für ein vollständiges Modell bestimmter Aufgaben dienen – wenn wir nur wüssten, wie wir dieses Modell aus den Daten extrahieren.“

In diesem Satz steckt bereits ein Großteil der heutigen ML-Diskussion:
Was bedeutet überhaupt ein „vollständiges Modell“? Und wie können wir sicherstellen, dass ein Modell tatsächlich zuverlässig funktioniert? Vor allem aber: Die Art, wie wir ein Modell aus Daten ableiten, hängt immer von Annahmen ab und von der jeweiligen Aufgabe selbst.

Klassische Softwareentwicklung und die Philosophie der Agilität

Die moderne Softwareentwicklung der vergangenen Jahrzehnte wurde stark durch agile Arbeitsweisen geprägt. Erst dadurch wurde es möglich, Softwareprodukte schnell und gleichzeitig zuverlässig in iterativen Prozessen zu entwickeln: Ein Prototyp führt zu Feedback, daraus entsteht ein neuer Prototyp, neues Feedback und so weiter.

Mit dem Aufstieg des Internets, der Webentwicklung und später der mobilen Entwicklung entwickelte sich auch die professionelle Softwareentwicklung selbst immer weiter. Daraus entstanden Best Practices wie Continuous Development, Continuous Testing und Continuous Integration.

Diese Prozesse ermöglichen die kollaborative Entwicklung hochkomplexer Softwaresysteme in dynamischen und unsicheren Umfeldern. Gleichzeitig sorgen sie dafür, dass Software während des gesamten Entwicklungszyklus lauffähig bleibt und neue Funktionen schneller für Nutzer bereitgestellt werden können.

Das Zeitalter des Deep Learnings – ein grundlegender Paradigmenwechsel

Mit Beginn der 2010er-Jahre begann der großflächige Einsatz von Deep Learning und künstlichen neuronalen Netzen. Als Teilbereich des Machine Learning waren künstliche neuronale Netze zwar keineswegs neu – ihre mathematischen Grundlagen wurden bereits in den 1940er-Jahren untersucht –, doch lange blieb das Thema vor allem akademischer Natur.

Einen wichtigen Meilenstein setzten Dave Rumelhart, Geoffrey Hinton und Ronald Williams im Jahr 1986 mit ihrer Veröffentlichung zum Backpropagation-Algorithmus. Dieser Algorithmus lieferte die theoretische Grundlage dafür, tiefe neuronale Netze überhaupt effizient trainieren zu können. Hinzu kamen zwei weitere Entwicklungen: Zum einen wurde die verfügbare Hardware in den letzten Jahrzehnten immer leistungsfähiger. Zum anderen führte das Internet zu einer explosionsartigen Zunahme verfügbarer Daten. Erst das Zusammenspiel aus Lernalgorithmen, Rechenleistung und riesigen Datenmengen leitete schließlich…

Das Zeitalter ML-basierter Softwareentwicklung

…ein. Um diesen Paradigmenwechsel wirklich zu verstehen, muss man den zentralen Unterschied zwischen klassischer Softwareentwicklung und ML-Systemen betrachten.

Die klassische Softwarefunktion

Eine klassische Softwarefunktion wird explizit von einem Entwickler entworfen und implementiert. Sie erhält einen Input, verarbeitet diesen nach fest definierten Regeln und erzeugt daraus einen Output. Man kann sich zum Beispiel eine Funktion vorstellen, die ein Bild verarbeitet: Sie skaliert das Bild, verändert Farben oder führt andere Transformationen durch und übergibt das Ergebnis anschließend an eine Anzeige- oder Speicherfunktion.

Der große Vorteil klassischer Software liegt darin, dass ihr Verhalten prinzipiell vollständig nachvollziehbar und testbar ist. Wir können überprüfen, ob eine Bildfunktion bei bestimmten Eingaben korrekt arbeitet, und diese Tests lassen sich auf unzählige weitere Eingaben übertragen, solange sie den definierten Anforderungen entsprechen. Klassische Software folgt damit einem Paradigma, bei dem Input und Algorithmus bekannt sind und daraus ein Output erzeugt wird.

Beim Machine Learning verhält es sich genau umgekehrt: Dort kennen wir die Eingaben und die gewünschten Ergebnisse, während die eigentliche Funktion, die beide miteinander verbindet, zunächst unbekannt ist und erst aus Daten gelernt werden muss.

Das Testen klassischer Software

Wie bereits beschrieben, wurden in den vergangenen Jahrzehnten zahlreiche Methoden entwickelt, um klassische Software kontinuierlich zu testen. Wenn wir beispielsweise unsere Bildverarbeitungsfunktion prüfen wollen, können wir eine Testfunktion schreiben, die automatisch bei jeder Änderung ausgeführt wird. Dadurch lässt sich sicherstellen, dass die Funktion weiterhin korrekt arbeitet und für definierte Eingaben die erwarteten Ergebnisse liefert. Noch einfacher formuliert: Wenn wir eine Funktion schreiben, die zwei Zahlen addieren soll, können wir testen, ob 2 + 2 tatsächlich 4 ergibt.

Das Testen datenbasierter Modelle

Bei Funktionen oder Algorithmen, die aus Daten gelernt werden, ist die Situation deutlich komplizierter. Um sicherzustellen, dass ein ML-Modell in realen Anwendungen zuverlässig funktioniert, reicht es nicht aus, nur das Modell selbst zu testen. Der gesamte Prozess muss betrachtet werden: die Datensammlung, Vor- und Nachverarbeitung, die Qualität der Daten, das Training des Modells, dessen Validierung und schließlich das Deployment.

Hinzu kommt, dass viele erfolgreiche ML-Modelle der letzten Jahre auf künstlichen neuronalen Netzen basieren – also auf Systemen, die sich weitgehend wie Black Boxes verhalten. Anders als bei klassischer Software können wir ihre internen Entscheidungsprozesse kaum direkt nachvollziehen.

Der enorme Erfolg moderner ML-Systeme hat diese Schwäche lange etwas überdeckt. Solange ML vor allem für eher harmlose Anwendungen wie Katzenfilter oder lustige Fotoeffekte eingesetzt wird, mag das akzeptabel erscheinen. In sicherheitskritischen Bereichen wie Gesundheitswesen, Automotive oder Industrie können fehlerhafte Entscheidungen jedoch schwerwiegende Konsequenzen haben.

Zwei konkurrierende Anforderungen in sicherheitskritischen Bereichen

Dadurch entsteht ein Spannungsfeld zwischen zwei Anforderungen: Einerseits müssen Softwaresysteme in sicherheitskritischen Branchen strenge Standards erfüllen. Andererseits brauchen wir agile und iterative Entwicklungsprozesse, um Innovation in genau diesen Bereichen überhaupt möglich zu machen.

Die Absicherung von ML-Systemen

Genau hier setzt das Konzept der Continuous Assurance an. Die Idee orientiert sich an etablierten Methoden aus der klassischen Softwareentwicklung wie Continuous Development, Continuous Testing und Continuous Integration. Dabei handelt es sich um automatisierte Pipelines, die sicherstellen, dass einzelne Softwarekomponenten korrekt funktionieren und sauber in das Gesamtsystem integriert werden. Sobald Entwickler Änderungen an einem Teil des Systems vornehmen, wird automatisch geprüft, ob weiterhin alle definierten Tests bestanden werden.

Ein ähnlicher Ansatz wird auch für ML-Systeme benötigt. Der sinnvollste Weg dorthin ist die Entwicklung einer zusätzlichen Assurance-Pipeline, die das eigentliche ML-System begleitet. Diese Pipeline integriert unterschiedliche Analyse- und Prüfwerkzeuge, die sowohl das Verhalten als auch die Entscheidungscharakteristika der ML-Modelle untersuchen.

Ein gutes Beispiel dafür ist der Bereich Computer Vision, also die Erkennung oder Klassifikation von Objekten auf Bildern. Solche Systeme spielen eine zentrale Rolle in Bereichen wie autonomem Fahren oder medizinischer Bildanalyse, beide sind hochregulierte und sicherheitskritische Anwendungsfelder. In den vergangenen Jahren haben vor allem Convolutional Neural Networks (CNNs) große Erfolge bei solchen Aufgaben erzielt. Gleichzeitig haben diese Erfolge jedoch viele bestehende Schwächen der Modelle lange überdeckt.

Shortcut Learning – wenn KI die falschen Abkürzungen lernt

Forscher aus Tübingen veröffentlichten dazu die Arbeit Shortcut Learning in Deep Neural Networks. Darin beschreiben sie, dass viele scheinbar unterschiedliche Fehlverhalten neuronaler Netze auf ein gemeinsames Problem zurückgeführt werden können: sogenannte Shortcut-Strategien.

Interessanterweise sind solche Abkürzungen keineswegs nur ein Problem künstlicher Systeme. Auch Menschen und biologische Lernsysteme greifen ständig auf vereinfachte Erklärungen und Muster zurück. Tatsächlich basiert wissenschaftlicher Fortschritt oft genau darauf.

Die Forschenden formulieren es so:

“If science was a journey, then its destination would be the discovery of simple explanations to complex phenomena”. (Wenn Wissenschaft eine Reise wäre, dann bestünde ihr Ziel darin, einfache Erklärungen für komplexe Phänomene zu finden.)

Jede mathematische Theorie ist letztlich eine vereinfachte Repräsentation komplexer Beobachtungen aus der realen Welt. Der Wert einer Theorie zeigt sich darin, wie viele unterschiedliche Phänomene sie erklären kann. Der Physiker Eugene Wigner beschrieb in seinem empfehlenswerten Essay “The unreasonable effectiveness of mathematics in the natural sciences” ein grundlegendes Problem solcher Modelle (unter “The Uniqueness of the Theories of Physics”, 2. Paragraph, Seite 8.):

„… Jedes empirische Gesetz hat die beunruhigende Eigenschaft, dass man seine Grenzen nicht kennt. Wir haben gesehen, dass es Regelmäßigkeiten in den Ereignissen in der Welt um uns herum gibt, die sich mit einer unheimlichen Genauigkeit in Form mathematischer Konzepte formulieren lassen. … Die Frage, die sich stellt, ist, ob die verschiedenen Regelmäßigkeiten … zu einer einzigen konsistenten Einheit verschmelzen werden …“

Shortcuts in der Physik

Die klassische Newtonsche Mechanik beschreibt Phänomene, die von mechanischen Maschinen bis hin zu den Bewegungen von Planeten reichen. Die Maxwell-Gleichungen erklären die Welt des Elektromagnetismus, und Einsteins Allgemeine Relativitätstheorie beschreibt Gravitationseffekte in unserem Sonnensystem bis hin zur Existenz von Gravitationswellen und Schwarzen Löchern im Universum.

Datenbasierte Shortcuts, die durch ML-Algorithmen extrahiert werden

Was ist nun mit Shortcuts, die durch Machine-Learning-Algorithmen aus Daten gelernt werden? Der Artikel The Unreasonable Effectiveness of Data versuchte im Kern zu argumentieren, dass sich aus großen Datenmengen effektive Entscheidungsmodelle, also „Shortcut“-Modelle, extrahieren lassen. Er erschien 2009 zu einem Zeitpunkt, der rückblickend den Beginn der Deep-Learning-Erfolgsära markiert. Heute, nach den 2010er-Jahren und zu Beginn der 2020er, könnte die Antwort auf diese Frage eher in einer „vernünftigen Effektivität“ liegen: nämlich darin, dass sich aus Daten tatsächlich nahezu jede denkbare Abkürzung extrahieren lässt – unabhängig davon, ob sie beabsichtigt oder unbeabsichtigt ist.

Shortcuts im Deep Learning

Es gibt eine Vielzahl von Beispielen für unbeabsichtigte Abkürzungen im Deep Learning. Dazu gehören Klassifikationsstrategien, die sich stark am Hintergrundkontext orientieren (etwa Kühe und Schafe, die meist auf grünen Wiesen vorkommen), Objekterkennung, die eher auf Texturen als auf Formen basiert (Beispiel 1, Beispiel 2), , oder Gesichtserkennungsmodelle mit deutlich höheren Fehlerraten bei Minderheitengruppen. Und es gibt viele weitere ähnliche Fälle.

Die Grenzen akzeptieren und Lösungen entwickeln

Künstliche neuronale Netze (ANNs) sind extrem gut darin, Informationen aus Daten zu extrahieren und diese schrittweise in immer kompaktere Repräsentationen des Datensatzes zu überführen. Es existieren auch interessante theoretische Ansätze, die beschreiben, wie genau dieser Prozess der Informationsverdichtung und -extraktion zu solchen Shortcut-Repräsentationen führt (siehe Part 1 und Part 2 einer früheren Blogserie von mir).

Problematisch ist jedoch, dass die gelernten Repräsentationen nicht garantiert die beabsichtigten sind. Noch kritischer ist, dass wir niemals vollständig sicher sein werden, ob die erlernten Abkürzungen tatsächlich den gewünschten entsprechen. Die oben zitierte Aussage von Wigner über empirische Gesetze lässt sich daher sinngemäß auch auf datenbasierte Abkürzungen übertragen:

Jede aus Daten extrahierte Shortcut-Repräsentation hat die beunruhigende Eigenschaft, dass man ihre Grenzen nicht kennt. Wir haben gesehen, dass es in den Daten Regelmäßigkeiten gibt, die sich mit einer erstaunlichen Genauigkeit in Form abstrakter Black-Box-Konzepte beschreiben lassen. Die sich daraus ergebende Frage ist, ob diese verschiedenen Regelmäßigkeiten zu einer einzigen konsistenten Shortcut-Repräsentation verschmelzen werden.

Was wir tun müssen

Daraus folgt, dass wir neue Methoden und Werkzeuge entwickeln müssen, um diese gelernten Repräsentationen innerhalb neuronaler Netze besser zu analysieren und zu bewerten. Diese Werkzeuge müssen anschließend in eine Continuous-Assurance-Pipeline integriert werden, die uns als eine Art Leitfaden durch die ansonsten unzugängliche Landschaft gelernter Repräsentationen dient.

Analog zu Continuous Development und Continuous Integration in der klassischen Softwareentwicklung würde dabei jede (kleine) Änderung in unserer ML-Entwicklungspipeline – von der Datenerhebung über das Training bis hin zur Evaluation und zum Testen – durch diese Continuous-Assurance-Pipeline laufen. Sie würde uns zurückmelden, ob wir uns in Richtung der gewünschten Repräsentation bewegen oder nicht. Andernfalls wären wir gezwungen, weiterhin wie blind durch einen komplexen und kaum kontrollierbaren Raum zu navigieren.

Ausblick

In diesem Artikel wurde ein einführender Überblick über die Grenzen von Machine Learning gegeben und darüber, wie sich diese möglicherweise durch eine Continuous-Assurance-Pipeline für ML-basierte Softwareentwicklung besser beherrschen lassen. In einem Folgeartikel soll detaillierter auf bestehende Methoden eingegangen werden, mit denen sich neuronale Netze hinsichtlich ihrer erlernten Shortcut-Repräsentationen sowie ihrer Stabilität und Sicherheit gegenüber adversarialen Störungen analysieren lassen.


Author info

Back to top