Verifikation und Validierung für KI mit MATLAB und Simulink

V&V-Workflows: Der W-förmige Entwicklungsprozess

Die KI-Technologie revolutioniert Branchen und verändert, wie wir arbeiten und leben. Wenn KI-Systeme in sicherheitskritische Bereiche wie Luft- und Raumfahrt, Automobilindustrie und Gesundheitswesen integriert werden (Abbildung 1), treffen sie Entscheidungen, die sich unmittelbar auf die Sicherheit und das Wohlergehen von Menschen auswirken. Daraus ergibt sich ein wachsender Bedarf an strengen Verifikations- und Validierungsprozessen, um das Modellverhalten zu erklären, zu prüfen und zu validieren.

Repräsentative Symbole der jeweiligen Branche: ein Stoppschild für die Automobilindustrie, ein Flugzeug für Luft- und Raumfahrt sowie ein Brustkorb-Röntgenbild für den medizinischen Bereich.

Abbildung 1: Bildklassifikationsnetzwerke werden in der Automobilindustrie, der Luft- und Raumfahrt- sowie der Medizintechnik eingesetzt.

Im Kontext der KI-Zertifizierung helfen Verifikations- und Validierungstechniken (V&V) dabei, Risiken zu identifizieren und zu mindern, indem sie nachweisen, dass KI-Modelle und KI-gesteuerte Systeme die vorgegebenen Industriestandards und Vorschriften einhalten.

Klassische V&V-Workflows, wie der V-Zyklus, reichen möglicherweise nicht aus, um die Genauigkeit und Zuverlässigkeit von KI-Modellen sicherzustellen. Aus diesem Grund wurden Anpassungen dieser Workflows entwickelt, um KI-Anwendungen besser zu unterstützen, wie etwa der W-förmige Entwicklungsprozess (Abbildung 2).

Anpassung des V-Modells für die Entwicklung von KI-/Machine-Learning-Systemen, mit den Phasen von den Anforderungen bis zur Verifikation.

Abbildung 2: W-förmiger Entwicklungsprozess. Basierend auf einem Originaldiagramm, das von der Europäischen Agentur für Flugsicherheit (EASA) veröffentlicht wurde. (Bildquelle: EASA)

Die folgenden Abschnitte führen Sie durch die V&V-Schritte des W-förmigen Entwicklungsprozesses. Einen tieferen Einblick in diesen Prozess finden Sie in den unten aufgeführten Ressourcen.

Implementierung des W-förmigen Prozesses: Eine medizinische Fallstudie

Zur Demonstration eines Anwendungsfalls direkt aus der Praxis führt Sie dieses Whitepaper durch die Entwicklung eines medizinischen KI-Systems, das anhand von Thorax-Röntgenbildern erkennt, ob ein Patient an einer Pneumonie leidet. Die folgende Fallstudie verdeutlicht Stärken und Herausforderungen von KI in sicherheitskritischen Anwendungen und zeigt, warum das Bildklassifikationsmodell sowohl genau als auch fehlerresistent sein muss, um folgenreiche Fehldiagnosen zu vermeiden.

Von den Anforderungen zur fehlerresistenten Modellierung

Die erste Hälfte des W-förmigen Entwicklungsprozesses trägt dazu bei, sicherzustellen, dass KI-Modelle die erforderlichen Standards erfüllen und in realen Anwendungen zuverlässig arbeiten.

Zuweisung von Anforderungen an das Management der ML-Komponente

Der erste Schritt im W-Zyklus besteht darin, anforderungsspezifische Vorgaben für die Machine-Learning-Komponente zu erfassen. Zentrale Aspekte sind hierbei die Implementierung, das Testen und die Erklärbarkeit des Modells. Die Requirements Toolbox™ unterstützt das Erstellen, Verknüpfen und Validieren von Anforderungen (Abbildung 3).

Die Requirements Editor-App zeigt eine Anforderung an die Testpräzision für ein Machine-Learning-Modell.

Abbildung 3: Die Requirements Editor-App erfasst alle Anforderungen für die Machine-Learning-Komponente.

