FR3110268A1 - Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones - Google Patents

Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones Download PDF

Info

Publication number
FR3110268A1
FR3110268A1 FR2004945A FR2004945A FR3110268A1 FR 3110268 A1 FR3110268 A1 FR 3110268A1 FR 2004945 A FR2004945 A FR 2004945A FR 2004945 A FR2004945 A FR 2004945A FR 3110268 A1 FR3110268 A1 FR 3110268A1
Authority
FR
France
Prior art keywords
neural network
input
approximating
target layer
identity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2004945A
Other languages
English (en)
Other versions
FR3110268B1 (fr
Inventor
Hervé Chabanne
Linda GUIGA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Idemia Identity and Security France SAS
Original Assignee
Idemia Identity and Security France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Idemia Identity and Security France SAS filed Critical Idemia Identity and Security France SAS
Priority to FR2004945A priority Critical patent/FR3110268B1/fr
Priority to US17/999,155 priority patent/US20230196073A1/en
Priority to PCT/FR2021/050842 priority patent/WO2021234252A1/fr
Priority to EP21732457.3A priority patent/EP4154189A1/fr
Priority to JP2022570235A priority patent/JP2023526809A/ja
Publication of FR3110268A1 publication Critical patent/FR3110268A1/fr
Application granted granted Critical
Publication of FR3110268B1 publication Critical patent/FR3110268B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)

Abstract

La présente invention concerne un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données (21) d’un terminal (2) d’étapes de : (a) construction d’un deuxième réseau de neurones correspondant au premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ; (b) utilisation du deuxième réseau de neurones sur ladite donnée d’entrée. La présente invention concerne également un procédé d’apprentissage de paramètres du deuxième réseau de neurones Figure pour l’abrégé : Fig. 1

