Le Réseau de Neurone (RN) est l’une des principales méthodes d’apprentissage automatique supervisé. La vérification de son comportement, c’est-à-dire l’évolution de ses sorties en fonction de la variation de ses entrées, représente un réel défi. Néanmoins, cette vérification est nécessaire dans un environnement incertain où les entrées du RN sont bruitées. Cet article introduit l’importance de la vérification du RN, donne quelques exemples d’applications et décrit la formulation de leur vérification.

Dans un article précèdent, Loic Cantat, responsable du domaine «  Science des données, Intelligence Artificielle et Interactions » et Georges Hebrail, responsable de l’axe de recherche « Science des Données et Interaction » ont présenté un état de lieux des principales approches de Machine Learning (algorithmes, outils et plateformes). Le Réseau de Neurones (RN) est l’une des approches de Machine Learning (ML) les plus populaires. Il est appliqué à plusieurs domaines, à savoir la robotique, la télécommunication, les véhicules autonomes, etc.

Dans le contexte des véhicules autonomes, les RNs peuvent être utilisés pour différentes problématiques :

  • la perception du véhicule (détection et reconnaissance des obstacles tels que les piétons, les panneaux de signalisation, le marquage au sol, etc.),
  • la surveillance du conducteur (état de ses yeux, angle de sa tête, sa fréquence cardiaque et respiratoire, etc.),
  • et la prise de décision en fonction de l’environnement du véhicule (changement de voie, calcul de la vitesse et angle de braquage, etc.).

Quel que soit le domaine d’application, la décision des réseaux de neurones (détecter la présence ou l’absence d’un piéton, changer ou garder la voie, etc.) peut impacter la sécurité du conducteur, des passagers et des autres utilisateurs de la route. Par exemple, détecter l’absence du piéton alors qu’il est réellement présent peut provoquer un grave accident. Ces mauvaises décisions sont généralement causées par la perturbation de l’environnement du système de décision, d’où le besoin d’une part de métriques permettant l’évaluation de la sécurité des RNs face à l’incertitude de leur environnement extérieur, et d’autre part de stratégies adversaires permettant la sécurisation des RNs contre ces incertitudes.

Au cours de cet article, nous rappellerons le principe de fonctionnement d’un réseau de neurones. Nous définirons ensuite la sécurité d’un RN, le défi qu’elle engendre et les applications les nécessitant. Finalement, nous présenterons quelques approches de vérification d’un RN ainsi que les critères permettront de les comparer.

Qu’est-ce qu’un réseau de neurones ?

Un RN est composé de trois types de couches : une couche d’entrée, une couche de sortie et un ensemble de couches cachées. Le fonctionnement générique d’un RN est le suivant :

  • La couche d’entrée prend une donnée sous n’importe quel format (image, audio, description d’un trafic réseau, etc.).
  • La couche de sortie délivre une information qui peut avoir plusieurs formats (une valeur discrète, valeur continue, un vecteur de probabilités, etc.).
  • Pour passer de la couche d’entrée à la couche de sortie, une chaine de traitement est faite à travers les couches cachées. Ces dernières peuvent être des couches de convolution, de réduction de dimensionnalité, des fonctions d’activation etc.

Au sein de cet article, nous définirons l’espace des entrées par l’ensemble de toutes les entrées possibles du RN ; et l’espace des sorties par l’ensemble des sorties possibles du RN.

Vocabulaire d’un réseau de neurones

Que signifie la sécurité des réseaux de neurones et comment la vérifier ?

L’étude de la sécurité d’un réseau de neurone consiste à vérifier la capacité du RN à prendre la même décision pour toutes les données similaires, malgré les perturbations qu’elles peuvent engendrer. On appelle « une attaque » tout bruit pouvant perturber le RN.

Le vérificateur (le système vérifiant la sécurité du RN) prend en entrée, une donnée et une attaque, et délivre à la sortie l’information sous la forme d’une « donnée sécurisée contre l’attaque ou donnée non-sécurisée contre l’attaque ».

L’idée principale de la vérification consiste à calculer, à partir de la donnée en entrée, toutes les données possibles suite à l’attaque en question (données bruitées), et vérifier que les propriétés de la donnée originale restent valides pour les données bruitées. Les propriétés sont fixées préalablement, elles peuvent être l’appartenance à une plage d’intervalle ou encore l’appartenance à une classe d’objet.

Principe de la vérification du réseau de neurones

La figure suivante schématise la vérification de la sécurité d’un réseau de neurones pour une entrée donnée et pour une attaque connue. L’espace des entrées, en bleu, est l’ensemble de toutes les entrées résultantes de l’attaque en question. L’espace atteignable des sorties du RN, en rouge, désigne l’ensemble de toutes les sorties possibles. En calculant l’ensemble atteignable, deux cas peuvent exister :

  • l’ensemble atteignable est inclus dans l’ensemble désiré en vert, c’est-à-dire les propriétés des entrées sont conservées, et donc le RN est dit sécurisé.
  • l’ensemble atteignable n’est pas inclus, totalement ou partiellement, dans l’ensemble désiré, en vert, alors les propriétés ne couvrent pas l’ensemble des entrées, et donc le RN est dit non-sécurisé.