Datenverwaltung

Der nächste Schritt im W-Zyklus ist das Datenmanagement, das für überwachtes Lernen entscheidend ist, da hierfür gekennzeichnete Daten erforderlich sind. MATLAB® stellt Kennzeichungs-Apps wie den Image Labeler und Signal Labeler zum interaktiven und automatisierten Kennzeichnen bereit. Mithilfe der Funktion imageDatastore, die Bilddateien für eine skalierbare Verarbeitung organisiert, lassen sich große Bilddatensätze verwalten, so etwa für das Trainingsdatenmanagement zur Pneumonieerkennung:

trainingDataFolder = "pneumoniamnist\Train";

imdsTrain = imageDatastore(trainingDataFolder,IncludeSubfolders=true,LabelSource="foldernames");

countEachLabel(imdsTrain)

Lernprozessmanagement

Vor dem Training ist es wichtig, die Netzwerkarchitektur und die Trainingsoptionen festzulegen; dazu gehören der Algorithmus, die Verlustfunktion und Hyperparameter. Die Deep Network Designer-App ermöglicht die interaktive Gestaltung und Visualisierung von Netzwerken. Der folgende Code definiert die Architektur eines Convolutional Neural Network (CNN) für die Bildklassifikation:

numClasses = numel(classNames);
layers = [
 imageInputLayer(imageSize,Normalization="none")
 convolution2dLayer(7,64,Padding=0)
 batchNormalizationLayer()
 reluLayer()
 dropoutLayer(0.5)
 averagePooling2dLayer(2,Stride=2)
 convolution2dLayer(7,128,Padding=0)
 batchNormalizationLayer()
 reluLayer()
 dropoutLayer(0.5)
 averagePooling2dLayer(2,Stride=2)
 fullyConnectedLayer(numClasses)
 softmaxLayer];

Das Finden optimaler Hyperparameter kann komplex sein, doch die Experiment Manager-App ermöglicht es, unterschiedliche Werte per Parameterdurchlauf (Sweeping) oder Bayesscher Optimierung zu untersuchen (Abbildung 4). Mehrere Trainingskonfigurationen können parallel getestet werden, wobei die verfügbare Hardware genutzt wird, um den Prozess zu beschleunigen.

Screenshots der Einrichtung eines Hyperparameter-Durchlaufs und der CNN-Schichtkonfiguration in der Experiment Manager-App.

Abbildung 4: Einrichtung des Problems in der Experiment Manager-App, um aus der in Deep Network Designer exportierten Architektur ein optimales Set an Hyperparametern zu ermitteln.

Modelltraining und erste Validierung

Die Trainingsphase beginnt mit dem Ausführen von Experimenten in der Experiment Manager-App und liefert ein erstes Modell mit vielversprechender Genauigkeit (~96% auf dem Validierungssatz). Allerdings erfüllt es nicht alle vordefinierten Anforderungen, wie etwa die Fehlerresistenz. Da der W-Zyklus iterativ ist, sind dementsprechend weitere Verfeinerungen erforderlich.

Screenshot des Experiment Manager mit CNN-Hyperparameter-Ergebnissen und einer Konfusionsmatrix zur Pneumonieerkennung.

Abbildung 5: Ermittlung eines ersten Modells mit der Experiment Manager-App.

Verifikation des Lernprozesses

Die Sicherstellung, dass KI-Modelle die festgelegten Anforderungen erfüllen, ist besonders in sicherheitskritischen Anwendungen wichtig. Die nächsten Schritte des W-förmigen Entwicklungsprozesses umfassen die Implementierung von Verifikationstechniken, um zu bestätigen, dass die Modellleistung den Erwartungen entspricht.

Testen und Verstehen der Modellleistung

Das Modell wurde mithilfe von Adversarial-Training, genauer gesagt der Fast Gradient Sign Method (FGSM), trainiert, um die Fehlerresistenz gegenüber adversariellen Beispielen zu erhöhen. Es erreichte eine Genauigkeit von über 90% und übertraf damit vordefinierte Anforderungen und Benchmarks. Zur besseren Einordnung der Leistung wurde eine Konfusionsmatrix eingesetzt, um Fehlermuster zu analysieren, während Erklärbarkeitstechniken wie Grad-CAM (Abbildung 6) visuelle Einblicke lieferten, die die Interpretierbarkeit und das Vertrauen in die Entscheidungen erhöhen.