Description

Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones
DOMAINE TECHNIQUE GENERAL
La présente invention concerne le domaine de l’intelligence artificielle, et en particulier un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée.
ETAT DE L’ART
Les réseaux de neurones (ou NN, pour neural network) sont massivement utilisés pour la classification de données.
Après une phase d’apprentissage automatique (généralement supervisé, c’est-à-dire sur une base de données de référence déjà classifiées), un réseau de neurones « apprend » et devient tout seul capable d’appliquer la même classification à des données inconnues. Plus précisément, la valeur de poids et paramètres du NN est progressivement modifiée jusqu’à ce que ce dernier soit capable de mettre en œuvre la tâche visée.
Des progrès significatifs ont été réalisés les dernières années, aussi bien sur les architectures des réseaux de neurones, que sur les techniques d’apprentissage (en particulier en apprentissage profond) ou encore sur les bases d’apprentissage (taille et qualité de ces dernières), et des tâches auparavant considérées comme impossibles sont aujourd’hui accomplies par des réseaux de neurones avec une excellente fiabilité.
Tout cela fait que les réseaux de neurones performants et leurs bases d’apprentissage ont aujourd’hui une forte valeur commerciale et sont traités comme des « secrets d’affaire » à protéger. De surcroit, beaucoup de bases de données contiennent des données potentiellement personnelles (par exemple des empreintes digitales) qui doivent rester confidentielles.
Malheureusement, ont été récemment développées des techniques de « reverse engineering » permettant à un attaquant d’extraire les paramètres et le modèle de n’importe quel réseau de neurones dès lors qu’on est capable de lui soumettre suffisamment de requêtes bien choisies, comme décrit dans le documentCryptanalytic Extraction of Neural Network Models, Nicholas Carlini, Matthew Jagielski, Ilya Mironov https://arxiv.org/pdf/2003.04884v1.pdf. Ainsi, même dans un fonctionnement « boite noire » dans lequel on n'aurait accès qu’aux entrées et aux sorties (par exemple via un client web) on pourrait retrouver l’intérieur du réseau.
L’idée est de constater que dans un réseau de neurones, on trouve une alternance de couches linéaire et couches non-linéaires mettant en œuvre une fonction d’activation telle que ReLU. Cette non-linéarité entraîne des « points critiques » de saut du gradient, et on peut ainsi géométriquement définir pour chaque neurone un hyperplan de l’espace d’entrée du réseau tel que la sortie est à un point critique. Les hyperplans de la deuxième couche sont « pliés » par les hyperplans de la première couche et, ainsi de suite.
L’attaquant peut par exploration retrouver les intersections des hyperplans et progressivement tout le réseau de neurone.
Un défi supplémentaire rencontré par les réseaux de neurones est l’existence des « perturbations antagonistes », c’est-à-dire des changements imperceptibles qui lorsque appliqués sur une entrée du réseau de neurone changent significativement la sortie. On voit par exemple dans le documentA Simple Explanation for the Existence of Adversarial Examples with Small Hamming Distance par Adi Shamir, Itay Safran, Eyal Ronen, et Orr Dunkelman, https://arxiv.org/pdf/1901.10861v1.pdfcomment une perturbation antagoniste appliquée sur une image de chat peut conduire à celle-ci classifiée à tort comme une image de guacamole.
Plus précisément, dès lors qu’un attaquant a réussi à identifier le découpage en hyperplans évoqué avant, il peut déterminer un vecteur permettant, à partir d’un point de l’espace d’entrée, de franchir un hyperplan et donc de modifier la sortie.
On comprend donc qu’il est essentiel de parvenir à sécuriser les réseaux de neurones.
Une première piste est d’augmenter la taille, le nombre de couches et le nombre de paramètres du réseau de sorte à compliquer la tâche de l’attaquant. Si cela fonctionne, d’une part cela ne fait que ralentir l’attaquant et surtout cela dégrade les performances car le réseau de neurone est alors inutilement lourd et difficile à apprendre.
Une deuxième piste est de limiter le nombre d’entrées pouvant être soumises au réseau de neurones, ou du moins de détecter les séquences suspectes d’entrées. Cela n’est toutefois pas toujours applicables, puisque l’attaquant peut légalement avoir accès au réseau de neurones en ayant par exemple payé un accès sans restriction.
Ainsi, on pourrait encore améliorer la situation.
PRESENTATION DE L’INVENTION
Selon un premier aspect, la présente invention concerne un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données d’un terminal d’étapes de :
(a) construction d’un deuxième réseau de neurones correspondant au premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ;
(b) utilisation du deuxième réseau de neurones sur ladite donnée d’entrée.
Selon d’autres caractéristiques avantageuses et non limitatives :
Ledit réseau de neurones à convolution est inséré en entrée d’une couche cible du premier réseau de neurones.
Ledit réseau de neurones à convolution présente une taille de sortie inférieure à une taille d’entrée de ladite couche cible de sorte à approximer seulement certains canaux d’entrée de cette couche cible.
L’étape (a) comprend la sélection de ladite couche cible du premier réseau de neurones parmi les couches linéaires dudit premier réseau de neurones et/ou la sélection des canaux d’entrée de ladite couche cible à approximer parmi tous les canaux d’entrée de la couche cible.
L’au moins un réseau de neurones à convolution approximant la fonction identité présente une taille de sortie égale au produit de deux entiers.
Le procédé comprend une étape (a0) préalable d’obtention des paramètres du premier réseau de neurones et de l’au moins un réseau de neurones à convolution approximant la fonction identité.
L’étape (a0) comprend l’obtention des paramètres d’un ensemble de réseau de neurones à convolution approximant la fonction identité.
L’étape (a) comprend la sélection dans ledit ensemble d’au moins un réseau de neurones à convolution approximant la fonction identité à insérer.
L’étape (a) comprend, pour chaque réseau de neurones à convolution approximant la fonction identité sélectionné, ladite sélection de ladite couche cible du premier réseau de neurones parmi les couches linéaires dudit premier réseau de neurones et/ou la sélection des canaux d’entrée de ladite couche cible à approximer parmi tous les canaux d’entrée de la couche cible.
L’étape (a) comprend en outre la sélection préalable d’un nombre de réseaux de neurones à convolution approximant la fonction identité dudit ensemble à sélectionner.
L’étape (a0) est une étape, mise en œuvre par des moyens de traitement de données d’un serveur, d’apprentissage des paramètres du premier réseau de neurones et de l’au moins un réseau de neurones à convolution approximant la fonction identité à partir d’au moins une base de données d’apprentissage.
Le premier réseau de neurones et le ou les réseaux de neurones à convolution approximant la fonction identité comprennent une alternance de couches linéaires et de couches non-linéaires à fonction d’activation.
Ladite fonction d’activation est la fonction ReLU.
Ladite couche cible est une couche linéaire du premier réseau de neurones.
l’au moins un réseau de neurones à convolution approximant la fonction identité comprend deux ou trois couches linéaires.
Les couches linéaires du réseau de neurones à convolution sont des couches de convolution à filtre par exemple de taille 5x5.
Selon un deuxième aspect est proposé un procédé d’apprentissage de paramètres d’un deuxième réseau de neurones, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données d’un serveur d’étapes de :
(a) construction du deuxième réseau de neurones correspondant à un premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ;
(a1) apprentissage des paramètres du deuxième réseau de neurones à partir d’une base de données d’apprentissage
Selon un troisième aspect est proposé un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, le procédé comprenant l’apprentissage de paramètres d’un deuxième réseau de neurones conformément au précédé selon le deuxième aspect ; et la mise en œuvre par des moyens de traitement de données d’un terminal d’une étape (b) d’utilisation du deuxième réseau de neurones sur ladite donnée d’entrée.
Selon un quatrième et un cinquième aspect, l’invention concerne un produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon le premier ou le troisième aspect d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, ou selon le deuxième aspect d’apprentissage de paramètres d’un deuxième réseau de neurones ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme d’ordinateur comprend des instructions de code pour l’exécution d’un procédé selon le premier ou le troisième aspect d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, ou selon le deuxième aspect d’apprentissage de paramètres d’un deuxième réseau de neurones .
PRESENTATION DES FIGURES
D’autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d’un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels :
  • [Fig. 1]la figure 1 est un schéma d’une architecture pour la mise en œuvre des procédés selon l’invention ;
  • [Fig. 2a]la figure 2a représente schématiquement les étapes d’un premier mode de réalisation d’un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée selon l’invention ;
  • [Fig. 2b]la figure 2b représente schématiquement les étapes d’un deuxième mode de réalisation d’un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée selon l’invention ;
  • [Fig. 3]la figure 3 représente schématiquement un exemple d’architecture d’un deuxième réseau de neurones rencontré dans la mise en œuvre des procédés selon l’invention.
