Ouvrir le menu Fermer le menu

Les réseaux neuronaux peuvent-ils devenir sûrs ?

trait de séparation
Temps de lecture : 4 minutes - Ecrit par Ken Wenger, CoreAvi
CoreAVI-logo

Compte tenu de l'importance émergente des réseaux de neurones dans les environnements critiques pour la sécurité, une question naturelle devrait être : « Les réseaux de neurones sont-ils sûrs ? »

Avant de procéder à la réflexion sur cette question, il est important de mentionner que certaines personnes soutiennent que la question n'est en fait pas pertinente ; les réseaux de neurones sont censés être trop complexes et trop médiatisés, et bien avant que nous ayons à nous occuper de les certifier, un nouvel algorithme émergera qui rendra les réseaux de neurones obsolètes. Je tiens à souligner que cette ligne de pensée est ridiculement myope et imparfaite. Premièrement, les réseaux de neurones font déjà partie du monde critique pour la sécurité. En effet, Tesla en fait un usage intensif dans sa flotte actuelle de voitures équipées du « pilote automatique », et les laboratoires hospitaliers s'appuient de plus en plus sur des algorithmes d'apprentissage en profondeur pour les aider à diagnostiquer .les patients. Deuxièmement, l'émergence potentielle d'un meilleur algorithme ne peut pas rendre les réseaux de neurones obsolètes, tout comme l'invention des voitures n'a pas fait disparaître les vélos. Les réseaux de neurones se sont révélés être des outils utiles et performants et, que nous les aimions ou non, ils sont là pour rester. Dans ce cas, nous ferions mieux de passer du temps à nous assurer que nous comprenons comment ils fonctionnent et s'ils peuvent être utilisés en toute sécurité.

Revenons donc à la question de la sécurité, les réseaux de neurones peuvent-ils être sécurisés ? Heureusement, de nombreux chercheurs tentent de répondre à cette question. Malheureusement, bon nombre de ces chercheurs, et presque tout le monde dans l'industrie, passent à côté de la moitié du tableau. Si cela ressemble à une déclaration provocatrice faite pour l'effet, ce n'est pas le cas ; mon travail serait beaucoup plus facile si c'était le cas.

Lors de l'évaluation d'un système pour un environnement critique pour la sécurité, nous devons tenir compte de deux aspects :

Les réseaux neuronaux peuvent-ils devenir sûrs ? - Expression

Dans le cas d'un réseau de neurones, l'expression est sa sortie. Lorsqu'il est présenté avec une image d'un chat, le réseau doit classer l'image comme un chat. Mais aucun système n'est parfait et parfois les réseaux de neurones ont des ratés. Au lieu d'un chat, le réseau peut classer l'image comme une pastèque. Même les réseaux de neurones formés à un degré élevé de précision (97 %>) peuvent faire des erreurs stupides comme celles-ci. Et bien que classer une photo d'un chat comme une pastèque soit simplement une gaffe comique mineure, confondre un lampadaire avec une personne pourrait avoir une conséquence bien pire.
Neural-Network-Cat-CoreAvi-ISIT
Comprendre pourquoi une erreur se produit est problématique avec les réseaux de neurones. Les algorithmes traditionnels basés sur des règles permettent de tracer le chemin d'une entrée à une sortie et de comprendre quelles décisions ont provoqué un résultat donné. Les réseaux de neurones sont différents. Ils apprennent les règles progressivement sur la base de milliers d'exemples de formation ; il n'est pas possible de revenir de la réponse à l'entrée pour voir ce qui a causé l'erreur du réseau. Un résultat spécifique n'est pas déterminé par une seule entrée ou règle ; il est piloté par toutes les entrées précédentes. C'est le problème de l'expression, et c'est le domaine qui retient l'attention de tous aujourd'hui. Il est important que nous comprenions comment un réseau neuronal échoue pour pouvoir quantifier ses limites et comprendre quelles conditions pourraient le faire échouer.