Eine Grad-CAM Heatmap hebt aus einem Thorax-Röntgenbild die als pneumonierelevant prognostizierten Bereiche hervor.

Abbildung 6: Verstehen von Netzwerkausgaben mithilfe von gradientengewichteter Klassenaktivierungskartierung (Grad-CAM).

Adversarielle Beispiele („Feindliche Beispiele“)

Adversarielle Beispiele sind kleine, für Menschen kaum wahrnehmbare Änderungen an Eingaben, die dazu führen können, dass neuronale Netze falsche Klassifizierungen durchführen. Das wirft wiederum Fragen zur Fehlerresistenz in sicherheitskritischen Aufgaben wie der medizinischen Bildgebung auf (Abbildung 7).

Das ursprüngliche Röntgenbild der Lunge mit Pneumonie wird nach dem Hinzufügen subtilen adversariellen Rauschens fälschlich als normal eingestuft.

Abbildung 7: Adversarielle Beispiele: die Auswirkung von Eingabestörungen auf die Bildklassifikation.

L-Unendlich-Norm

Die L-Unendlich-Norm wird verwendet, um adversarielle Störungen zu verstehen und zu quantifizieren (Abbildung 8). Sie definiert einen Bereich, innerhalb dessen Pixelwerte verändert werden können. Das führt zu unzähligen möglichen Testkombinationen und erschwert die vollständige Bewertung aller Szenarien.

Vergrößerter Ausschnitt eines Röntgenbildes mit Matrizen, die Phasen der Pixelstörung in einem neuronalen Netzwerk zeigen.

Abbildung 8: Die L-Unendlich-Norm: Beispiele möglicher Eingabestörungen.

Formale Verifikation der Fehlerresistenz

Formale Verifikationsmethoden bieten einen mathematischen Ansatz, um die Fehlerresistenz neuronaler Netze gegenüber einer Vielzahl potenzieller adversarieller Beispiele systematisch zu bewerten und sicherzustellen. Die Deep Learning Toolbox™ Verification Library stellt dafür formale Verifikationsmethoden wie die abstrakte Interpretation bereit. Ausgehend von einem Bild aus dem Testdatensatz kann eine Störung definiert werden, die eine große Menge abgewandelter Versionen dieses Bildes beschreibt (Abbildung 9).

Workflow mit Eingabe eines Röntgenbildes, Störungsmenge, Modell und Ausgabelabels: verifiziert, unbewiesen oder verletzt.

Abbildung 9. Formale Verifikation mithilfe abstrakter Interpretation.

Für jedes Bild sind drei Ergebnisse möglich:

  • Verifiziert – das Ausgabelabel bleibt konsistent.
  • Verletzt – das Ausgabelabel ändert sich.
  • Unbewiesen – weitere Verifikationsschritte oder eine Modellverbesserung sind erforderlich.

Erkennung von Out-of-Distribution

Ein vertrauenswürdiges KI-System sollte in einem bekannten Kontext genaue Vorhersagen liefern. Gleichzeitig sollte es unbekannte, dem Modell nicht vertraute Beispiele erkennen und sie entweder zurückweisen oder zur sicheren Bearbeitung an eine menschliche Fachkraft übergeben. Mit der Deep Learning Toolbox Verification Library können Sie einen Daten-Diskriminator für Out-Of-Distribution (OOD) erstellen, der Netzwerkvorhersagen einen Konfidenzscore (Vertrauenswert) zuweist, indem für jede Beobachtung ein Verteilungs-Konfidenzscore berechnet wird (Abbildung 10). Der Diskriminator liefert außerdem einen Schwellenwert, um In-Distribution-Daten von OOD-Daten zu trennen.

Histogramm mit Verteilungen der Konfidenzscores für Trainingsdaten und verschiedene Störungen.