DESCRIPTION DETAILLEE
Architecture
Selon deux aspects complémentaires de l’invention, sont proposés :
  • un procédé d’utilisation sécurisée d’un premier réseau de neurones (1eNN)
  • un procédé d’apprentissage de paramètres d’un deuxième réseau de neurones (2eNN).
Ces deux types de procédés sont mis en œuvre au sein d’une architecture telle que représentée par la , grâce à au moins un serveur 1 et un terminal 2. Le serveur 1 est l’équipement d’apprentissage (mettant en œuvre le deuxième procédé) et le terminal 2 est un équipement d’utilisation (mettant en œuvre le premier procédé). Ledit procédé d’utilisation est mis en œuvre sur une donnée d’entrée, et est par exemple une classification de la donnée d’entrée parmi plusieurs classes si c’est un NN de classification (mais cette tâche n’est pas nécessairement une classification même si c’est la plus classique).
On ne sera limité à aucun type de NN en particulier, même si typiquement il s’agit d’une alternance de couches linéaires et de couches non-linéaire à fonction d’activation ReLU (Rectified Linear Unit, i.e. Unité de Rectification Linéaire) qui est égale àσ(x) = max(0, x). On comprend donc que chaque hyperplan correspond à l’ensemble des points de l’espace d’entrée tels qu’une sortie d’une couche linéaire est égale à zéro. On notera « ReLU NN » un tel réseau de neurones.
Dans tous les cas, chaque équipement 1, 2 est typiquement un équipement informatique distant relié à un réseau étendu 10 tel que le réseau internet pour l’échange des données. Chacun comprend des moyens de traitement de données 11, 21 de type processeur, et des moyens de stockage de données 12, 22 telle qu’une mémoire informatique, par exemple un disque dur.
Le serveur 1 stocke une base de données d’apprentissage, i.e. un ensemble de données pour lesquelles on connait déjà la sortie associée, par exemple déjà classifiées (par opposition aux données dites d’entrée que l’on cherche justement à traiter). Il peut s’agir d’une base d’apprentissage à haute valeur commerciale qu’on cherche à garder secrète.
On comprendra qu’il reste possible que les équipements 1 et 2 puissent être le même équipement, voire la base d’apprentissage être une base publique.
A noter que le présent procédé n’est pas limité à un type de NN et donc pas à une nature particulière de données, les données d’entrée ou d’apprentissage peuvent être représentatives d’images, de sons, etc. Le 1eNN peut tout à fait être un CNN, même si l’on décrira plus loin un CNN spécialisé qu’on va utiliser dans le cadre du présent procédé.
Dans un mode de réalisation préféré il s’agit de données biométriques, les données d’entrée ou d’apprentissage étant typiquement représentatives d’images voire directement des images de traits biométriques (visages, empreintes digitales, iris, etc.), ou directement des données prétraitées issues des traits biométriques (par exemple la position de minuties dans le cas d’empreintes digitales).
Principe
La présente invention propose de complexifier la tâche des attaquants sans complexifier le NN grâce à des hyperplans artificiels. En d’autres termes on sécurise le NN en le rendant nettement plus robuste sans pour autant l’alourdir et dégrader ses performances.
Par commodité on nommera « premier réseau de neurones » le NN d’origine à protéger et « deuxième réseau de neurones » le NN modifié et ainsi sécurisé. A noter que, comme l’on verra plus tard, la sécurisation du 1eNN peut être faite a posteriori (une fois qu’il a été appris), ou dès l’origine (i.e. on apprend directement une version sécurisée du NN).
Plus en détails, la sécurisation du premier réseau en deuxième réseau consiste à intégrer dans son architecture au moins un réseau de neurones à convolution (CNN) approximant la fonction identité (on fera référence à ce dernier en tant que « CNN Identité » par commodité).
Ce CNN « parasite » ne modifie pas le fonctionnement du NN car ses sorties sont sensiblement égales à ses entrées. Par contre il brise la structure en hyperplans d’origine.
L’idée d’approximer la fonction identité est très originale pour un CNN, car c’est une tâche contre-nature qu’il a du mal à accomplir. Pour reformuler, on cherche toujours à ce qu’un CNN accomplisse des traitements sémantiquement complexes (comme par exemple de la segmentation d’image), et jamais une tâche aussi triviale que de reproduire sa propre entrée.
De surcroît, comme l’on verra plus loin, on peut insérer plusieurs CNN Identité dans le 1eNN, à divers endroits, impliquant certains canaux, le tout choisi le cas échéant de manière dynamique et aléatoire, ce qui ne laisse plus aucune chance à un attaquant (il faudrait un nombre inimaginable de requêtes envoyées au 2eNN pour arriver à retrouver le 1eNN d’origine sous les hyperplans artificiels).
Procédé
Selon un premier aspect, est proposé en référence à la un premier mode de réalisation du procédé d’utilisation sécurisée du 1e NN sur une donnée d’entrée, mis en œuvre par les moyens de traitement de données 21 du terminal 2.
Le procédé commence avantageusement par une étape « préparatoire » (a0) d’obtention des paramètres du 1eNN et d’au moins un CNN Identité, préférentiellement une pluralité de CNN Identité, notamment de diverses architectures, de diverses tailles d’entrée et sortie, appris sur des bases différentes, etc., de sorte à définir un ensemble si possible varié de CNN Identité, on verra cela plus en détail plus loin.
Cette étape (a0) peut être une étape d’apprentissage de chacun des réseaux sur une base d’apprentissage dédiée, en particulier du 1eNN, préférentiellement mise en œuvre par les moyens de traitement de données 11 du serveur 1 à cet effet, mais on comprendra que les réseaux (en particuliers les CNN Identité) pourraient être préexistants et pris en l’état. En tout état de cause, le ou les CNN Identité peuvent être appris en particulier sur n’importe quelle base d’images publiques, voire même sur des données aléatoires (pas besoin qu’elles soient annotées car on suppose que l’entrée est aussi la sortie attendue). On verra plus loin un mode de réalisation alternatif dans lequel il n’y a pas cette étape (a0).
Dans une étape principale (a), on construit ledit 2eNN correspondant au 1eNN dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité, en particulier un ou plusieurs CNN Identité sélectionné(s). En d’autres termes, l’étape (a) est une étape d’insertion du ou des CNN Identité dans le 1eNN. S’il y a plusieurs CNN Identité sélectionnés, ils peuvent être insérés chacun à la suite.
A ce titre, l’étape (a) comprend avantageusement la sélection d’un ou plusieurs CNN Identité dans ledit ensemble de CNN Identité, par exemple aléatoirement. D’autres « paramètres d’insertion » peuvent être sélectionnés, notamment une position dans le 1eNN (couche cible) et/ou des canaux d’une couche cible du 1eNN, voir plus loin. En tout état de cause il reste possible que l’ensemble de CNN Identité ne contienne qu’un seul CNN de sorte qu’il n’y a pas besoin de sélection, voire même que le CNN Identité soit appris à la volée.
Par insertion, on entend l’ajout des couches du CNN Identité en amont de la couche « cible » du 1eNN de sorte que l’entrée de cette couche soit au moins en partie la sortie du CNN Identité. En d’autres termes, le CNN Identité « intercepte » tout ou partie de l’entrée de la couche cible pour la remplacer par sa sortie.
On comprend que comme le CNN Identité approxime la fonction identité, ses sorties sont sensiblement identiques à ses entrées de sorte que les données que reçoit la couche cible sont sensiblement identiques à celles interceptées.
La couche cible est préférentiellement une couche linéaire (et pas une couche non-linéaire à fonction d’activation par exemple), de sorte le CNN Identité est inséré en entrée d’une couche linéaire du 1eNN.
Avantageusement, le CNN Identité présente une taille de sortie inférieure à une taille d’entrée de ladite couche linéaire de sorte à approximer seulement certains canaux d’entrée de cette couche linéaire (i.e. pas tous). Par taille d’entrée/sortie, on entend le nombre de canaux d’entrée/sortie.
C’est ce que l’on voit dans l’exemple de la , qui représente un 1e NN à trois couches linéaires (dont une couche cachée centrale), dans lequel un CNN Identité est disposé en entrée de la deuxième couche.
On voit que la première couche présente huit canaux d’entrée (taille 8), alors que le CNN identité présente seulement quatre canaux d’entrée/sortie (par définition un CNN approximant la fonction identité à les mêmes dimensions d’entrée et de sortie). Ainsi, sur les huit canaux d’entrée de la première couche linéaire, seuls quatre sont approximés, et les quatre autres sont tel quels. Le fait de n’affecter que certains des canaux (i.e. pas tous les neurones) a trois avantages : le CNN peut être plus petit et donc impliquer moins de calculs lors de l’exécution, le fait d’affecter seulement partiellement une couche génère des perturbations surprenante pour un attaquant, et on peut même disposer plusieurs CNN sous une couche et donc augmenter encore davantage les perturbations des hyperplans pour un attaquant.
L’étape (a) peut également comprendre comme expliqué la sélection de la couche cible et/ou des canaux d’entrée de la couche linéaire cible affectés par le CNN Identité (le cas échéant préalablement sélectionné). Par exemple, dans la figure 3 il s’agit des canaux 1, 2, 3 et 4, mais on aurait pu prendre n’importe quel ensemble de quatre canaux parmi les huit, par exemple les canaux 1, 3, 5 et 7.
Cette sélection peut à nouveau être faite au hasard et dynamiquement, i.e. on tire des nouveaux canaux à chaque nouvelle requête d’utilisation du 1eNN. En pratique la sélection peut être faite selon le protocole suivant (chaque étape étant optionnelle – chaque choix peut être aléatoire ou prédéterminé) :
  1. on choisit un nombre de CNN Identité à insérer ;
  2. on tire autant de CNN Identité que ce nombre dans l’ensemble des CNN Identité (avec ou sans remise) ;
  3. pour chaque CNN Identité tiré on choisit une couche cible à affecter (i.e. en entrée de laquelle le CNN sera inséré) parmi les couches linéaires du 1eNN ;
  4. pour chaque CNN Identité tiré on choisit autant de canaux d’entrée de la couche cible associée que le nombre de canaux d’entrée/sortie de ce CNN Identité.