La bonne nouvelle est que de nombreux chercheurs tentent de comprendre comment un réseau de neurones arrive à une prédiction donnée. Aujourd'hui, un grand domaine de recherche utilise des simulations pour au moins exposer le paysage des entrées qui peuvent entraîner l'échec du système. Il y a ceux qui proposent que la simulation est tout ce qui est nécessaire pour certifier qu'un système est sûr. Après tout, si nous pouvons exécuter des milliards de simulations et montrer qu'un système est de plusieurs ordres de grandeur plus fiable que son homologue humain, alors pourquoi devons-nous faire autre chose ?

Les réseaux neuronaux peuvent-ils devenir sûrs ? - Exécution

Cela nous amène au deuxième aspect d'un réseau de neurones dont la sécurité doit être prouvée : l'exécution. Il est important de souligner que montrer que l'expression d'un réseau neuronal est fiable ne permet pas de déterminer si l'exécution du réseau neuronal est déterministe ou sûre. Les simulations peuvent s'avérer utiles pour accroître la confiance dans la fiabilité de l'expression du réseau de neurones, mais elles en disent très peu sur la fiabilité de l'exécution dans des conditions réelles.

Les directives critiques en matière de sécurité exigent généralement que le logiciel s'exécute de manière déterministe dans l'espace et dans le temps. Les systèmes critiques pour la sécurité sont gérés par des systèmes d'exploitation en temps réel où les processus d'exécution sont soigneusement chorégraphiés à travers des tranches de temps d'exécution, et donc un intégrateur système doit être capable de calculer le temps d'exécution le plus défavorable d'un morceau de code pour s'assurer qu'il peut s'exécuter dans un temps donné. De même, les ressources système telles que la mémoire sont soigneusement découpées et réparties entre les différents processus en cours d'exécution. Les logiciels critiques pour la sécurité doivent pouvoir allouer les ressources système de manière prévisible afin que la taille d'allocation la plus défavorable soit connue et que le système ne manque pas soudainement de mémoire lors de l'exécution.

Le problème d'exécution ne peut être résolu qu'en construisant des systèmes d'intelligence artificielle (IA) au-dessus de piles logicielles certifiables. L'exécution de simulations ou toute autre tentative visant à accroître la confiance dans la prédiction d'un réseau aide à résoudre la moitié du problème ; cela aide à démontrer que la sortie du réseau est fiable et digne de confiance. Mais l'exécution de simulations système en générant des distributions d'entrées ne révèle aucune information sur la façon dont plusieurs processus de niveaux de priorité différents peuvent partager des ressources communes dans un environnement critique pour la sécurité. Cela ne donne aucune idée de ce qui se passe lorsque le processeur est submergé par les demandes d'un thread d'exécution différent. La réponse naïve à cela est de simuler jusqu'à la nausée et d'ajouter ces scénarios à notre liste de cas d'utilisation à simuler. C'est naïf parce qu'en surface, cela semble avoir du sens. Nous pouvons ajouter des scénarios à nos simulations et augmenter notre confiance dans le fait que le système est sûr, mais pire que naïf, il est défectueux. Il est défectueux car il suppose que les scénarios d'exécution pourraient réellement être simulés. Comme déjà indiqué, les systèmes critiques pour la sécurité consistent en plusieurs processus en concurrence pour des ressources partagées en temps réel, où il est crucial d'avoir une présentation détaillée de l'utilisation des ressources et des exigences d'exécution de chaque processus. Ces interactions réelles sont très difficiles à simuler correctement, mais surtout, heureusement, nous n'avons pas à le faire. En ce qui concerne l'exécution, nous savons comment certifier les systèmes et il existe des processus établis en place que les entités gouvernementales ont adoptés. Il est défectueux car il suppose que les scénarios d'exécution pourraient réellement être simulés. Comme déjà indiqué, les systèmes critiques pour la sécurité consistent en plusieurs processus en concurrence pour des ressources partagées en temps réel, où il est crucial d'avoir une présentation détaillée de l'utilisation des ressources et des exigences d'exécution de chaque processus. Ces interactions réelles sont très difficiles à simuler correctement, mais surtout, heureusement, nous n'avons pas à le faire. En ce qui concerne l'exécution, nous savons comment certifier les systèmes et il existe des processus établis en place que les entités gouvernementales ont adoptés. Il est défectueux car il suppose que les scénarios d'exécution pourraient réellement être simulés. Comme déjà indiqué, les systèmes critiques pour la sécurité consistent en plusieurs processus en concurrence pour des ressources partagées en temps réel, où il est crucial d'avoir une présentation détaillée de l'utilisation des ressources et des exigences d'exécution de chaque processus. Ces interactions réelles sont très difficiles à simuler correctement, mais surtout, heureusement, nous n'avons pas à le faire. En ce qui concerne l'exécution, nous savons comment certifier les systèmes et il existe des processus établis en place que les entités gouvernementales ont adoptés. Ces interactions réelles sont très difficiles à simuler correctement, mais surtout, heureusement, nous n'avons pas à le faire. En ce qui concerne l'exécution, nous savons comment certifier les systèmes et il existe des processus établis en place que les entités gouvernementales ont adoptés. Ces interactions réelles sont très difficiles à simuler correctement, mais surtout, heureusement, nous n'avons pas à le faire. En ce qui concerne l'exécution, nous savons comment certifier les systèmes et il existe des processus établis en place que les entités gouvernementales ont adoptés.

