Open-Source-Toolbox zur Unterstützung des Safety-Engineering neuronaler Netze
Das Neural Network Dependability Kit (NNDK) ist eine Open-Source-Toolbox zur Unterstützung des Safety-Engineering neuronaler Netze. Die zentralen Funktionen von NNDK sind zum einen Zuverlässigkeitsmetriken zur Anzeige und Beseitigung von Unsicherheiten im Produktlebenszyklus, weiterhin formale Beweisroutinen, die sicherstellen, dass durch die Generalisierung der neuronalen Netze keine unerwünschten Verhaltensweisen hervorgerufen werden, und schließlich eine Laufzeitüberwachung zur Überprüfung und zum Erhalt von Ähnlichkeiten zwischen Daten zur Laufzeit und den Trainingsdaten.
NNDK ist eine Open-Source-Toolbox zur Unterstützung der datengesteuerten Entwicklung neuronaler Netze für sicherheitskritische Bereiche. NNDK hat zum Ziel, den Nachweis der Reduktion von Unsicherheiten in den wichtigsten Phasen des Produktlebenszyklus zu erbringen, von der Datenerfassung, dem Training und der Validierung über das Testen und die Generalisierung bis hin zum Betrieb. Die Toolbox besteht aus Zuverlässigkeitsmetriken, Routinen zur formalen Beweisführung und zur Laufzeitüberwachung.
Bei der Datenaufbereitung muss sichergestellt werden, dass die gesammelten Daten alle Betriebsszenarien abdecken. NNDK liefert quantitative Metriken für die Projektionsabdeckung, und die damit verbundenen Techniken zur Testfallgenerierung werden verwendet, um eine relative Form der Vollständigkeit gegenüber der kombinatorischen Explosion von Szenarien zu gewährleisten. In der Trainings- und Validierungsphase erleichtert NNDK die Betrachtung der Leistung unter verschiedenen Betriebsszenarien. Für die bildbasierte Objekterkennung werden Metriken wie Interpretationsgenauigkeit und Empfindlichkeit bezüglich Objektverdeckungen bereitgestellt.
NNDK unterstützt auch die Prüfung der Generalisierungsfähigkeit des neuronalen Netzes bei bekannten Störungen unter Verwendung der Perturbationsverlustmetrik. Unter der Voraussetzung, dass das Domänenwissen formal spezifiziert werden kann, kann auch eine formale Verifikation durchgeführt werden, um zu prüfen, ob das neuronale Netz ein korrektes Verhalten in Bezug auf die Spezifikation zeigt.
Für die Betriebsphase bietet NNDK eine Laufzeitüberwachungsroutine, die auf der Aufzeichnung von Neuronenaktivierungsmustern zur Trainingszeit beruht und prüft, ob ein während des Betriebs erzeugtes Aktivierungsmuster auch während des Trainings gesehen wurde. Diese Lösungen können in Zuverlässigkeitsargumentationen verwendet werden, um die Sicherheit einer Funktion, die neuronale Netze einsetzt, zu belegen. Ein vereinfachtes GSN-Diagramm (Goal Structuring Notation) hilft zu verstehen, wie die von NNDK bereitgestellten Funktionen zum allgemeinen Sicherheitsziel beitragen.
Derzeit verwendet das Toolset das PyTorch-Framework. Die meisten Lösungen basieren jedoch auf NumPy-Arrays und können leicht an das jeweilige Framework angepasst werden. Beispielimplementierungen werden in Form von Jupyter-Notebooks bereitgestellt. Sie verwenden Standarddatensätze wie MNIST, GTSRB, VOC und Kitti für Berechnungen und Ergebnisse.
NNDK wurde für verschiedene Anwendungen im Bereich des autonomen Fahrens, der medizinischen Bildklassifikation und der Weltraumnavigation eingesetzt. Die Einfachheit seiner Anwendung in DNN-Modellen macht es zu einem domänenunabhängigen Ansatz.
Alle verfügbaren Downloads finden Sie hier.