En ce qui concerne le point 3., il est à noter que deux CNN Identité peuvent être choisis comme affectant la même couche cible : soit les canaux concernés sont distincts et il n’y a aucun problème, soit au moins un canal se recoupe et dans ce cas-là on peut soit décider que ce n’est pas souhaitable (et on recommencer le tirage), soit accepter qu’un CNN identité soit en amont de l’autre : un canal peut ainsi être approximé deux fois de suite avant d’arriver en entrée de la couche cible.
En ce qui concerne le point 4., il est à noter que les CNN Identité sont typiquement des réseaux travaillant sur des images, i.e. des objets bidimensionnels (des « rectangles »), et donc présentant un nombre de canaux d’entrée/sortie égale au produit de deux entiers, i.e. de la forme a*b, où a et b sont des entiers chacun supérieur ou égal à deux, et même préférentiellement des « carrés » de dimension a². On peut tout à fait imaginer utiliser des CNN travaillant sur des objets tridimensionnels et donc présentant un nombre de canaux d’entrée/sortie égale au produit de trois entiers, i.e. de la forme a*b*c, etc. Dans l’exemple de la figure 3, on a un CNN Identité travaillant sur des images 2x2, et donc à quatre canaux d’entrée/sortie.
A noter enfin que les actions de sélection et de construction peuvent être partiellement imbriquées (et donc mise en œuvre en même temps) : s’il y a plusieurs CNN identité à insérer, on peut déterminer les paramètres d’insertion pour le premier, l’insérer, déterminer les paramètres d’insertion du deuxième, l’insérer, etc. De plus, comme expliqué la sélection de la couche cible et/ou des canaux peut être faite à la volée dans l’étape (a).
A l’issue de l’étape (a) on suppose que le 2eNN est construit. Alors, dans une étape (b) ce 2eNN peut être utilisé sur ladite donnée d’entrée, i.e. on applique le 2eNN à la donnée d’entrée et on obtient une donnée de sortie qui peut être fournie à l’utilisateur du terminal 2 sans aucun risque de pouvoir remonter au 1eNN.
CNN Identité
Des CNN de faible taille uniquement constitués d’une alternance de couches de convolution (couches linéaires) et couches non-linéaires à fonction d’activation telle que ReLU donnent de très bons résultats à la fois en qualité d’approximation de l’identité et en complexification des hyperplans sans alourdir le 1eNN pour autant.
Par exemple le CNN Identité peut comprendre seulement deux ou trois couches de convolution (même si on ne sera limité à aucune architecture).
Selon un mode de réalisation particulièrement préféré on peut prendre un CNN Identité d’entrée/sortie carrée de taille jusqu’à 16x16 avec deux ou trois couches de convolution à filtres de taille 5x5.
Tests
Des tests ont été faits en prenant comme 1eNN un ReLU NN à trois couches cachées de type réseau entièrement connecté (FCN, Fully-connected network), les couches cachées ayant respectivement 512, 512 et 32 canaux d’entrée, ce FCN étant utilisé pour la reconnaissance de chiffres manuscrits (classification d’images d’entrée de taille quelconque). Ce 1eNN peut être entraîné pour cette tâche sur la base d’apprentissage MNIST (Mixed National Institute of Standards and Technology) et montre alors un taux de classification correct de 97.9%
Le CNN Identité évoqué avant de taille d’entrée 16x16 (256 canaux) peut être entraîné sur 10000 images aléatoires, et on obtient une erreur absolue moyenne entre l’entrée et la sortie de 0.0913%.
L’insertion de ce CNN Identité sur 256 des 512 canaux d’entrée de la première ou deuxième couche cachée du 1eNN ne montre aucune baisse du taux de classification correct pour le 2eNN.
Apprentissage a posteriori
Alternativement à l’obtention préalable des paramètres du 1e NN et du ou des CNN Identité, on peut directement commencer par l’étape (a) de construction du 2e NN à partir de modèles des 1e NN et CNN Identité, le cas échéant en mettant en œuvre les sélections évoquées avant pour déterminer l’architecture du 2e NN, et ensuite seulement on apprend les paramètres du 2e NN sur la base d’apprentissage du 1e NN (par exemple la base NIST évoquée ci-avant). Il s’agit du mode de réalisation illustré par la , on comprend que la construction et l’apprentissage sont cette fois mis en œuvre du côté du serveur 1.
Cela évite d’avoir à apprendre séparément les paramètres du CNN Identité puisque ses paramètres propres sont automatiquement appris en même temps que ceux du reste du NN.
Les résultats sont équivalents, le seul désagrément est qu’il n’est pas possible de « reconstruire » dynamiquement le 2eNN à chaque requête car ce serait trop long de remettre en œuvre un apprentissage à chaque fois.
Ainsi, selon un deuxième aspect, l’invention concerne un procédé d’apprentissage d’un deuxième réseau de neurones, mis en œuvre par les moyens de traitement de données 11 du serveur 1, comprenant à nouveau l’étape (a) de construction du deuxième réseau de neurones correspondant à un premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ; puis une étape (a1) d’apprentissage des paramètres du deuxième réseau de neurones à partir d’une base de données publique d’apprentissage.
Dans un troisième aspect de l’invention, on peut utiliser ce procédé d’apprentissage comme partie d’un procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée (comme le procédé selon le premier aspect), en rajoutant la même étape (b) d’utilisation du 2eNN sur ladite donnée d’entrée (mise en œuvre cette fois par les moyens de traitement de données 21 du terminal 1), i.e. on applique le 2eNN à la donnée d’entrée et on obtient une donnée de sortie qui peut être fournie à l’utilisateur du terminal 2 sans aucun risque de pouvoir remonter au 1eNN.
Produit programme d’ordinateur
Selon un quatrième et un cinquième aspects, l’invention concerne un produit programme d’ordinateur comprenant des instructions de code pour l’exécution (en particulier sur les moyens de traitement de données 11, 21 du serveur 1 ou du terminal 2) d’un procédé selon le premier ou le troisième aspect de l’invention d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée ou un procédé selon le deuxième aspect de l’invention d’apprentissage de paramètres d’un deuxième réseau de neurones, ainsi que des moyens de stockage lisibles par un équipement informatique (une mémoire 12, 22 du serveur 1 ou du terminal 2) sur lequel on trouve ce produit programme d’ordinateur.

