Brevet FR3080932A1 — publié le 20191108

PROCEDE DE GENERATION AUTOMATIQUE DE RESEAUX DE NEURONES ARTIFICIELS DOMAINE TECHNIQUE DE L'INVENTION Le domaine technique de l'invention est celui des réseaux de neurones artificiels et plus particulièrement celui des réseaux de neurones artificiels dont l'apprentissage est supervisé. La présente invention concerne un procédé de génération de réseaux de neurones artificiels et en particulier un procédé de génération automatique de réseaux de neurones artificiels. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION Le réseau de neurones ou réseau de neurones artificiel constitue le principal outil de l'apprentissage profond ou deep learning qui tente de modéliser des données afin d'être capable par la suite d'effectuer des tâches spécifiques avec de nouvelles données, comme des tâches de classification ou de détection. Pour cela, le réseau de neurones passe par une phase d'entraînement ou phase d'apprentissage pendant laquelle il apprend en parcourant sur plusieurs itérations une base de données d'entraînement puis par une phase de généralisation pendant laquelle il réalise, sur une base de données de généralisation, la tâche pour laquelle il a été entraîné. Il existe deux types d'apprentissage pour un réseau de neurones artificiel. En apprentissage supervisé, l'apprentissage est contraint par la base de données d'apprentissage. En effet, la base de données d'apprentissage est annotée pour signaler au réseau de neurones les structures qu'il doit repérer. Au contraire, en apprentissage non supervisé, le réseau de neurones trouve lui-même des structures sous-jacentes à partir des données brutes de la base de données d'entraînement. Dans la présente invention, les réseaux de neurones sont entraînés de manière supervisée. 2 Un réseau de neurones est une structure complexe formée d'une pluralité de couches, chaque couche comportant une pluralité de neurones artificiels. Chaque neurone d'une couche est relié à au moins un neurone d'une couche voisine via 5 une synapse artificielle à laquelle est affectée un coefficient synaptique ou poids, mis à jour pendant la phase d'apprentissage. Le nombre de couches et de neurones par couches définissent la capacité du réseau à apprendre, et doivent être adaptés à la complexité du problème traité. Pour des applications classiques, le nombre de couches peut varier d'une à une dizaine, tandis que le nombre de 10 neurones par couche peut varier d'une dizaine à plusieurs milliers. Pour une architecture donnée, un paramètre capital pour l'entraînement du réseau est le pas d'apprentissage qui définit la fréquence à laquelle sont mis à jour les coefficients synaptiques. Pour un problème de classification et dans le cadre d'un 15 apprentissage supervisé, à chaque itération de l'entraînement, la classification de chaque donnée par le modèle est comparée à sa classification réelle, et les coefficients synaptiques sont mis à jour de manière à corriger les erreurs. Si le pas d'apprentissage est trop petit, l'apprentissage est très long, ce qui est problématique compte tenu des ressources nécessaires pour entraîner un réseau 20 de neurones. Si le pas d'apprentissage est trop grand, le réseau de neurones ne peut tout simplement pas apprendre. Enfin, s'il est souvent avantageux d'utiliser des architectures complexes, les performances de celles-ci peuvent être limitées par le sur-apprentissage : pour un 25 problème de classification, celui-ci se manifeste à travers le fait que le réseau apprend parfaitement à reproduire la classification des données vues pendant l'entraînement, mais échoue à généraliser cette classification à de nouvelles données. Pour limiter ce phénomène tout en bénéficiant des avantages d'une architecture complexe, une technique est la régularisation L2, qui introduit un 30 paramètre ou coefficient de régularisation. Si ce paramètre est trop petit, la régularisation n'empêche pas le sur-apprentissage du réseau, mais s'il est trop 3 grand, le réseau perd en capacité d'apprentissage, ce qui dégrade ses performances. Un réseau de neurones artificiel est donc défini par des paramètres qui décrivent 5 son architecture, comme son nombre de couches ou encore son nombre de neurones par couche, et par des paramètres qui décrivent son processus d'entraînement, comme le pas d'apprentissage ou encore le coefficient de régularisation. En général, ces paramètres sont fixés via un choix humain qui repose sur 10 l'intuition, mais ceci est incompatible avec une utilisation par des utilisateurs non experts en apprentissage automatique et désireux d'appliquer cette technique en réponse à des problématiques métiers sur leurs données. Une autre approche consiste à tester systématiquement différentes valeurs 15 possibles de ces paramètres, soit de manière aléatoire, soit en définissant une grille de recherche. Cependant, une telle approche est coûteuse en temps et ne garantit pas d'obtenir des résultats satisfaisants. Il existe donc un besoin pour un utilisateur néophyte en apprentissage 20 automatique de générer un réseau de neurones adapté à une tâche donnée, c'est-à-dire donnant des résultats satisfaisants pour la tâche pour laquelle il a été entraîné. RESUME DE L'INVENTION 25 L'invention offre une solution aux problèmes évoqués précédemment, en permettant de générer automatiquement un réseau de neurones artificiels adapté à une tâche prédéfinie par un utilisateur sans que celui-ci ne dispose de connaissances préalables sur les réseaux de neurones artificiels. 30 Un aspect de l'invention concerne un procédé de génération automatique, à partir d'une base de données d'entraînement et d'une base de données de généralisation, d'un réseau de neurones artificiels comportant au moins une 4 couche de neurones artificiels, le réseau de neurones artificiels ayant un paramètre de régularisation, un paramètre d'apprentissage, un paramètre de profondeur correspondant au nombre de couches du réseau de neurones artificiels et un paramètre de largeur correspondant au nombre de neurones 5 artificiels par couche du réseau de neurones artificiels, le paramètre de profondeur pouvant être choisi parmi un intervalle [pl ; p2] de valeurs du paramètre de profondeur, le paramètre de largeur pouvant être choisi parmi un intervalle [11 ; 12] de valeurs du paramètre de largeur et le paramètre d'apprentissage pouvant être choisi parmi un intervalle [al ; a2] de valeurs du paramètre d'apprentissage, le 10 procédé étant caractérisé en ce qu'il comporte : - une étape de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage en un intervalle [ai' ; a2'], comportant les étapes suivantes : Générer un premier réseau de neurones artificiels de test ayant un paramètre de profondeur égal à la borne inférieure pl de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur et un paramètre de régularisation nul ; Entraîner le premier réseau de neurones artificiels de test sur un premier échantillon de la base de données d'entraînement pour plusieurs valeurs du paramètre d'apprentissage comprises dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; Générer un deuxième réseau de neurones artificiels de test ayant un paramètre de profondeur égal à la borne supérieure p2 de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur et un paramètre de régularisation nul ; Entraîner le deuxième réseau de neurones artificiels de test sur un deuxième échantillon de la base de données d'entraînement pour plusieurs valeurs du paramètre d'apprentissage comprises dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; 15 - - 20 - 25 - 30 5 - Calculer la nouvelle borne inférieure ai' et la nouvelle borne supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage ; - une étape de définition d'un intervalle [ri ; r2] de valeurs du paramètre 5 de régularisation comportant les étapes suivantes : - Générer un troisième réseau de neurones artificiels de test ayant un paramètre de profondeur égal à la valeur moyenne de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 10 12] de valeurs du paramètre de largeur, un paramètre d'apprentissage égal à la valeur médiane de l'intervalle [ai' ; a2'] de valeurs du paramètre d'apprentissage restreint et un paramètre de régularisation nul ; - Entraîner le troisième réseau de neurones artificiels de test sur la 15 base de données d'entraînement et calculer la borne inférieure ri et la borne supérieure r2 de l'intervalle [ri ; r2] de valeurs du paramètre de régularisation ; - une étape de génération, d'entraînement sur la base de données d'entraînement et de test sur la base de données de généralisation, 20 d'une pluralité de réseaux de neurones artificiels, en faisant varier la valeur de chaque paramètre dans l'intervalle de valeurs correspondant, et de calcul d'une fonction de coût pour chaque réseau de neurones artificiels testé ; - une étape de sélection du réseau de neurones artificiels pour lequel la 25 fonction de coût calculée répond à une condition de validation. Grâce à l'invention, un réseau de neurones artificiels adapté à une tâche prédéfinie par un utilisateur est généré sans que celui-ci n'ait à intervenir dans le procédé. Les paramètres du réseau de neurones généré sont choisis de manière automatique, sans que l'utilisateur n'ait à les régler lui-même. 30 Outre les caractéristiques qui viennent d'être évoquées dans le paragraphe précédent, le procédé selon un aspect de l'invention peut présenter une ou 6 plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles. Avantageusement, la fonction de coût est la somme d'une fonction de 5 régularisation et de la moyenne des erreurs sur la base de données utilisée. Ainsi, la fonction de coût évalue les performances du réseau de neurones tout en pénalisant le sur-apprentissage. Avantageusement, la fonction de régularisation est le produit du paramètre de 10 régularisation et de la somme au carré des normes des valeurs de coefficients de réseau. Ainsi, la fonction de régularisation pénalise le sur-apprentissage. Avantageusement : 15 - l'étape d'entraînement du premier réseau de neurones artificiels de test comporte les sous-étapes suivantes : - Sélectionner différentes valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; 20 - Pour chaque valeur du paramètre d'apprentissage sélectionnée, entraîner, sur le premier échantillon de la base de données d'entraînement, le premier réseau de neurones artificiels de test avec la valeur sélectionnée comme paramètre d'apprentissage et calculer la fonction de coût correspondante ; 25 - Sélectionner une nouvelle borne inférieure ai' de l'intervalle de valeurs du paramètre d'apprentissage à partir d'une première valeur du paramètre d'apprentissage pour laquelle la fonction de coût correspondante répond à une condition de sélection ; - l'étape d'entraînement du deuxième réseau de neurones artificiels de 30 test comporte les sous-étapes suivantes : 7 - Sélectionner différentes valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; - Pour chaque valeur du paramètre d'apprentissage sélectionnée, 5 entraîner, sur le deuxième échantillon de la base de données d'entraînement, le deuxième réseau de neurones artificiels de test avec la valeur sélectionnée comme paramètre d'apprentissage et calculer la fonction de coût correspondante ; - Sélectionner une nouvelle borne supérieure a2' de l'intervalle de 10 valeurs du paramètre d'apprentissage à partir d'une seconde valeur du paramètre d'apprentissage pour laquelle la fonction de coût correspondante répond à la condition de sélection. Ainsi, le premier réseau de neurones artificiels de test, le réseau de neurones artificiels le plus simple possible et le deuxième réseau de neurones artificiels de 15 test, le réseau de neurones artificiels le plus complexe possible permettent de définir la borne inférieure et la borne supérieure de l'intervalle de valeurs du paramètre d'apprentissage restreint. Restreindre l'intervalle de valeurs du paramètre d'apprentissage permet de diminuer le temps de calcul des étapes suivantes du procédé. 20 Avantageusement, l'étape de calcul de la nouvelle borne inférieure ai' et de la nouvelle borne supérieure a2' de l'intervalle [ai' ; a2'] de valeurs du paramètre d'apprentissage comporte les sous-étapes suivantes : - Comparer la première et la seconde valeur du paramètre 25 d'apprentissage pour déterminer une valeur du paramètre d'apprentissage minimale et une valeur du paramètre d'apprentissage maximale ; - Calculer la nouvelle borne inférieure ai' de l'intervalle [ai' ; a2'] de valeurs du paramètre d'apprentissage à partir de la valeur du 30 paramètre d'apprentissage minimale ; 8 - Calculer la nouvelle borne supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage à partir de la valeur du paramètre d'apprentissage maximale. Ainsi, les nouvelles bornes de l'intervalle [al ' ; a2'] de valeurs du paramètre 5 d'apprentissage sont calculées à partir de valeurs du paramètre d'apprentissage obtenues à partir d'un réseau de neurones simple et d'un réseau de neurones complexe ce qui permet de réduire l'intervalle de valeurs du paramètre d'apprentissage aux valeurs du paramètre d'apprentissage possibles pour les architectures de réseaux de neurones prises en compte dans le procédé. 10 Avantageusement, la fonction de coût répondant à la condition de sélection est la fonction de coût ayant la décroissance la plus rapide. Ainsi, le paramètre d'apprentissage sélectionné est celui pour lequel le réseau de neurones artificiels correspondant obtient les meilleurs résultats le plus 15 rapidement. En particulier, lorsque la fonction de coût est la somme d'une fonction de régularisation et de la moyenne des erreurs sur la base de données utilisée, comme les premier et deuxième réseaux de neurones de test ont un paramètre de régularisation nul, le paramètre d'apprentissage sélectionné est celui pour lequel la moyenne des erreurs a décru le plus rapidement. 20 Avantageusement, l'étape de définition d'un intervalle de valeurs du paramètre de régularisation comporte les étapes suivantes : - Entraîner, sur la base de données d'entraînement, le troisième réseau de neurones artificiels de test et calculer la fonction de coût ; 25 - Calculer un paramètre de régularisation optimal à partir de la fonction de coût précédemment calculée ; - Calculer la borne inférieure ri et la borne supérieure r2 de l'intervalle de valeurs du paramètre de régularisation à partir du paramètre de régularisation optimal. 9 Ainsi, le troisième réseau de neurones artificiels de test, le réseau de neurones artificiels intermédiaire, permet de définir l'intervalle de valeurs du paramètre de régularisation. 5 Avantageusement, le paramètre de régularisation optimal est la somme des normes au carré des gradients de la fonction de coût par rapport à des coefficients de réseau, divisé par la somme des normes au carré des coefficients de réseau. Ainsi, le paramètre de régularisation optimal pénalise le sur-apprentissage. 10 Avantageusement, la fonction de coût répondant à la condition de validation est la fonction de coût minimale. Ainsi, lorsque la fonction de coût est la somme d'une fonction de régularisation et de la moyenne des erreurs sur la base de données utilisée, le réseau de neurones artificiels sélectionné est celui pour lequel la somme de la moyenne des erreurs et 15 de la fonction de régularisation est la plus faible, c'est-à-dire le réseau de neurones artificiels correspondant obtenant les meilleurs résultats avec un sur-apprentissage limité. Avantageusement, l'étape de génération, d'entraînement et de test de plusieurs 20 réseaux de neurones artificiels, comporte plusieurs sous-étapes : - Générer plusieurs réseaux de neurones artificiels en faisant varier la valeur de chaque paramètre dans l'intervalle de valeurs correspondant, chaque valeur de l'intervalle de valeurs correspondant étant équiprobable, entraîner sur la base de données d'entraînement et tester sur la base de données de 25 généralisation, lesdits plusieurs réseaux de neurones artificiels générés, et calculer la fonction de coût pour chacun desdits réseaux de neurones artificiels entraînés et testés ; - En comparant les fonctions de coût précédemment calculées, mettre à jour, pour un intervalle de valeurs donné, les probabilités affectées à 30 chaque valeur de l'intervalle de valeurs ; 10 - Générer plusieurs autres réseaux de neurones artificiels en faisant varier la valeur de chaque paramètre dans l'intervalle de valeurs correspondant, les valeurs de l'intervalle de valeurs correspondant n'étant plus toutes équiprobables, entraîner sur la base de données d'entraînement et tester 5 sur la base de données de généralisation, lesdits autres réseaux de neurones artificiels et calculer la fonction de coût pour chacun desdits autres réseaux de neurones artificiels entraînés et testés, la fonction de coût étant comparée aux fonctions de coût précédemment calculées pour mettre à jour, pour un intervalle de valeurs donné, les probabilités 10 affectées à chaque valeur de l'intervalle de valeurs. Ainsi, les réseaux de neurones générés dans un premier temps permettent de définir, pour chaque paramètre, des zones des intervalles de valeurs correspondant permettant d'obtenir de meilleurs résultats. Ceci permet de diminuer le temps de calcul et d'optimiser l'étape de génération, d'entraînement et 15 de test du procédé. Avantageusement, l'intervalle [pl ; p2] de valeurs du paramètre de profondeur est compris dans l'intervalle [2 ; 20]. Ainsi, le réseau de neurones artificiels généré a un nombre de couches lui 20 permettant d'avoir des résultats satisfaisants pour des applications classiques sans avoir besoin de matériel complexe pour le faire fonctionner. Avantageusement, le choix de l'intervalle [11 ; 12] de valeurs du paramètre de largeur dépend du nombre de variables contenues dans une donnée de la base 25 de données. Ainsi, le nombre de neurones par couche est adapté à la complexité des données à traiter. Avantageusement, l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage 30 couvre plusieurs puissances de dix allant de 10-4 à 1 avant l'étape de restriction dudit intervalle. 11 Ainsi, l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage prend en compte tous les cas de figure pouvant être rencontrés. Avantageusement, les premier et deuxième échantillons de la base de données 5 d'entraînement sont représentatifs de la base de données d'entraînement. Ainsi, les résultats obtenus sur les échantillons permettent d'extrapoler les résultats qui auraient été obtenus sur la base entière. L'invention et ses différentes applications seront mieux comprises à la lecture de 10 la description qui suit et à l'examen des figures qui l'accompagnent. BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. - La figure 1 montre une représentation schématique d'un réseau de 15 neurones artificiels. - La figure 2 est un schéma synoptique illustrant les principales étapes d'un procédé de génération automatique de réseaux de neurones artificiels selon un aspect de l'invention. - La figure 3 montre une représentation schématique d'un exemple de 20 premier réseau de neurones artificiels de test. - La figure 4 montre une représentation schématique d'un exemple de deuxième réseau de neurones artificiels de test. - La figure 5 montre une représentation schématique d'un exemple de troisième réseau de neurones artificiels de test. 25 DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. 30 12 Un aspect de l'invention concerne un procédé 200 de génération automatique de réseaux de neurones artificiels 100. Dans la suite de la demande, on utilisera indifféremment les termes « réseau de neurones » et « réseau de neurones artificiel ». 5 Un réseau de neurones 100 comporte au moins une couche 103 comportant au moins deux neurones 101. Sur la figure 1, le réseau de neurones 100 comporte trois couches 103 comportant chacune trois neurones 101. De manière générale et comme illustré dans les figures, chaque neurone 101 de chaque couche 103 est 10 connecté à chaque neurone 101 de la couche 103 précédente et à chaque neurone 101 de la couche 103 suivante. Cependant, on pourrait envisager le cas où chaque neurone 101 de chaque couche 103 est connecté uniquement à une partie des neurones 101 de la couche 103 précédente et/ou à une partie des neurones 101 de la couche 103 suivante. Une connexion 102 entre deux 15 neurones 101 est affectée d'un poids ou coefficient synaptique. Le paramètre de profondeur d'un réseau de neurones 100 se définit par le nombre de couches 103 du réseau de neurones 100. De manière générale, chaque couche 103 d'un réseau de neurones 100 comporte 20 un nombre différent de neurones 101. Dans le cadre de l'invention, comme représenté à la figure 1, chaque couche 103 présente un même nombre de neurones 101. Le paramètre de largeur d'un réseau de neurones 100 se définit ainsi par le nombre de neurones 101 par couche 103 du réseau de neurones 100. Le paramètre de profondeur et le paramètre de largeur d'un réseau de neurones 25 100 définissent l'architecture du réseau de neurones 100. Un réseau de neurones artificiels 100 est également défini par d'autres paramètres, comme un paramètre d'apprentissage et un paramètre de régularisation, qui décrivent son processus d'apprentissage. 30 Le paramètre d'apprentissage correspond au pas d'apprentissage du réseau de neurones 100 qui définit la fréquence à laquelle sont mis à jour les poids du 13 réseau de neurones 100 et le paramètre de régularisation à son coefficient de régularisation qui limite le sur-apprentissage du réseau de neurones 100. 5 L'objectif du procédé 200 est de générer automatiquement un réseau de neurones artificiels 100 adapté à une tâche prédéfinie, à partir d'une base de données comportant une base de données d'apprentissage ou base de données d'entraînement sur laquelle le réseau de neurones 100 est entraîné à effectuer la tâche et une base de données de généralisation sur laquelle le réseau effectue la 10 tâche pour laquelle il a été entraîné. L'apprentissage est réalisé de manière supervisée, c'est-à-dire que la base de données d'apprentissage comporte des données annotées. Par exemple, une base de données d'apprentissage pour de la détection de personnes comporte des images dans lesquelles les personnes sont signalées, par exemple en 15 fournissant les coordonnées d'un coin d'une fenêtre encadrant la personne, ainsi que sa longueur et sa largeur. La base de données d'apprentissage représente par exemple entre 60% et 80% de la base de données, ou entre 70% et 80% de la base de données, ou entre 65% et 80% de la base de données. 20 On entend par « un réseau de neurones est adapté à une tâche » le fait que le réseau de neurones obtient des résultats satisfaisants pour la tâche sur la base de données de généralisation, après apprentissage de la tâche sur la base de données d'apprentissage. Ces résultats dépendent des paramètres fixés pour le réseau de neurones. Il s'agit donc de générer le réseau de neurones 100 dont les 25 paramètres permettent d'obtenir les meilleurs résultats possibles sur la base de données pour la tâche prédéfinie. Lorsqu'un réseau de neurones est adapté à une tâche, il est alors également adapté à la base de données dans la mesure où la base de données d'apprentissage est construite en fonction de la tâche à apprendre. Par exemple, 30 si l'on se place dans le cas où la base de données est une base de données d'images et que la tâche que l'on souhaite effectuer est de la détection de 14 personnes, chaque image de la base de données d'apprentissage sera en pratique associée à des coordonnées qui repèrent les personnes dans l'image. Les données de la base de données sont par exemple des données bancaires, 5 des données relatives à la réalisation d'un procédé ou d'un produit, ou encore des images. Une donnée de la base de données comporte au moins une variable, chaque donnée de la base de données comportant le même nombre de variables. Ainsi, si une variable est manquante dans une donnée, une valeur par défaut lui est affectée. La valeur par défaut est par exemple la valeur moyenne de la 10 variable sur les autres données. Dans le cas de données bancaires, les variables sont par exemple des informations sur un client comme son âge, ses revenus, son adresse ainsi que des informations sur le produit qu'il consomme comme le type de crédit contracté et le montant associé. Dans le cas de données relatives à la réalisation d'un 15 produit, les variables sont par exemple des informations sur le produit comme son nom, sa composition ainsi que des informations sur son procédé de fabrication comme son temps de fabrication, le nom de la chaîne de montage sur laquelle il a été réalisé. Dans le cas de données relatives à des images, les variables sont par exemple la variance et la moyenne des niveaux de gris. 20 Dans le cas de données bancaires, la tâche à effectuer est par exemple de la classification pour regrouper des clients présentant des caractéristiques similaires et qui seraient donc intéressés par le même type de produits. Dans le cas de données relatives à la réalisation d'un produit, la tâche à effectuer est par exemple 25 la détection d'anomalies comme une chaîne de montage défectueuse. Dans le cas de données relatives à des images, la tâche à effectuer est par exemple de la reconnaissance de caractères manuscrits. On entend par « un réseau de neurones est généré automatiquement » le fait que 30 le réseau de neurones est généré sans l'intervention d'un utilisateur. 15 Le procédé 200 selon un aspect de l'invention comporte plusieurs étapes dont l'enchaînement est représenté à la figure 2. Ces étapes sont mises en oeuvre par un calculateur comportant au moins un processeur et une mémoire. 5 Initialement, le paramètre de profondeur, le paramètre de largeur et le paramètre d'apprentissage ont chacun une valeur qui varie au sein d'un intervalle prédéfini. Ainsi, la valeur du paramètre de profondeur varie au sein d'un intervalle [pl ; p2] de valeurs du paramètre de profondeur, la valeur du paramètre de largeur varie au sein d'un intervalle [11 ; 12] de valeurs du paramètre de largeur et la valeur du 10 paramètre d'apprentissage varie au sein d'un intervalle [al ; a2] de valeurs du paramètre d'apprentissage. L'intervalle [pl ; p2] de valeurs du paramètre de profondeur et l'intervalle [11 ; 12] de valeurs du paramètre de largeur sont des intervalles de valeurs de nombres entiers puisque que le nombre de couches d'un réseau de neurones et le nombre de neurones par couche d'un réseau de 15 neurones ne peuvent prendre que des valeurs entières. Le nombre de couches d'un réseau de neurones est par exemple compris entre 2 et 20, entre 2 et 10 ou entre 4 et 6. Par exemple, l'intervalle [pl ; p2] de valeurs du paramètre de profondeur vaut [4 ; 6], c'est-à-dire que pl égale 4 et p2 égale 6. La valeur de la borne inférieure 11 et la valeur de la borne supérieure 12 de 20 l'intervalle [11 ; 12] de valeurs du paramètre de largeur sont choisies en fonction du nombre de variables contenues dans chaque donnée de la base de données. Ainsi, l'architecture du réseau de neurones est adaptée à la complexité des données à traiter. Par exemple, si le nombre de variables contenues dans chaque donnée de la base de données vaut n, la borne inférieure 11 de l'intervalle [11 ; 12] 25 de valeurs du paramètre de largeur vaudra l'arrondi à l'entier inférieur de 1-12 et la borne supérieure 12 de l'intervalle [11 ; 12] de valeurs du paramètre de largeur vaudra l'arrondi à l'entier inférieur 2*n. Par exemple, si n vaut 5, 11 vaut 2 et 12 vaut 10. L'intervalle [al ; a2] de valeurs du paramètre d'apprentissage est choisi pour 30 couvrir l'ensemble des cas possibles. Par exemple, l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage vaut [10-4 ; 1], c'est-à-dire que al est égal 10-4 et a2 est égal 1. 16 La première étape du procédé 200 est une étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage. A l'issue de cette étape 201, un 5 sous-intervalle [al ' ; a2'] de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage est obtenu, ce qui signifie que ai' est supérieur à al et que a2' est inférieur à a2. ai' peut être égal à al si et seulement si a2' est différent de a2 et a2' peut être égal à a2 si et seulement si ai' est différent de ai. 10 L'étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage comporte une étape de génération d'un premier réseau de neurones artificiels de test 110. Le premier réseau de neurones artificiels de test 110 possède un nombre de couches égal à pi, c'est-à-dire que son paramètre de profondeur est égal à la 15 borne inférieure pl de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur et un nombre de neurones par couche égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur. Le premier réseau de neurones artificiels de test 110 peut ainsi être qualifié de réseau de neurones simple dans la mesure où la valeur fixée pour son paramètre de profondeur est la valeur minimale 20 possible. Le premier réseau de neurones artificiels de test 110 est représenté à la figure 3 dans le cas où pl est égal à 4 et [11 ; 12] est égal à [2 ; 4] . Le premier réseau de neurones artificiels de test 110 comporte alors 4 couches possédant 3 neurones chacune. Le premier réseau de neurones artificiels de test 110 possède un paramètre 25 d'apprentissage variable et un paramètre de régularisation égal à zéro ce qui signifie que le premier réseau de neurones artificiels de test 110 ne fait pas de régularisation. L'étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre 30 d'apprentissage comporte une étape de génération d'un deuxième réseau de neurones artificiels de test 120. 17 Le deuxième réseau de neurones artificiels de test 120 possède un nombre de couches égal à p2, c'est-à-dire que son paramètre de profondeur est égal à la borne supérieure p2 de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur et un nombre de neurones par couche égal à la valeur moyenne de l'intervalle [11 ; 5 12] de valeurs du paramètre de largeur. Le deuxième réseau de neurones artificiels de test 120 peut ainsi être qualifié de réseau de neurones complexe dans la mesure où la valeur fixée pour son paramètre de profondeur est la valeur maximale possible. Le deuxième réseau de neurones artificiels de test 120 est représenté à la figure 4 dans le cas où p2 est égal à 6 et [11 ; 12] est égal à [2 ; 4]. 10 Le deuxième réseau de neurones artificiels de test 120 comporte alors 6 couches possédant 3 neurones chacune. Le deuxième réseau de neurones artificiels de test 120 possède un paramètre d'apprentissage variable et un paramètre de régularisation égal à zéro ce qui signifie que le deuxième réseau de neurones artificiels de test 120 ne fait pas de 15 régularisation. Une fois générés, le premier réseau de neurones artificiels de test 110 et le deuxième réseau de neurones artificiels de test 120 sont ensuite entraînés. Pour cela, des échantillons de données sont sélectionnés sur lesquels les réseaux de 20 neurones artificiels de test seront entraînés. Un premier et un deuxième échantillon de la base de données d'entraînement sont sélectionnés de manière qu'ils soient représentatifs de la base de données d'entraînement. On entend par « un échantillon est représentatif d'une base de données » le fait que la distribution de l'échantillon est identique à la distribution de la base de données 25 pour une cible choisie. Par exemple, dans le cas de la détection, si dans une base de données, il y a 80% d'exemples positifs et 20% d'exemples négatifs, un échantillon représentatif de cette base de données aura également 80% d'exemples positifs et 20% d'exemples négatifs. Par exemple, le premier et le deuxième échantillon de la base de données 30 d'entraînement possèdent chacun entre 1 et 25% des données de la base de données d'entraînement. 18 Par exemple, le premier et le deuxième échantillon de la base de données d'entraînement sont identiques. L'étape d'entraînement du premier réseau de neurones artificiels de test 110 de 5 l'étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage comporte une sous-étape de sélection de plusieurs valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage permettant d'obtenir un premier jeu de valeurs du paramètre d'apprentissage. Par exemple, les valeurs du premier jeu de valeurs du 10 paramètre d'apprentissage couvrent tous les puissances de dix de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage. Le premier réseau de neurones artificiels de test 110 est ensuite entraîné sur le premier échantillon de la base de données d'entraînement en donnant l'une des valeurs du premier jeu de valeurs du paramètre d'apprentissage à son paramètre 15 d'apprentissage. A chaque donnée apprise, une fonction de coût est calculée. La fonction de coût C est par exemple définie comme ci-dessous : C(xN) = -Ni E ill2 i=1 j=1 Avec : xN, la N-ème donnée de la base de données utilisée, Ei, l'erreur entre la 20 valeur trouvée par le réseau de neurones et la valeur réelle pour la donnée i, N le nombre de données utilisées de la base de données, le paramètre de régularisation, pi, un j-ème coefficient de réseau du réseau de neurones et P le nombre de coefficients de réseau du réseau de neurones. Par exemple, pour une tâche de classification, l'erreur correspond à l'entropie 25 croisée entre la valeur réelle d'une donnée et la valeur trouvée par le réseau de neurones, se définissant par : Ei = -10«fc(Xi)) où f(x) est le score (compris entre 0 et 1) que le réseau de neurones attribue à la classe correcte de la donnée i. Ainsi, l'erreur est minimale et vaut 0 si le réseau de neurones attribue un score de 1 à la classe correcte. 19 L'erreur entre la valeur trouvée par le réseau de neurones et la valeur réelle peut également être par exemple la valeur absolue de la différence entre la valeur trouvée par le réseau de neurones et la valeur réelle ou encore la différence au 5 carré entre la valeur trouvée par le réseau de neurones et la valeur réelle. Chaque coefficient de réseau est lié à une couche du réseau de neurones artificiels 100. Par exemple, le coefficient de réseau est le coefficient synaptique affecté à la couche. 10 Dans cet exemple, la fonction de coût est donc la somme de deux termes : un premier terme correspondant à la moyenne des erreurs sur la base de données utilisée et le second ternie à une fonction de régularisation définie comme étant le produit du paramètre de régularisation et de la somme au carré des valeurs des 15 normes des coefficients de réseau. Ainsi, la fonction de coût évalue les performances du réseau de neurones en comparant le résultat obtenu par le réseau de neurones avec le résultat à obtenir tout en pénalisant le sur-apprentissage. On entend par « un réseau de neurones obtient les meilleurs résultats » le fait que 20 le premier terme de la fonction de coût associée au réseau de neurones est le plus faible possible. Le premier réseau de neurones artificiels de test 110 ayant un paramètre de régularisation nul, la fonction de coût à la fin de l'entraînement correspond 25 uniquement à la moyenne des erreurs sur le premier échantillon de la base de données d'entraînement. La fonction de coût pourrait également être définie comme la somme d'un premier terme correspondant à la somme des erreurs sur la base de données utilisée et 30 d'un second terme correspondant à une fonction de régularisation. 20 Le premier réseau de neurones artificiels de test 110 est ainsi entraîné pour chaque valeur du paramètre d'apprentissage du premier jeu de valeurs du paramètre d'apprentissage et une fonction de coût est calculée pour chaque entraînement. Chaque fonction de coût calculée correspond ainsi à une valeur du 5 paramètre d'apprentissage. Une fois toutes les fonctions de coût calculées, une première valeur du paramètre d'apprentissage, dont la fonction de coût correspondante répond à une condition de sélection, est sélectionnée. 10 Par exemple, la fonction de coût répondant à la condition de sélection est la fonction de coût ayant la décroissance la plus rapide parmi les fonctions de coût calculées. Ainsi, lorsque la fonction de coût est la somme d'une fonction de régularisation et de la moyenne des erreurs sur la base de données utilisée, comme le premier réseau de neurones de test 110 a un paramètre de 15 régularisation nul, la fonction de coût correspond uniquement à la moyenne des erreurs et la condition de sélection permet de sélectionner la valeur du paramètre d'apprentissage du réseau de neurones artificiels obtenant les meilleurs résultats et le plus rapidement sur le premier échantillon de la base de données d'entraînement. 20 Dans l'étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage, l'étape d'entraînement du deuxième réseau de neurones artificiels de test 120 comporte une sous-étape de sélection de plusieurs valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du 25 paramètre d'apprentissage permettant d'obtenir un deuxième jeu de valeurs du paramètre d'apprentissage. Par exemple, les valeurs du deuxième jeu de valeurs du paramètre d'apprentissage couvrent tous les puissances de dix de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage. Par exemple, le premier et le deuxième jeu de valeurs du paramètre 30 d'apprentissage sont identiques. 21 Le deuxième réseau de neurones artificiels de test 120 est ensuite entraîné sur le deuxième échantillon de la base de données d'entraînement en donnant l'une des valeurs du deuxième jeu de valeurs du paramètre d'apprentissage à son paramètre d'apprentissage. A chaque donnée apprise, la fonction de coût est 5 calculée. Le deuxième réseau de neurones artificiels de test 120 est ainsi entraîné pour chaque valeur du paramètre d'apprentissage du deuxième jeu de valeurs du paramètre d'apprentissage et la fonction de coût est calculée pour chaque entraînement. 10 Une fois toutes les fonctions de coût calculées, une seconde valeur du paramètre d'apprentissage dont la fonction de coût correspondante répond à la condition de sélection est sélectionnée. 15 Les étapes de l'étape 201 de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage précédemment décrites peuvent se faire dans cet ordre ou dans un ordre différent, c'est-à-dire que, par exemple, la génération et l'entraînement du deuxième réseau de neurones de test 120 peuvent se faire avant la génération et l'entraînement du premier réseau de neurones de test 110. 20 La seule limitation dans l'ordre de ces étapes est que l'entraînement d'un réseau de neurones ne peut être réalisé que si ledit réseau de neurones a été préalablement généré. Les première et seconde valeurs du paramètre d'apprentissage sont ensuite 25 comparées : la plus petite de ces deux valeurs est une valeur du paramètre d'apprentissage minimale et la plus grande de ces deux valeurs est une valeur du paramètre d'apprentissage maximale. La borne inférieure ai' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage restreint est calculée à partir de la valeur du paramètre 30 d'apprentissage minimale. Par exemple, la borne inférieure ai' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage restreint est égale à un dixième de la valeur du paramètre d'apprentissage minimale. 22 La borne supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage restreint est calculée à partir de la valeur du paramètre d'apprentissage maximale. Par exemple, la borne supérieure a2' de l'intervalle [ai' ; a2'] de valeurs du paramètre d'apprentissage restreint est égale à la valeur 5 du paramètre d'apprentissage maximale. Chaque entraînement du premier réseau de neurones artificiels de test 110 et du deuxième réseau de neurones artificiels de test 120 est réalisé pour au moins une époque ou alternativement pour plusieurs époques, une époque correspondant à 10 un parcours de l'échantillon entier de la base de données d'entraînement utilisé. Par exemple, le nombre d'époques utilisé pour entraîner le premier réseau de neurones artificiels de test 110 est identique au nombre d'époques utilisé pour entraîner le deuxième réseau de neurones artificiels de test 120. Le nombre d'époques utilisé est par exemple compris entre 10 et 100 époques, ou 15 entre 30 et 70 époques, ou entre 40 et 60 époques. Par exemple, le nombre d'époques est égal à 50. La deuxième étape du procédé 200 est une étape 202 de définition d'un intervalle 20 [ri ; r2] de valeurs du paramètre de régularisation. A l'issue de cette étape 202, un intervalle [ri ; r2] de valeurs du paramètre de régularisation dans lequel la valeur du paramètre de régularisation pourra varier, est obtenu. L'étape 202 de définition d'un intervalle [ri ; r2] de valeurs du paramètre de 25 régularisation comporte une étape de génération d'un troisième réseau de neurones artificiels de test 130. Le troisième réseau de neurones artificiels de test 130 possède un nombre de couches égal à la valeur moyenne de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, c'est-à-dire que son paramètre de profondeur est égal à la valeur 30 moyenne de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un nombre de neurones par couche égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur, c'est-à-dire que son paramètre de largeur est 23 égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur. Le troisième réseau de neurones artificiels de test 130 peut ainsi être qualifié de réseau de neurones intermédiaire dans la mesure où la valeur fixée pour son paramètre de profondeur est la valeur moyenne. Le troisième réseau de 5 neurones artificiels de test 130 est représenté à la figure 5 dans le cas où pl est égal à 4, p2 est égal à 6,11 est égal à 2 et 12 est égal à 4. Le troisième réseau de neurones artificiels de test 130 comporte alors 5 couches possédant 3 neurones chacune. Le troisième réseau de neurones artificiels de test 130 possède un paramètre 10 d'apprentissage égal à la valeur médiane de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage précédemment restreint et un paramètre de régularisation égal à zéro ce qui signifie que le troisième réseau de neurones artificiels de test 130 ne fait pas de régularisation. 15 Une fois généré, le troisième réseau de neurones artificiels de test 130 est entraîné sur la base de données d'entraînement entière et la fonction de coût est calculée. Cet entraînement est réalisé pour au moins une époque ou alternativement pour plusieurs époques. 20 Par exemple, le nombre d'époques utilisé pour entraîner le troisième réseau de neurones artificiels de test 130 est identique au nombre d'époques utilisé pour entraîner le premier réseau de neurones artificiels de test 110 et/ou le deuxième réseau de neurones artificiels de test 120. 25 Un paramètre de régularisation optimal À est ensuite calculé de la manière suivante : = 0.05 x Avec : C, la fonction de coût, pi, le j-ème coefficient de réseau du réseau de neurones et P le nombre de coefficients de réseau du réseau de neurones. 24 La borne inférieure ri et la borne supérieure r2 de l'intervalle [ri ; r2] de valeurs du paramètre de régularisation sont ensuite calculées à partir du paramètre de régularisation optimal. 5 Par exemple, la borne inférieure ri et la borne supérieure r2 de l'intervalle [ri ; r2] de valeurs du paramètre de régularisation sont les puissances de dix de part et d'autre du paramètre de régularisation optimal. Ainsi, si le paramètre de régularisation optimal vaut 52, ri égale 10 et r2 égale 102. 10 La troisième étape du procédé 200 est une étape 203 de génération, d'entraînement et de test d'une pluralité de réseaux de neurones et de calcul de la fonction de coût pour chaque réseau de neurones testé. A l'issue de cette étape 203, une pluralité de fonctions de coût est obtenue, chaque fonction de coût 15 correspondant à un réseau de neurones testé. Chaque réseau de neurones est généré avec un jeu de paramètres différent, un jeu de paramètres comportant le paramètre de profondeur, le paramètre de largeur, le paramètre d'apprentissage et le paramètre de régularisation. Dans un 20 premier temps, la valeur du paramètre de profondeur varie dans l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, la valeur du paramètre de largeur varie dans l'intervalle [11 ; 12] de valeurs du paramètre de largeur, la valeur du paramètre d'apprentissage varie dans l'intervalle [ai' ; a2'] de valeurs du paramètre d'apprentissage précédemment restreint et la valeur du paramètre de 25 régularisation varie dans l'intervalle [ri ; r2] de valeurs du paramètre de régularisation précédemment défini, de manière équiprobable. Ainsi, la probabilité qu'un paramètre donné prenne une valeur donnée est la même pour toutes les valeurs de l'intervalle correspondant. Par exemple, si le paramètre de profondeur peut varier dans l'intervalle [4 ; 6], la probabilité que le paramètre de profondeur 30 vaille 4 vaut 1/3, la probabilité que le paramètre de profondeur vaille 5 vaut 1/3 et la probabilité que le paramètre de profondeur vaille 6 vaut 1/3. Les réseaux de neurones ainsi générés sont ensuite entraînés sur la base de données 25 d'entraînement puis testés sur la base de données de généralisation, et la fonction de coût est alors calculée pour chacun de ces réseaux de neurones. La comparaison des fonctions de coût de ces réseaux de neurones est utilisée pour mettre à jour, pour chaque valeur possible d'un paramètre donné, la probabilité 5 que le paramètre prenne cette valeur. Par exemple, dans le cas simplifié où l'on a calculé la fonction de coût d'un premier réseau de neurones dont le paramètre de profondeur vaut 4 et la fonction de coût d'un second réseau de neurones dont le paramètre de profondeur vaut 5 et que, par exemple, la fonction de coût du premier réseau de neurones est inférieure à la fonction de coût du second réseau 10 de neurones, la probabilité que le paramètre de profondeur vaille 4 pour un réseau de neurones prochainement généré sera supérieure à la probabilité que son paramètre de profondeur vaille 5. Ainsi, dans un second temps, d'autres réseaux de neurones sont générés, pour lesquels la valeur de chaque paramètre varie toujours dans l'intervalle de valeurs du paramètre correspondant mais plus de 15 manière équiprobable, c'est-à-dire qu'un paramètre donné aura plus de probabilité de prendre telle valeur de l'intervalle de valeurs correspondant plutôt que telle autre. Par exemple, en reprenant l'exemple précédent, la probabilité que le paramètre de profondeur vaille 4 peut valoir 3/4, la probabilité que le paramètre de profondeur vaille 5 peut valoir 3/16 et la probabilité que le paramètre de 20 profondeur vaille 6 peut valoir 1/16. Ceci permet de concentrer la recherche sur les régions de l'espace des paramètres qui donnent les meilleurs résultats et ainsi de diminuer le temps de calcul. Chaque réseau de neurones généré dans un second temps passe ensuite par une phase d'entraînement sur la base de données d'entraînement. Chaque réseau de neurones généré dans un second 25 temps est ensuite testé sur la base de données de généralisation et la fonction de coût est calculée. La fonction de coût est alors utilisée à son tour pour mettre à nouveau à jour les probabilités qu'un paramètre donné prenne une valeur donnée par comparaison avec les fonctions de coût calculées précédemment. Ainsi, les réseaux de neurones artificiels générés au fil des étapes successives de 30 génération tendent de plus en plus à converger vers un même réseau de neurones artificiels. Autrement dit, au fil des étapes successives de génération, au 26 sein de chaque intervalle de valeurs correspondant à un paramètre, une valeur a sa probabilité qui tend de plus en plus vers 1. 5 La quatrième étape du procédé 200 est une étape 204 de sélection d'un des réseaux de neurones artificiels précédemment testé. Le réseau de neurones artificiels précédemment testé dont la fonction de coût correspondante répond à une condition de validation est sélectionné. Par exemple, la fonction de coût répondant à la condition de validation est la fonction 10 de coût minimale, c'est-à-dire la fonction de coût associé au réseau de neurones donnant de bons résultats tout en pénalisant le sur-apprentissage. A l'issue de cette étape 204, REVENDICATIONS1. Procédé (200) de génération automatique, à partir d'une base de données d'entraînement et d'une base de données de généralisation, d'un réseau de neurones artificiels (100) comportant au moins une couche (103) de neurones artificiels (101), le réseau de neurones artificiels (100) ayant un paramètre de régularisation, un paramètre d'apprentissage, un paramètre de profondeur correspondant au nombre de couches (103) du réseau de neurones artificiels (100) et un paramètre de largeur correspondant au nombre de neurones artificiels (101) par couche (103) du réseau de neurones artificiels (100), le paramètre de profondeur pouvant être choisi parmi un intervalle [pl ; p2] de valeurs du paramètre de profondeur, le paramètre de largeur pouvant être choisi parmi un intervalle [11 ; 12] de valeurs du paramètre de largeur et le paramètre d'apprentissage pouvant être choisi parmi un intervalle [al ; a2] de valeurs du paramètre d'apprentissage, le procédé étant caractérisé en ce qu'il comporte : - une étape (201) de restriction de l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage en un intervalle [al ' ; a2'], comportant les étapes suivantes : - Générer un premier réseau de neurones artificiels de test (110) ayant un paramètre de profondeur égal à la borne inférieure pl de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur et un paramètre de régularisation nul ; - Entraîner le premier réseau de neurones artificiels de test (110) sur un premier échantillon de la base de données d'entraînement pour plusieurs valeurs du paramètre d'apprentissage comprises dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; - Générer un deuxième réseau de neurones artificiels de test (120) ayant un paramètre de profondeur égal à la borne supérieure p2 de 28 l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur et un paramètre de régularisation nul ; 5 - Entraîner le deuxième réseau de neurones artificiels de test (120) sur un deuxième échantillon de la base de données d'entraînement pour plusieurs valeurs du paramètre d'apprentissage comprises dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; - Calculer la nouvelle borne inférieure ai' et la nouvelle borne 10 supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage ; - une étape (202) de définition d'un intervalle [ri ; r2] de valeurs du paramètre de régularisation comportant les étapes suivantes : - Générer un troisième réseau de neurones artificiels de test (130) 15 ayant un paramètre de profondeur égal à la valeur moyenne de l'intervalle [pl ; p2] de valeurs du paramètre de profondeur, un paramètre de largeur égal à la valeur moyenne de l'intervalle [11 ; 12] de valeurs du paramètre de largeur, un paramètre d'apprentissage égal à la valeur médiane de l'intervalle [ai' ; a2'] de valeurs du 20 paramètre d'apprentissage restreint et un paramètre de régularisation nul ; - Entraîner le troisième réseau de neurones artificiels de test (130) sur la base de données d'entraînement et calculer la borne inférieure ri et la borne supérieure r2 de l'intervalle [ri ; r2] de valeurs du 25 paramètre de régularisation ; - une étape (203) de génération, d'entraînement sur la base de données d'entraînement et de test sur la base de données de généralisation, d'une pluralité de réseaux de neurones artificiels, en faisant varier la valeur de chaque paramètre dans l'intervalle de valeurs 30 correspondant et de calcul d'une fonction de coût pour chaque réseau de neurones artificiels testé ; 29 - une étape (204) de sélection du réseau de neurones artificiels (100) pour lequel la fonction de coût calculée répond à une condition de validation. 5 2. Procédé (200) selon l'une quelconque des revendications précédentes, caractérisé en ce que la fonction de coût est la somme d'une fonction de régularisation et de la moyenne des erreurs sur la base de données utilisée. 10 3. Procédé (200) selon la revendication 2, caractérisé en ce que la fonction de régularisation est le produit du paramètre de régularisation et de la somme au carré des normes des valeurs de coefficients de réseau. 4. Procédé (200) selon l'une quelconque des revendications précédentes, 15 caractérisé en ce que : - l'étape d'entraînement du premier réseau de neurones artificiels de test (110) comporte les sous-étapes suivantes : - Sélectionner différentes valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du paramètre 20 d'apprentissage ; - Pour chaque valeur du paramètre d'apprentissage sélectionnée, entraîner, sur le premier échantillon de la base de données d'entraînement, le premier réseau de neurones artificiels de test (110) avec la valeur sélectionnée comme paramètre d'apprentissage 25 et calculer la fonction de coût correspondante ; - Sélectionner une première valeur du paramètre d'apprentissage pour laquelle la fonction de coût correspondante répond à une condition de sélection ; - l'étape d'entraînement du deuxième réseau de neurones artificiels de 30 test (120) comporte les sous-étapes suivantes : 30 - Sélectionner différentes valeurs du paramètre d'apprentissage compris dans l'intervalle [al ; a2] de valeurs du paramètre d'apprentissage ; - Pour chaque valeur du paramètre d'apprentissage sélectionnée, 5 entraîner, sur le deuxième échantillon de la base de données d'entraînement, le deuxième réseau de neurones artificiels de test (120) avec la valeur sélectionnée comme paramètre d'apprentissage et calculer la fonction de coût correspondante ; - Sélectionner une seconde valeur du paramètre d'apprentissage pour 10 laquelle la fonction de coût correspondante répond à la condition de sélection. 5. Procédé (200) selon la revendication 4, caractérisé en ce que la fonction de coût répondant à la condition de sélection est la fonction de coût ayant la 15 décroissance la plus rapide. 6. Procédé (200) selon la revendication 4 ou la revendication 5, caractérisé en ce que l'étape de calcul de la nouvelle borne inférieure ai' et de la nouvelle borne supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre 20 d'apprentissage comporte les sous-étapes suivantes : - Comparer la première et la seconde valeur du paramètre d'apprentissage pour déterminer une valeur du paramètre d'apprentissage minimale et une valeur du paramètre d'apprentissage maximale ; 25 - Calculer la nouvelle borne inférieure ai' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage à partir de la valeur du paramètre d'apprentissage minimale ; - Calculer la nouvelle borne supérieure a2' de l'intervalle [al ' ; a2'] de valeurs du paramètre d'apprentissage à partir de la valeur du 30 paramètre d'apprentissage maximale. 31 7. Procédé (200) selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape (202) de définition d'un intervalle [r1 ; r2] de valeurs du paramètre de régularisation comporte les étapes suivantes : - Entraîner, sur la base de données d'entraînement, le troisième 5 réseau de neurones artificiels de test (130) et calculer la fonction de coût ; - Calculer un paramètre de régularisation optimal à partir de la fonction de coût précédemment calculée ; - Calculer la borne inférieure r1 et la borne supérieure r2 de l'intervalle 10 [r1 ; r2] de valeurs du paramètre de régularisation à partir du paramètre de régularisation optimal. 8. Procédé (200) selon la revendication 7, caractérisé en ce que le paramètre de régularisation optimal est la somme des normes au carré des gradients 15 de la fonction de coût par rapport à des coefficients de réseau, divisé par la somme des normes au carré des coefficients de réseau. 9. Procédé (200) selon l'une quelconque des revendications précédentes, caractérisé en ce que la fonction de coût répondant à la condition de 20 validation est la fonction de coût minimale. 10. Procédé (200) selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape (203) de génération, d'entraînement et de test de plusieurs réseaux de neurones artificiels, comporte plusieurs sous- 25 étapes : - Générer plusieurs réseaux de neurones artificiels en faisant varier la valeur de chaque paramètre dans l'intervalle de valeurs correspondant, chaque valeur de l'intervalle de valeurs correspondant étant équiprobable, entraîner sur la base de données d'entraînement et tester sur la base de données de 30 généralisation, lesdits plusieurs réseaux de neurones artificiels générés, et calculer la fonction de coût pour chacun desdits réseaux de neurones artificiels entraînés et testés ; 32 - En comparant les fonctions de coût précédemment calculées, mettre à jour, pour un intervalle de valeurs donné, les probabilités affectées à chaque valeur de l'intervalle de valeurs ; - Générer plusieurs autres réseaux de neurones artificiels en faisant varier la 5 valeur de chaque paramètre dans l'intervalle de valeurs correspondant, les valeurs de l'intervalle de valeurs correspondant n'étant plus toutes équiprobables, entraîner sur la base de données d'entraînement et tester sur la base de données de généralisation, lesdits autres réseaux de neurones artificiels et calculer la fonction de coût pour chacun desdits 10 autres réseaux de neurones artificiels entraînés et testés, la fonction de coût étant comparée aux fonctions de coût précédemment calculées pour mettre à jour, pour un intervalle de valeurs donné, les probabilités affectées à chaque valeur de l'intervalle de valeurs. 15