Vers la certification de la sécurité des système d’IA

Il est important de noter que prouver l'aspect sécurité de l'expression d'un réseau de neurones est assez différent de prouver la sécurité de son exécution. Pour prouver qu'un réseau de neurones s'exécute de manière déterministe, nous n'avons pas besoin de savoir comment un réseau de neurones échoue ; nous avons juste besoin de savoir s'il réussit ou échoue. Il s'exécute toujours de manière prévisible, utilise la même quantité de ressources et s'exécute dans un délai donné. Ceci est important pour garantir l'intégrité non seulement du processus d'exécution de l'IA ; il est nécessaire de garantir l'intégrité de tous les autres processus s'exécutant sur et partageant le système matériel. Pour certifier la mise en œuvre d'un réseau de neurones pour des systèmes critiques pour la sécurité, l'expression et l'exécution du réseau de neurones doivent être prouvées sûres.

Maintenant, vous pouvez dire, eh bien, quel est le problème, pourquoi est-ce que je m'énerve autant ? Si nous convenons que nous devons résoudre les deux problèmes, alors que se passe-t-il s'il y a une vision tunnel momentanée ? Pourquoi ne pouvons-nous pas nous concentrer sur le problème d'expression, et une fois que nous l'avons résolu, nous pouvons nous préoccuper de l'exécution ?

Malheureusement, il y a une conséquence insidieuse à attendre trop longtemps avant de se soucier de l'exécution. Alors que nous attendons et nous concentrons sur la compréhension des prédictions des réseaux de neurones, des millions de lignes de code sont écrites en exploitant des plates-formes et des bibliothèques qui sont désespérément incertifiables. Que fera l'industrie lorsque le brouillard sera levé et que nous émergerons de la brume du problème d'expression ? Comment allons-nous prouver que l'exécution de ces bibliothèques et plates-formes est sûre ?

Allons-nous vraiment certifier python ? Allons-nous essayer de nous convaincre que nous avons suffisamment simulé pour ne pas avoir à nous soucier du château de cartes branlant sur lequel nous nous tenons ?

Alors que l'industrie s'efforce de résoudre la moitié du problème et de s'assurer que l'expression des réseaux de neurones peut être prouvée sûre, commençons à construire nos systèmes de déploiement sur de meilleures bases, et résolvons ainsi l'autre moitié du problème en fournissant une plate-forme d'IA construite à partir du à l'aide d'interfaces de programmation d'application (API) standard critiques pour la sécurité. CoreAVI se concentre sur le développement de ces plates-formes Safe AI pour permettre l'avenir de la technologie des réseaux neuronaux.
 
1