Claims (16)

  1. Procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données (21) d’un terminal (2) d’étapes de :
    (a) construction d’un deuxième réseau de neurones correspondant au premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ;
    (b) utilisation du deuxième réseau de neurones sur ladite donnée d’entrée.
  2. Procédé selon la revendication 1, dans lequel ledit réseau de neurones à convolution est inséré en entrée d’une couche cible du premier réseau de neurones et présente une taille de sortie inférieure à une taille d’entrée de ladite couche cible de sorte à approximer seulement certains canaux d’entrée de cette couche cible.
  3. Procédé selon la revendication 2, dans lequel l’étape (a) comprend la sélection de ladite couche cible du premier réseau de neurones parmi les couches linéaires dudit premier réseau de neurones et/ou la sélection des canaux d’entrée de ladite couche cible à approximer parmi tous les canaux d’entrée de la couche cible.
  4. Procédé selon l’une des revendications 1 à 3, dans lequel l’au moins un réseau de neurones à convolution approximant la fonction identité présente une taille de sortie égale au produit de deux entiers.
  5. Procédé selon l’une des revendications 1 à 4, comprenant une étape (a0) préalable d’obtention des paramètres du premier réseau de neurones et de l’au moins un réseau de neurones à convolution approximant la fonction identité.
  6. Procédé selon la revendication 5, dans lequel l’étape (a0) comprend l’obtention des paramètres d’un ensemble de réseau de neurones à convolution approximant la fonction identité, l’étape (a) comprenant la sélection dans ledit ensemble d’au moins un réseau de neurones à convolution approximant la fonction identité à insérer.
  7. Procédé selon les revendications 3 et 6 en combinaison, dans lequel l’étape (a) comprend, pour chaque réseau de neurones à convolution approximant la fonction identité sélectionné, ladite sélection de ladite couche cible du premier réseau de neurones parmi les couches linéaires dudit premier réseau de neurones et/ou la sélection des canaux d’entrée de ladite couche cible à approximer parmi tous les canaux d’entrée de la couche cible.
  8. Procédé selon l’une des revendications 6 et 7, dans lequel l’étape (a) comprend en outre la sélection préalable d’un nombre de réseaux de neurones à convolution approximant la fonction identité dudit ensemble à sélectionner.
  9. Procédé selon l’une des revendications 5 à 8, dans lequel l’étape (a0) est une étape mise en œuvre par des moyens de traitement de données (11) d’un serveur (1) d’apprentissage des paramètres du premier réseau de neurones et de l’au moins un réseau de neurones à convolution approximant la fonction identité à partir d’au moins une base de données d’apprentissage.
  10. Procédé selon l’une des revendications 1 à 9, dans lequel le premier réseau de neurones et le ou les réseaux de neurones à convolution approximant la fonction identité comprennent une alternance de couches linéaires et de couches non-linéaires à fonction d’activation telle que la fonction ReLU.
  11. Procédé selon les revendications 2 et 10 en combinaison, dans lequel ladite couche cible est une couche linéaire.
  12. Procédé selon l’une des revendications 10 et 11, dans lequel l’au moins un réseau de neurones à convolution approximant la fonction identité comprend deux ou trois couches linéaires, qui sont des couches de convolution à filtre par exemple de taille 5x5.
  13. Procédé d’apprentissage des paramètres d’un deuxième réseau de neurones, le procédé étant caractérisé en ce qu’il comprend la mise en œuvre par des moyens de traitement de données (11) d’un serveur (1) d’étapes de :
    (a) construction du deuxième réseau de neurones correspondant à un premier réseau de neurones dans lequel est inséré au moins un réseau de neurones à convolution approximant la fonction identité ;
    (a1) apprentissage des paramètres du deuxième réseau de neurones à partir d’une base de données d’apprentissage
  14. Procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, le procédé comprenant l’apprentissage de paramètres d’un deuxième réseau de neurones conformément au précédé selon la revendication 13 ; et la mise en œuvre par des moyens de traitement de données (21) d’un terminal (2) d’une étape (b) d’utilisation du deuxième réseau de neurones sur ladite donnée d’entrée.
  15. Produit programme d’ordinateur comprenant des instructions de code pour l’exécution d’un procédé selon l’une des revendications 1 à 14 d’apprentissage de paramètres d’un deuxième réseau de neurones, ou d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, lorsque ledit programme est exécuté par un ordinateur.
  16. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d’ordinateur comprend des instructions de code pour l’exécution d’un procédé selon l’une des revendications 1 à 14 d’apprentissage de paramètres d’un deuxième réseau de neurones, ou d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée.