Sécurité d’un réseau de neurones

Pourquoi la sécurité des réseaux de neurones est-elle un défi ?

La variation d’éclairage d’une image de piéton peut perturber le réseau de neurones qui classera par la suite le piéton comme un autre objet. Ces facteurs perturbants sont nombreux et diffèrent d’un contexte à un autre (image, audio, vidéo, etc.). Ces facteurs peuvent être regroupés en trois catégories :

  • Les facteurs environnementaux liés à l’environnement extérieur du système : il s’agit des conditions météorologiques, de l’infrastructure routière, du comportement du trafic routier, etc.
  • Les facteurs matériaux dus à la défaillance du système liée à sa durée de vie, sa configuration, son interférence avec d’autres capteurs, etc.
  • Les facteurs algorithmiques (logiciels) liés à l’erreur de précision des variables, etc.

Le visuel ci-dessous illustre un exemple de deux attaques de RNs : dans le contexte de traitement d’images, le port des lunettes peut être une attaque qui perturbe le système biométrique de reconnaissance des visages et dans le contexte de traitement audio, un petit bruit inséré dans le signal audio a complètement modifié la transcription du signal.

Exemples des attaques perturbant le réseau de neurones. Gauche : exemple en traitement d’images. Droite : exemple en audio.
Exemples des attaques perturbant le réseau de neurones. Gauche : exemple en traitement d’images. Droite : exemple en audio.

Tous ces facteurs perturbants peuvent impacter la performance du RN. Le défi actuel n’est pas uniquement de former un système de prise de décision performant (par exemple, en matière de taux de reconnaissance, de taux de bonnes détections, etc.) mais aussi le fait que ce dernier soit sécurisé (i.e. robuste) à la perturbation de ses entrées. Il s’agit du problème de vérification (ou certification) du réseau de neurones.

Quelles sont les applications de la vérification de RN ?

Les algorithmes de Machine Learning sont de plus en plus utilisés pour résoudre des problèmes très complexes et très sensibles à la tolérance des fautes. Prenons l’exemple de deux applications d’utilisation de réseaux de neurones : la première consiste à estimer les ressources nécessaires pour une application dans le cloud et la deuxième consiste à estimer l’angle de braquage d’un véhicule autonome. Bien que les deux applications aient la même importance, commettre une erreur de prise de décision dans la deuxième application a plus de risques que dans la première. En conséquence, la vérification d’un RN est fortement recommandée dans les applications à risques. Avoir des outils permettant de fournir des garanties formelles sur le comportement des systèmes reste un défi.

D’une manière générale les applications à risque nécessitent une vérification/certification du RN avant son déploiement. Parmi ces applications, nous pouvons citer la cybersécurité (détection d’anomalies, détection d’intrusion, protection du mot de passe, etc.), la médecine (une mauvaise décision pourrait mettre en danger la vie des patients) et les systèmes autonomes (véhicules, robots, avions, etc.).

Comment le problème de vérification de réseau de neurones a-t’il été formulé dans la littérature ?

Les approches de l’état de l’art se différencient par la façon avec laquelle le problème de vérification de réseau de neurones a été formulé. On peut identifier deux stratégies de vérification du RN :

  • La première stratégie suppose l’existence d’un contre-exemple ; un exemple où le RN n’est pas sécurisé et tente de le trouver. L’existence du contre-exemple prouve que le RN n’est pas sécurisé.
  • La deuxième stratégie consiste à calculer l’ensemble atteignable de toutes les entrées et vérifie s’il est inclus dans l’ensemble désiré. Son inclusion prouve que le RN est sécurisé.

Quels sont les critères pertinents qui peuvent nous aider à choisir l’approche de vérification ?

Pour un utilisateur intéressé à vérifier son RN, la question qui se pose est la suivante : quels sont les critères permettant de choisir l’approche la plus adéquate ?

Parmi les critères qui distinguent une approche de vérification d’un réseau de neurones d’une autre, on cite :

  • Le temps moyen de réponse : il s’agit du temps moyen nécessaire pour vérifier une entrée donnée.
  • La scalabilité : certaines approches perdent leur efficacité lorsqu’elles sont appliquées sur les réseaux de neurones de large profondeur. La scalabilité est définie par la capacité de l’approche à rester efficace même pour des RNs de large profondeur.

 

Dans cet article, nous avons évoqué le problème de vérification de réseau de neurones, un problème très important pour les systèmes à faible tolérance aux fautes pour garantir sa sécurité. D’une manière générale, ce problème est celui de la vérification de l’évolution des sorties d’un réseau de neurones en fonction de la perturbation de ses entrées. Cette perturbation est due globalement au trouble de l’environnement extérieur du réseau de neurones. Pour résoudre le problème de vérification, plusieurs approches ont été proposées avec des formulations différentes. Pour un contexte donné, l’approche la plus adéquate peut-être sélectionnée en fonction de son temps moyen de réponse et de sa scalabilité. Le comportement des approches en fonction de ces critères varie d’un contexte à l’autre et d’un type de données à un autre.