Abbildung 10. Verteilung der Konfidenzscores für die ursprünglichen und abgeleiteten Datensätze.

Von der Modellimplementierung bis zur Anforderungsvalidierung

Sobald der Lernprozess verifiziert ist, verlagert sich der Fokus darauf, KI-Modelle für reale Anwendungen anzupassen. Die letzten Schritte des W-förmigen Entwicklungsprozesses umfassen die Vorbereitung des Modells für den Einsatz und die Sicherstellung, dass es die betrieblichen Anforderungen erfüllt.

Modellimplementierung und Codegenerierung

Der Übergang von der Verifikation des Lernprozesses zur Modellimplementierung im W-förmigen Entwicklungsworkflow markiert den Schritt, in dem ein KI-Modell von der Verfeinerung in die reale Anwendung übergeht. Die Codegenerierung mit MATLAB und Simulink® automatisiert die Umwandlung trainierter Modelle in einsatzfähigen Code (z. B. C/C++ oder CUDA®; siehe Abbildung 11), senkt den manuellen Codieraufwand und minimiert Fehler.

Diagramm der Codegenerierung von Modellen aus MATLAB zu CPU-, Grafikkarten-, Mikrocontroller- und FPGA-Zielen.

Abbildung 11. Codegenerierungstools von MATLAB und Simulink.

Mit der Funktion analyzeNetworkForCodegen können Sie in MATLAB prüfen, ob Ihr Deep-Learning-Modell für die Codegenerierung bereit ist. Das stellt die Kompatibilität mit Zielbibliotheken sicher und ermöglicht – insbesondere für sicherheitskritische Anwendungen – die Codegenerierung ohne Drittanbieterabhängigkeiten. Automatische Codegenerierung vereinfacht die Zertifizierung, verbessert die Portierbarkeit und ermöglicht eine zuverlässige Bereitstellung auf unterschiedlichen Plattformen.

analyzeNetworkForCodegen(net)

 Wird unterstützt
 _________
 none "Yes"
 arm-compute "Yes"
 mkldnn "Yes"
 cudnn "Yes"
 tensorrt "Yes"

Wenn es bei der Bereitstellung auf geringen Speicherbedarf, Festkommaarithmetik oder eine hohe Recheneffizienz ankommt, erweist sich die Deep Learning Toolbox Model Quantization Library als besonders effektiv. Verfahren wie die Quantisierung und das Pruning können die Modellgröße und die Rechenlast deutlich reduzieren; so lässt sich beispielsweise ein Modell beim Wechsel von Gleitkomma auf int8 mithilfe der Deep Network Quantizer-App um das Vierfache komprimieren, bei lediglich 0,7% Genauigkeitseinbuße (Abbildung 12).

Screenshot der Deep Network Quantizer-App mit Dynamikbereichsstatistiken und Validierungsergebnissen für ein neuronales Netz.

Abbildung 12. Quantisierung eines Deep Neural Network mit der Deep Network Quantizer-App.

Mit MATLAB Coder™ und GPU Coder™ können Sie C++ und CUDA-Code generieren, um KI-Modelle auf Echtzeitsystemen bereitzustellen, bei denen Geschwindigkeit und geringe Latenz entscheidend sind. Dazu konfigurieren Sie die Zielsprache und die Deep-Learning-Einstellungen, wie etwa die Nutzung von cuDNN zur Beschleunigung durch Grafikkarten.

cfg = coder.gpuConfig("mex"); 

cfg.TargetLang = "C++"; 

cfg.GpuConfig.ComputeCapability = "6.1"; 

cfg.DeepLearningConfig = coder.DeepLearningConfig("cudnn"); 

cfg.DeepLearningConfig.AutoTuning = true; 

cfg.DeepLearningConfig.CalibrationResultFile = "quantObj.mat"; 

cfg.DeepLearningConfig.DataType = "int8"; 

input = ones(inputSize,"int8"); 

codegen -config cfg -args input predictCodegen -report

Verifikation und Integration des Inferenzmodells