FR2004945A 2020-05-18 2020-05-18 Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones Active FR3110268B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR2004945A FR3110268B1 (fr) 2020-05-18 2020-05-18 Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones
US17/999,155 US20230196073A1 (en) 2020-05-18 2021-05-14 Method for secure use of a first neural network on an input datum and method for learning parameters of a second neural network
PCT/FR2021/050842 WO2021234252A1 (fr) 2020-05-18 2021-05-14 Procédés d'utilisation sécurisée d'un premier réseau de neurones sur une donnée d'entrée, et d'apprentissage de paramètres d'un deuxième réseau de neurones
EP21732457.3A EP4154189A1 (fr) 2020-05-18 2021-05-14 Procédés d'utilisation sécurisée d'un premier réseau de neurones sur une donnée d'entrée, et d'apprentissage de paramètres d'un deuxième réseau de neurones
JP2022570235A JP2023526809A (ja) 2020-05-18 2021-05-14 入力データに対して第1のニューラルネットワークを安全に使用するための方法及び第2のニューラルネットワークのパラメータを学習するための方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2004945A FR3110268B1 (fr) 2020-05-18 2020-05-18 Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones
FR2004945 2020-05-18

Publications (2)

Publication Number Publication Date
FR3110268A1 true FR3110268A1 (fr) 2021-11-19
FR3110268B1 FR3110268B1 (fr) 2022-10-21

