Testen von KI-Systemen – möglich oder unmöglich?
Was ruft der Begriff Künstliche Intelligenz (KI) bei Ihnen an Gefühlen hervor? Für die Einen ist eine Zukunft ohne den Einsatz von künstlich intelligenten Systemen gar nicht mehr vorstellbar. In dieser Welt verhilft die KI dem autonomen Fahren zum Durchbruch, erstellt sie zuverlässig medizinische Diagnosen und pflegt der autonome Roboter unsere alten Menschen.
Für viele andere Menschen sind genau dies Horrorvorstellungen über die Zukunft. Sie fürchten sich dass die KI uns Menschen überflüssig macht, und damit Millionen Arbeitslose verursacht und Macht über uns gewinnt.
Der folgende Beitrag nähert sich von einem neutralen Standpunkt dem Thema Künstliche Intelligenz. Zunächst mal ist KI nicht gut oder böse, sondern einfach nur eine Technologie, mit Hilfe derer man gewisse Fragestellungen lösen kann.
Zunächst schauen wir uns die Definition und aktuelle Anwendungsfelder von Künstlicher Intelligenz an. Danach beleuchten wir die Herausforderungen und Lösungsansätze beim Testen dieser Systeme.
Was ist Künstliche Intelligenz?
In der ISO/IEC 2382:2015 findet sich folgende Definition:
“Artificial Intelligence (AI) is a branch of computer science devoted to developing data processing systems that perform functions normally associated with human intelligence, such as reasoning, learning, and self‐improvement.”
Wikipedia liefert folgende Erklärung:
„Künstliche Intelligenz ist ein Teilgebiet der Informatik, das sich mit der Automatisierung intelligenten Verhaltens und dem maschinellen Lernen befasst.“
Ganz wichtig ist dabei folgende Einschränkung:
„Der Begriff ist schwer definierbar, da es bereits an einer genauen Definition von „Intelligenz“ mangelt. Dennoch wird er in Forschung und Entwicklung verwendet.“
Da der Obergriff „Künstliche Intelligenz“ schon nicht eindeutig definierbar ist, wird es bei weiteren Kategorien noch schwammiger. Damit wir uns orientieren können, habe ich in folgendem Übersichtsbild trotzdem mal die Begriffe kompakt zusammengefasst:
Starke KI
Eine starke künstliche Intelligenz (KI) kann in ähnlicher Form wie ein Mensch denken. Das würde strategische und emotionale Intelligenz einschließen.
Hier kann man klar sagen, dass es solche Systeme heute und in absehbarer Zukunft nicht gibt. Diese Systeme regen aber schon seit Jahrzehnten die Fantasie der Menschen an. Dementsprechend gibt es dazu viele Bücher, Filme und eine Grundlagenforschung aber nicht mehr!
Schwache KI
Alle KI Systeme die heute real eingesetzt und konkret entwickelt werden entsprechen einer schwachen KI. Das bedeutet, dass eine Maschine eine genau festgelegte Aufgabe schneller, besser und effizienter erledigt. Praktisch umgesetzt wird dies mit maschinellem Lernen (ML). Die meisten aktuell im Einsatz befindlichen KI Systeme basieren auf dem maschinelle Lernen. Andere Technologien zur schwachen KI befinden sich im Forschungsstadium.
Maschinelles Lernen (ML)
Wikipedia erklärt Maschinelles Lernen (ML) wie folgt:
„Dies ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann diese nach Beendigung der Lernphase verallgemeinern. Dazu bauen Algorithmen beim maschinellen Lernen ein statistisches Modell auf, das auf Trainingsdaten beruht. Das heißt, es werden nicht einfach die Beispiele auswendig gelernt, sondern Muster und Gesetzmäßigkeiten in den Lerndaten erkannt. So kann das System auch unbekannte Daten beurteilen.“
Innerhalb des maschinellen Lernens unterscheidet man folgende 3 Arten:
- Überwachtes maschinelles Lernen
- Unüberwachtes maschinelles Lernen
- Bestärkendes maschinelles Lernen
Überwachtes maschinelles Lernen (ML)
Folgendes Bild zeigt die Grundelemente dies überwachten Lernens. Ein Modell wird mit bekannten Trainingsdaten solange trainiert bis eine akzeptable Qualität der Ergebnisse des KI Systems erreicht wird.
Das Hauptanwendungsgebiet für das überwachte Lernen ist der Bereich der Vorhersagen und Empfehlungen.
Beispiele aus dem IT Softwarebereich sind:
- die Vorhersage von spezifischem Kundenverhalten, z.B. um einen Kredit zu vergeben
- Die Prognose welche Produkte von wem gekauft werden
- Die Kategorisierung ob eine Mail eine Spam Mail ist oder nicht
- Online Leseempfehlungen oder das Einblenden der richtigen Werbung für Internetnutzer
Im Embedded Softwarebereich wird in großem Stile mit dieser Technologie in der Automobilindustrie experimentiert. Eine qualitativ hochwertige und korrekte Umfeld Erkennung eines Autos ist ein Schlüsselelement für weitere Schritte in Richtung hochautomatisiertes und autonomes Fahren.
Das Ergebnis von überwachtem maschinellem Lernen sind heute schon sehr präzise Vorhersagen für fast endlos viele Anwendungsfälle.
Unüberwachtes maschinelles Lernen (ML)
Dieses Verfahren wird hauptsächlich eingesetzt, wenn es darum geht Daten hinsichtlich Ihrer Ähnlichkeit in Cluster einzuteilen. Es werden unbekannte Daten verwendet und der Algorithmus teil die Daten eigenständig in eine vorgegebene Anzahl von Clustern ein. Das folgende Bild illustriert dies:
Es werden Körper mit 3 Ecken, mit 4 Ecken und sonstige in Cluster eingeteilt. Die unbekannten Daten werden dann nach diesen Kriterien gruppiert. Konkrete aktuelle Anwendungsfälle im IT Softwarebereich sind:
- Marketing: Ähnliche Kunden werden bestimmten Zielgruppen zugewiesen.
- Medizin: Krankheitsbilder werden gruppiert zur Anwendung passender Therapien
- Generische Anwendung in der Bildverarbeitung: Bilder werden in vorgegebene Cluster eingeteilt
Bestärkendes maschinelles Lernen (ML)
Sowohl das überwachte, als auch das unüberwachte maschinelle Lernen haben in der Lösung unbekannter komplexer Fragestellungen Ihre Grenzen. Die gelernten Zielgrößen sind relativ statisch.
Als Voraussetzung für das Treffen von komplexe, eigenständige Entscheidungen durch Maschinen wird vermutlich das bestärkende maschinelle Lernen (Re-enforcement ML) eher ein Lösungsansatz sein.
Beim bestärkenden maschinellen Lernen werden die Ergebnisse eines Algorithmus über eine in der Praxis komplexe Bewertungsmatrix zurückgemeldet. In einer neuen Situation greift dann der Algorithmus bei der Entscheidungsfindung auf die Erfahrung aus der vorgehenden Aktion zurück. Über mehrere Anwendungszyklen hinweg können somit die Entscheidungen verbessert werden, bzw. auch fundierte Entscheidungen getroffen werden, für zunächst unbekannte Szenarien. Folgende Bild zeigt schematisch den Aufbau für ein bestärkendes maschinelles Lernen:
Das wohl bekannteste Anwendungsbeispiel ist Googles KI Algorithmus welcher gegen die besten Go-Spieler gewonnen hat. Allerdings ist auch anzumerken, dass Bestärkendes maschinelles Lernen außerhalb des Spielesektors kaum echte Anwendung findet, welche über die Implementierung von klassischen Regelalgorithmen hinausgehen.
Künstliche Intelligenz (KI) Systeme testen
Wenn man sich die 3 vorgestellten praxisrelevanten Technologien für Systeme mit Künstlicher Intelligenz nun aus Sicht eines Testers genauer ansieht, dann beinhaltet jedes der Systeme folgende Elemente:
Aufbau und Struktur aktueller Systeme im industriellen Einsatz
Bevor wir uns tiefergehend über das Testen dieser neuen KI Systeme beschäftigen, werfen wir einen Blick in aktuelle, bestehende elektronischen Steuergeräten im Auto und der Luftfahrt. Hier kann man folgenden Elemente erkennen:
Wesentliche Eigenschaften dieser Steuergeräte werden heute durch komplexe und umfangreiche Konfigurationsdaten gesteuert. Damit kann man auf einfache Art und Weise, schnell Änderungen am funktionalen Verhalten des Steuergerätes implementieren. Dies ist insbesondere für die Abstimmung der einzelnen Komponenten auf Fahrzeugebene enorm hilfreich. Genau gleiches gilt für einige Systeme welche in der zivilen Luftfahrt eingesetzt werden.
Neben diesen wichtigen Vorteilen von hoch konfigurierbaren Systemen gibt es aber auch wesentliche Nachteile. Die Funktionalität solcher Systeme steigt gegenüber nicht konfigurierbaren Systemen exponentiell an. Ein vollständiger Test ist daher offensichtlich nicht mehr durchführbar. In der Luftfahrt gibt es für die sicherheits-relevantesten Systeme durchaus Lösungsansätze, für den Nachweis einer vollständigen Verifikation. Die Aufwände dafür sind aber in den meisten anderen Systemen wirtschaftlich nicht vertretbar.
Der Source Code selber kann in folgende zwei Bereiche unterschieden werden:
- Mathematische Algorithmik
- Datenverarbeitung
Das Testen und Spezifizieren von mathematischer Algorithmik ist in heutigen klassischen Steuergeräten komplex und fehleranfällig. Ein vollständiger Test ist praktisch unmöglich.
In vielen Steuergeräten ist aber der Anteil an Software welche die mathematischen Algorithmen implementiert klein(er), im Vergleich zur Software welche „nur“ Datenverarbeitung macht (z.B. Formatieren, Kopieren von Daten, Fehlerbehandlungen, Steuerung von HW-Ausgangssignalen etc.).
Die Funktionalität von Datenverarbeitungssoftware lässt sich wiederum recht gut in Requirements beschreiben. Die Vollständigkeit von Tests lässt sich recht gut nachweisen.
Was bedeuten diese Erkenntnisse für den Test von Künstlichen Intelligenz Systemen?
Beim Vergleich zwischen KI Systemen (überwachte/unüberwachte Systeme des maschinellen Lernens) und herkömmlichen Systemen erkennen wir, dass Daten und mathematische Algorithmen ein wesentlicher Bestandteil beider Systeme sind.
Beide stellen schon das Testen herkömmlicher Systeme vor die genannten, großen, teils ungelöste Herausforderungen.
Da die Daten und die mathematischen Algorithmik in KI Systemen eine deutlich zentralere Rolle spielen, verstärken KI Systeme die schon heutig vorhandenen Herausforderungen des Testens:
- Validierung der Korrektheit des zu entwickelnden Systems
- Genauigkeit, Komplexität und Vollständigkeit mathematischen Algorithmen
- Exponentielle, funktionale Varianz von datengetriebenen Systemen
- Entwurf und Herstellung von automatisierten Testsystemen auf Integrations- und Systemebene
Künstliche Intelligenz (KI) Systeme steigern die Möglichkeiten komplexe Problemstellungen zu lösen. Dies ist einerseits eine positive Entwicklung. Andererseits wird es aber damit auch der Nachweis der Korrektheit einer Lösung, d.h. dessen Validierung immer anspruchsvoller. Insbesondere für überwachtes und unüberwachtes maschinelles Lernen bedeutet dies aber keinesfalls, dass die Systeme nicht validierbar und auch verifizierbar wären.
Vorschlag zur Sicherstellung der Datenqualität
Damit das System die Problemstellung korrekt umsetzt spielen die Trainingsdaten die entscheidende Rolle. Der Luftfahrt Standard DO 200B „Standards for Processing Aeronautical Data“ hat zwar keinerlei Bezug zu KI Systemen, bietet aber durchaus übertragbare Ansätze wie die Qualität von Daten auch für KI Systeme erreicht werden kann.
Strategien zum vollständigen Nachweis der Funktionalität
Wie wir schon festgestellt haben, ist ein vollständiger Tests aufgrund der Komplexität und des funktionalen Umfangs nicht mehr möglich. Was aber in der Luftfahrt auf eine sehr effiziente Art und Weise eine enorme Hilfe bietet, sind zusätzliche, gezielte Analysen der Kombination von Algorithmik, Daten und geplanten Tests. Auch wenn diese Methodik bei KI Systemen auch keine Vollständigkeit mehr erwarten lässt, so lassen sich doch größere Lücken erkennen. Mit den Informationen kann dann systematischer, risikobasierten Testansatz umgesetzt werden.
Das endgültige Ende des manuellen Testens
Neben den der Methodik, spielen auch die Testprüfstände eine wichtige Rolle. Komplexe herkömmliche Systeme werden oft immer noch manuell getestet. Für KI Systeme wird offensichtlich dass dies nicht mehr funktioniert. Ohne eine hohe Testautomatisierung von System- und Integrationstests wird man kein KI System sinnvoll testen können. Die gute Nachricht ist, dass hier noch viel Potential steckt. Die Automatisierung von Tests besonders auf den höheren Ebenen ist bisher sehr teuer. Hier gibt’s zwei wesentliche Gründe:
- Die Nachfrage nach solchen Systeme ist bisher relativ gering
- Eine wirkliche Standardisierung von Komponenten von Testsystemen hat noch nicht stattgefunden.
Methodische Verbesserungen sind möglich
Der Test von KI Systemen führt hoffentlich auch dazu, dass wir endlich manche der eingefahrenen Methoden und Prozesse kritisch hinterfragen und Verbesserungen entwerfen. Die Spezifikation und damit auch der Test von mathematischen Algorithmen stellt seit jeher ein fast ungelöstes Problem dar. Das Requirement Engineering wurde aber auch seit Jahren nicht mehr wirklich weiter entwickelt. Ganz sicher schlummern hier auch noch methodische Potentiale, die wenn sie gehoben werden, auch einen guten Beitrag leisten um KI Systeme zu testen.
Besonderheiten des Testens von Systemen des bestärkenden maschinellen Lernens
KI Systeme welche auf bestärkendem maschinellen Lernen beruhen, können sicherlich auch von den oben genannten Ansätzen der Validierung und Verifikation profitieren. Allerdings unterscheiden sich diese Systeme in einem Punkt grundsätzlich von den anderen beiden Methoden des maschinellen Lernens: Es gibt kein sinnvoll, nachvollziehbares oder vorhersagbares „richtig“ oder „falsch“ mehr. Die Systeme sind dafür ausgelegt, eigenständige Entscheidungen zu treffen. Diese Entscheidungen beruhen schon nach kurzer Laufzeit des Systems auf praktisch unendlich vielen Erfahrungen. Diese Systeme werden entworfen um nicht vorhersagbare Entscheidungen zu treffen. Daraus ergibt sich zwangsläufig, dass Sie praktisch nicht mehr verifizierbar sind. Zumindest gilt das für heutige, in der Praxis übliche Validations- und Verifikationsmethoden.
Wir müssen für den Umgang mit solchen Systemen ganz neue Kriterien entwerfen. Dazu sollten wir den aktiven Austausch mit der Spieleindustrie suchen, den dort gibt es die größte Erfahrung mit derartigen Systemen.
Zusammenfassung
Drei Arten des maschinellen Lernens dominieren die industriellen KI Anwendungen:
- Überwachtes maschinelles Lernen
- Unüberwachtes maschinelles Lernen
- Bestärkendes maschinelles Lernen
Alle drei Arten gehören zu den Schwachen KIs. Eine starke KI, welche in der Lage wäre u.a. strategische und emotionale Intelligenz nachzubilden gibt es nicht.
Der Test der genannten schwachen KIs ist durchaus möglich. Allerdings werden bereits die beim Test von herkömmlichen Systeme bekannten Herausforderungen, größer und wichtiger wenn man KI System testen will.
Unmöglich erscheint aus heutiger Sicht nur der Test von Systemen welche das bestärkende maschinelle Lernen implementieren, da hier nicht mehr eindeutig ein „richtig“ oder „ falsch“ für das Systemverhalten definiert werden kann.
Da vermutlich die Akzeptanz von KI Systemen insgesamt stark von deren Wirksamkeit abhängen wird, ist es zwingend geboten, diese Wirksamkeit vor Inverkehrbringen der Systeme zu validieren und verifizieren. Um die dabei diskutierten Herausforderungen meistern zu können müssen wir zukünftig dem Test Engineering deutlich mehr Aufmerksamkeit widmen als bisher.
Weiterführende HEICON Blogbeiträge
- Requirements Engineering 2.0 – Ansätze wie die Methode weiterentwickelt werden muss!
- Risikobasiertes Testen: Methode für die Identifikation der richtigen Testfälle
- Testing AI based systems (Vector Informatik: Coders Kitchen)
Ihre individuellen Fragen zum Testen von KI Systemen beantworten wir gerne in einem ersten, kostenlosen 30min Beratungsgespräch!
Vereinbaren Sie gleich einen Termin: Eine kurze Mail an info[at]heicon-ulm.de genügt, oder greifen Sie gleich zum Telefonhörer: +49 (0) 7353 981 781 (Mo bis Fr 08:00 – 18:00Uhr).
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!