Die Phase der Verifikation und Integration des Inferenzmodells stellt sicher, dass ein KI-Modell, zum Beispiel zur Pneumonieerkennung, mit neuen, unbekannten Daten zuverlässig arbeitet und sich nahtlos in ein größeres Gesundheitssystem einfügt. 

Nach der Konvertierung des Modells nach C++ und CUDA wird in dieser Phase seine Genauigkeit überprüft und es wird in ein Gesamtsystem eingebettet, einschließlich der Komponenten für Laufzeitüberwachung, Datenerfassung und Visualisierung. Durch die Simulation des Systems in Simulink können Sie verifizieren, dass das Modell in Echtzeit wirksam arbeitet und seine Leistung im Gesamtsystem aufrechterhält (Abbildung 13).

Diagramm eines KI-Modells mit Laufzeitüberwachung und Visualisierung zur Vertrauenseinschätzung.

Abbildung 13. Simulink-Harness mit integriertem Deep-Learning-Modell.

Der Laufzeitmonitor hilft, zwischen vertrauten und unvertrauten Eingaben zu unterscheiden (Abbildung 14). Er signalisiert sichere Vorhersagen in Grün, wenn die Daten der Trainingsverteilung entsprechen, und kennzeichnet potenzielle Anomalien in Rot für OOD-Fälle. Diese Fähigkeit erhöht die Sicherheit und Zuverlässigkeit des KI-Systems, indem sie sicherstellt, dass es nicht nur präzise Vorhersagen trifft, sondern auch unbekannte Daten erkennt und angemessen behandelt.

Zwei Röntgenaufnahmen mit korrekten und inkorrekten Pneumonievorhersagen einschließlich Konfidenzscores.

Abbildung 14. Beispiele für die Ausgaben des Laufzeitmonitor-Subsystems.

In dieser Phase ist die Umsetzung einer umfassenden Teststrategie essenziell. Mit MATLAB Test™ oder Simulink Test™ können Sie automatisierte Tests erstellen, um die Genauigkeit, Leistung und Integration des KI-Modells im Gesamtsystem gründlich zu validieren.

Unabhängige Daten- und Lernverifikation

Die Phase der unabhängigen Daten- und Lernverifikation stellt sicher, dass Trainings-, Validierungs- und Testdatensätze korrekt verwaltet, vollständig und repräsentativ für den Eingaberaum der Anwendung sind. Sie umfasst eine unabhängige Prüfung, nachdem das Inferenzmodell auf der Zielplattform verifiziert wurde. Zudem wird bestätigt, dass die Lernverifikation zusammen mit der Abdeckungsanalyse zufriedenstellend abgeschlossen ist.

Verifizierung von Anforderungen

Die Phase der Anforderungsverifikation beendet den W-förmigen Entwicklungsprozess, indem sichergestellt wird, dass alle Anforderungen vollständig implementiert und getestet sind. Mithilfe der Requirements Toolbox™ werden Funktionen und Tests ihren jeweiligen Anforderungen zugeordnet, sodass sich damit der Entwicklungszyklus schließt. Das Ausführen dieser Tests aus dem Requirements Editor bestätigt, dass alle Anforderungen erfolgreich erfüllt wurden (Abbildung 15).

Abbildung 15. Ausführen von Tests direkt im Requirements Editor.

Abschluss des Entwicklungsprozesses

Nach der Anforderungsverifikation ist der W-förmige Entwicklungsprozess abgeschlossen. In diesem Beispiel eines Medizinprodukts haben die sorgfältigen, systematischen Schritte sichergestellt, dass das KI-Modell zur Pneumonieerkennung genau, fehlerresistent und einsatzbereit ist. Durch die Verknüpfung von Anforderungen mit konkreten Funktionen und Tests wurde eine klare Rückverfolgbarkeit hergestellt und jede Anforderung systematisch verifiziert – daraus ergibt sich der Nachweis, dass das Modell die strengen Standards für Anwendungen im Gesundheitswesen erfüllt. Nun kann ein zuverlässiges Tool bereitgestellt werden, das eine verbesserte Patientenversorgung unterstützt.