Family

ID=72644318

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2004945A Active FR3110268B1 (fr) 2020-05-18 2020-05-18 Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones

Country Status (5)

Country Link
US (1) US20230196073A1 (fr)
EP (1) EP4154189A1 (fr)
JP (1) JP2023526809A (fr)
FR (1) FR3110268B1 (fr)
WO (1) WO2021234252A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4242922A1 (fr) 2022-03-09 2023-09-13 IDEMIA Identity & Security France Procédé d'utilisation sécurisée d'un premier réseau de neurones sur une donnée d'entrée

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095629A1 (en) * 2017-09-25 2019-03-28 International Business Machines Corporation Protecting Cognitive Systems from Model Stealing Attacks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190095629A1 (en) * 2017-09-25 2019-03-28 International Business Machines Corporation Protecting Cognitive Systems from Model Stealing Attacks

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ATIN SOOD ET AL: "NeuNetS: An Automated Synthesis Engine for Neural Network Design", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 17 January 2019 (2019-01-17), XP081005604 *
ITAY SAFRANEYAL RONENORR DUNKELMAN, SIMPLE EXPLANATION FOR THE EXISTENCE OF ADVERSARIAL EXAMPLES WITH SMALL HAMMING DISTANCE PAR ADI SHAMIR, Retrieved from the Internet <URL:https://arxiv.org/pdf/1901.10861vl.pdf>
MATHIAS LECUYER ET AL: "Certified Robustness to Adversarial Examples with Differential Privacy", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 9 February 2018 (2018-02-09), XP081235595 *
NICHOLAS CARLINIMATTHEW JAGIELSKIILYA MIRONOV, CRYPTANALYTIC EXTRACTION OF NEURAL NETWORK MODELS, Retrieved from the Internet <URL:https.-Ilarxiv.orglpdfl2OO3.04884v].pdf>

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4242922A1 (fr) 2022-03-09 2023-09-13 IDEMIA Identity & Security France Procédé d'utilisation sécurisée d'un premier réseau de neurones sur une donnée d'entrée
FR3133469A1 (fr) 2022-03-09 2023-09-15 Idemia Identity & Security France Procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée

