Les technologies d'IA révolutionnent les industries et transforment aussi bien notre façon de travailler que nos modes de vies. L'intégration croissante des systèmes d'IA dans des industries où la sécurité revêt une importance critique, telles que l'aérospatiale, l'automobile et la santé (Figure 1), amène ces systèmes à prendre des décisions qui ont un impact direct sur la sécurité et le bien-être des personnes. Il en résulte un besoin croissant de processus rigoureux de vérification et de validation pour expliquer, vérifier et valider le comportement des modèles.
Dans le contexte de la certification en IA, les techniques de vérification et de validation (V&V) permettent d'identifier et d'atténuer les risques en démontrant que les modèles d'IA et les systèmes basés sur l'IA respectent les normes et réglementations industrielles.
Les workflows traditionnels de V&V, tels que le cycle en V, peuvent s'avérer insuffisants pour garantir la précision et la fiabilité des modèles d'IA. Pour une meilleure adéquation avec les applications d'IA, des adaptations de ces workflows, telles que le processus de développement en W (Figure 2), ont vu le jour.
Figure 2. Processus de développement en W. D’après un diagramme original publié par l'Agence de l'Union européenne pour la sécurité aérienne (AESA). (Crédit image : AESA)
Figure 2. Processus de développement en W. D’après un diagramme original publié par l'Agence de l'Union européenne pour la sécurité aérienne (AESA). (Crédit image : AESA)
Les sections suivantes vous guideront à travers les étapes de V&V du processus de développement en W. Pour examiner ce processus plus en détail, consultez les ressources ci-dessous.
Pour continuer à explorer ce sujet
Pour illustrer la mise en œuvre de ce processus sur un cas pratique, ce livre blanc vous présentera le développement d'un système d'IA médicale conçu pour examiner des radiographies du thorax et déterminer si un patient souffre d'une pneumonie. Cette étude de cas met en lumière les atouts et les défis de l'IA dans les applications critiques, en montrant pourquoi le modèle de classification des images doit être à la fois précis et robuste afin d’éviter les erreurs de diagnostic dommageables.
La première moitié du processus de développement en W permet de s'assurer que les modèles d'IA répondent aux normes requises et se comportent de manière fiable dans des applications concrètes.
Exigences attribuées à la gestion du module ML
La première étape du cycle en W consiste à collecter les exigences spécifiques au module de Machine Learning. Les éléments clés à prendre en compte incluent l'implémentation, les tests et l'explicabilité du modèle. Requirements Toolbox™ facilite la création, la liaison et la validation des exigences (Figure 3).
Figure 3. L'application Requirements Editor capture les exigences applicables au module de Machine Learning.
Figure 3. L'application Requirements Editor capture les exigences applicables au module de Machine Learning.
Gestion des données
L'étape suivante du cycle en W est la gestion des données, une étape essentielle pour l'apprentissage supervisé qui requiert des données labellisées. MATLAB® propose des applications de labellisation telles qu'Image Labeler et Signal Labeler pour une labellisation interactive et automatisée. L'utilisation d'imageDatastore, qui structure les fichiers image dans une perspective d'évolutivité, vous permet de gérer des jeux de données volumineux tels que les images utilisées pour l'apprentissage visant à détecter les cas de pneumonie :
trainingDataFolder = "pneumoniamnist\Train"; imdsTrain = imageDatastore(trainingDataFolder,IncludeSubfolders=true,LabelSource="foldernames"); countEachLabel(imdsTrain)
Gestion du processus d'apprentissage
Avant l'apprentissage, il est essentiel de finaliser l'architecture du réseau et les options d'apprentissage, notamment l'algorithme, la fonction de perte et les hyperparamètres. L'application Deep Network Designer permet de concevoir et de visualiser les réseaux de manière interactive. Le code ci-dessous définit l'architecture d'un réseau de neurones à convolution (CNN) pour la classification d'images :
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];
Il peut s'avérer complexe de trouver les hyperparamètres optimaux, mais l'application Experiment Manager vous aide en explorant différentes valeurs par balayage ou optimisation bayésienne (Figure 4). Vous pouvez tester plusieurs configurations d'apprentissage en parallèle, en exploitant le hardware disponible pour rationaliser le processus.
Figure 4. Configuration du problème dans l'application Experiment Manager pour trouver un ensemble optimal d'hyperparamètres à partir de l'architecture exportée dans Deep Network Designer.
Figure 4. Configuration du problème dans l'application Experiment Manager pour trouver un ensemble optimal d'hyperparamètres à partir de l'architecture exportée dans Deep Network Designer.
Apprentissage et validation initiale du modèle
La phase d'apprentissage commence par l'exécution d'expériences dans l'application Experiment Manager, ce qui permet d'obtenir un modèle initial d'une précision prometteuse (environ 96 % sur le jeu de données de validation). Cependant, il ne répond pas entièrement à toutes les exigences prédéfinies, telles que la robustesse. Le cycle en W étant itératif, d'autres améliorations sont nécessaires.
Pour continuer à explorer ce sujet
Vérification du processus d'apprentissage
Il est important de s'assurer que les modèles d'IA répondent aux exigences spécifiées, en particulier dans les applications critiques pour la sécurité. Les étapes suivantes du processus de développement en W consistent à implémenter des techniques de vérification pour confirmer que les performances du modèle correspondent aux attentes.
Test et compréhension des performances du modèle
Le modèle a été entraîné par un apprentissage adversarial utilisant la méthode FGSM (Fast Gradient Sign Method) pour améliorer sa robustesse face à des exemples contradictoires. Il a atteint une précision de plus de 90 %, surpassant ainsi les exigences prédéfinies et les performances de référence. Afin de mieux comprendre les performances du modèle, une matrice de confusion a été utilisée pour analyser les patterns d'erreur, tandis que des techniques d'explicabilité comme Grad-CAM (Figure 6) ont fourni des indications visuelles qui améliorent l'interprétabilité et la confiance accordée à ses décisions.
Exemples contradictoires
Les exemples contradictoires sont de petites modifications imperceptibles des données d'entrée susceptibles d'entraîner des erreurs de classification par les réseaux de neurones, qui peuvent susciter une certaine inquiétude quant à la robustesse des tâches critiques, comme l'imagerie médicale (Figure 7).
Norme L-infini
La norme L-infini est utilisée pour comprendre et quantifier les perturbations contradictoires (Figure 8). Elle définit une plage dans laquelle les valeurs des pixels peuvent être modifiées. Cela aboutit à un nombre considérable de combinaisons possibles à tester, ce qui rend difficile l'évaluation de tous les scénarios.
Vérification formelle de la robustesse
Les méthodes de vérification formelle offrent une approche mathématique qui permet d'évaluer et de garantir de façon systématique la robustesse des réseaux de neurones vis-à-vis d'un large éventail d'exemples contradictoires potentiels. La bibliothèque Deep Learning Toolbox™ Verification Library propose des méthodes de vérification formelle, telles que l'interprétation abstraite. Pour une image donnée du jeu de données de test, vous pouvez choisir une perturbation qui définit une large collection d'images perturbées issues de l’image initiale (Figure 9).
Il y a trois résultats possibles pour chaque image :
- Vérifié : le label de sortie reste cohérent.
- Non respecté : le label de sortie change.
- Non prouvé : il est nécessaire de poursuivre les efforts de vérification ou d'améliorer le modèle.
Détection des données hors distribution
Un système d'IA digne de confiance doit produire des prédictions précises dans un contexte connu, mais il doit aussi être capable d'identifier les exemples inconnus du modèle et de les rejeter ou d'en confier le traitement à un expert humain par sécurité. La bibliothèque Deep Learning Toolbox Verification Library vous permet de créer un discriminateur de données hors distribution (OOD) afin d'attribuer un niveau de confiance aux prédictions du réseau en calculant un score de confiance de la distribution pour chaque observation (Figure 10). Le discriminateur propose également un seuil pour séparer les données appartenant à la distribution des données hors distribution.
Pour continuer à explorer ce sujet
Une fois le processus d'apprentissage vérifié, l'attention doit se tourner vers l'adaptation des modèles d'IA aux applications du monde réel. Ces dernières étapes du processus de développement en W consistent à préparer le modèle en vue du déploiement et à s'assurer qu'il répond aux exigences opérationnelles.
Implémentation du modèle et génération du code
Dans le workflow de développement en W, le passage de la vérification du processus d'apprentissage à l'implémentation du modèle est le moment où un modèle d'IA passe de l’ajustement à l'application concrète. La génération de code avec MATLAB et Simulink® automatise la conversion des modèles entraînés en code prêt à être déployé (par exemple C/C++ ou CUDA®, voir la Figure 11), ce qui réduit ainsi les efforts de codage manuel et minimise les erreurs.
Vous pouvez utiliser la fonction analyzeNetworkForCodegen de MATLAB pour vérifier si votre modèle de Deep Learning est prêt pour la génération de code. Cela garantit la compatibilité avec les bibliothèques cibles et, pour les applications critiques en matière de sécurité, cela vous permet de générer du code sans dépendances tierces. La génération automatique de code simplifie la certification, améliore la portabilité et permet un déploiement fiable sur diverses plateformes.
analyzeNetworkForCodegen(net) Supported _________ none "Yes" arm-compute "Yes" mkldnn "Yes" cudnn "Yes" tensorrt "Yes"
Lorsque le déploiement nécessite une optimisation de la mémoire, des calculs en virgule fixe ou une efficacité du calcul, la bibliothèque Deep Learning Toolbox Model Quantization Library est très efficace. Des techniques telles que la quantification et l'élagage peuvent considérablement réduire la taille du modèle et la charge de calcul. Ainsi, le fait de convertir le modèle d'un format virgule flottante à int8 avec l'application Deep Network Quantizer permet de le compresser d'un facteur 4 en ne perdant que 0,7 % de précision (Figure 12).
Avec MATLAB Coder™ et GPU Coder™, vous pouvez générer du code C++ et CUDA afin de déployer des modèles d'IA sur des systèmes en temps réel où la vitesse et la faible latence sont essentielles. Cela implique de configurer le langage cible et les paramètres de Deep Learning tels que l'utilisation de cuDNN pour l'accélération GPU.
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
Vérification et intégration du modèle d'inférence
La phase de vérification et d'intégration du modèle d'inférence permet de s'assurer qu'un modèle d'IA, tel que celui utilisé pour la détection des cas de pneumonie, fonctionne de manière fiable sur des données inédites et s'intègre bien dans un système de soins de santé plus vaste.
Après la conversion du modèle en C++ et CUDA, cette phase vérifie sa précision et l'intègre dans un système complet, avec des composants destinés à la surveillance d'exécution, à l'acquisition de données et à la visualisation. En simulant le système dans Simulink, vous pouvez vérifier que le modèle fonctionne efficacement en temps réel et maintient ses performances dans le système global (Figure 13).
L'outil de surveillance de l'exécution peut aider à distinguer les entrées familières de celles qui ne le sont pas (Figure 14). Il signale en vert les prédictions fiables où les données correspondent à la distribution d'apprentissage, et en rouge les anomalies potentielles pour les cas hors distribution. Cette capacité renforce la sécurité et la fiabilité du système d'IA en garantissant non seulement qu'il effectue des prédictions précises, mais aussi qu'il est capable d'identifier et de traiter de manière appropriée les données inconnues.
À ce stade, il est essentiel d'implémenter une stratégie de tests exhaustive. Avec MATLAB Test™ ou Simulink Test™, vous pouvez créer des tests automatisés pour valider de manière approfondie la précision, les performances et l'intégration du modèle d'IA dans le système global.
Vérification indépendante des données et de l'apprentissage
La phase de vérification indépendante des données et de l'apprentissage garantit que les jeux de données d'apprentissage, de validation et de test sont correctement gérés, complets et représentatifs de l'espace d’entrée de l'application. Cela implique un examen indépendant après vérification du modèle d'inférence sur la plateforme cible. Cette phase confirme également que la vérification de l'apprentissage, y compris l'analyse de la couverture, a été réalisée de manière satisfaisante.
Vérification des exigences
La phase de vérification des exigences conclut le processus de développement en W en s'assurant que les exigences sont toutes intégralement implémentées et testées. Requirements Toolbox™ permet d'associer les fonctions et les tests aux exigences correspondantes, ce qui ferme ainsi la boucle de développement. Exécuter ces tests dans Requirements Editor permet de vérifier que toutes les exigences ont bien été satisfaites (Figure 15).
Pour continuer à explorer ce sujet
La phase de vérification des exigences conclut le processus de développement en W. Dans cet exemple de dispositif médical, les étapes approfondies et méticuleuses de ce processus ont permis de s'assurer que le modèle d'IA de détection des cas de pneumonie est précis, robuste et prêt à être déployé. En liant les exigences à des fonctions et des tests spécifiques, vous aurez établi une traçabilité claire et vérifié chaque exigence de façon systématique, ce qui vous permettra de confirmer que le modèle répond aux normes rigoureuses des applications de santé. Vous avez désormais un outil fiable et prêt à être déployé pour améliorer les soins prodigués aux patients.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)