Also Published As

Publication number Publication date
WO2021234252A1 (fr) 2021-11-25
JP2023526809A (ja) 2023-06-23
EP4154189A1 (fr) 2023-03-29
FR3110268B1 (fr) 2022-10-21
US20230196073A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
EP3707676B1 (fr) Procédé d&#39;estimation de pose d&#39;une caméra dans le référentiel d&#39;une scène tridimensionnelle, dispositif, système de réalite augmentée et programme d&#39;ordinateur associé
FR3079329A1 (fr) Procedes d&#39;apprentissage de parametres d&#39;un reseau de neurones a convolution, et de classification d&#39;une donnee d&#39;entree
FR3069357A1 (fr) Systeme d&#39;apprentissage machine pour diverses applications informatiques
FR3087558A1 (fr) Procede d&#39;extraction de caracteristiques d&#39;une empreinte digitale representee par une image d&#39;entree
FR3095880A1 (fr) Procédé de classification sécurisée d’une donnée d’entrée au moyen d’un réseau de neurones à convolution
EP1766538A1 (fr) Recherche automatique de similarite entre images incluant une intervention humaine
EP0602717A1 (fr) Dispositif neuronal et procédé pour le construire
EP4124942A1 (fr) Procédé et système de traitement de données personnelles utilisant un chiffrement homomorphique
CA2727747A1 (fr) Dispositif d&#39;aide a la reconnaissance d&#39;images ameliore
FR3110268A1 (fr) Procédés d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée, et d’apprentissage de paramètres d’un deuxième réseau de neurones
FR3112413A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d’ordinateur associés
FR2896896A1 (fr) Procede de classification d&#39;evenements ou d&#39;etats en deux etapes
EP3966739B1 (fr) Procédé d&#39;analyse automatique d&#39;images pour reconnaître automatiquement au moins une caractéristique rare
FR3123748A1 (fr) Apprentissage automatique sans annotation ameliore par regroupements adaptatifs en ensemble ouvert de classes
EP3929809A1 (fr) Procédé de détection d&#39;au moins un trait biométrique visible sur une image d entrée au moyen d&#39;un réseau de neurones à convolution
FR3133469A1 (fr) Procédé d’utilisation sécurisée d’un premier réseau de neurones sur une donnée d’entrée
FR3109002A1 (fr) Dispositif et procédé pour le transfert de connaissance d’un réseau neuronal artificiel
FR3094856A1 (fr) Procede de génération d’un element multimedia au cours de la lecture d’un media, terminal, systeme
EP3825915A1 (fr) Procede de classification d&#39;une empreinte biometrique representee par une image d&#39;entree
Tanielian Generative Adversarial Networks: theory and practice
FR3133937A1 (fr) Procédé et dispositif d’entraînement d’une structure de neurones artificiels et programme d’ordinateur associé
WO2006010855A1 (fr) Procede et dispositif de signature et de reconnaissance d&#39;un visage base sur des transformations ondelettes
FR3087028A1 (fr) Procede de classification securisee d&#39;une donnee d&#39;entree au moyen d&#39;un reseau de neurones a convolution
FR3126529A1 (fr) Procédé de mise en relation d’une image candidate avec une image de référence.
FR3137479A1 (fr) Procédé de reconnaissance biométrique

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20211119

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5