INTRODUCTION AUX RESEAUX DE NEURONES Résumé Un réseau de neurones non bouclé es
INTRODUCTION AUX RESEAUX DE NEURONES Résumé Un réseau de neurones non bouclé est constitué par plusieurs opérateurs algébriques élémentaires appelés neurones et réalise une fonction paramétrée, non linéaire par rapport aux entrées et aux paramètres. La famille des réseaux de neurones à une couche de neurones cachés possède la propriété d'approximation parcimonieuse. Cela signifie qu'elle est capable d'approcher n'importe quelle fonction bornée et suffisamment régulière, en utilisant moins de paramètres ajustables que les familles de fonctions usuelles telles que les polynômes. Dans l'optique d'une modélisation statistique, on utilise les réseaux de neurones pour approcher la fonction de régression du processus. L'intérêt de la parcimonie est alors de limiter le nombre d'exemples nécessaires pour obtenir une bonne estimation de la fonction de régression. Par opposition aux modèles linéaires par rapport aux paramètres, pour lesquels la solution des moindres carrés s'obtient en résolvant un système d'équations, l'ajustement des paramètres d'un réseau de neurones (appelé aussi "apprentissage") nécessite la mise en œuvre d'algorithmes itératifs. À cet égard, il convient de bien distinguer l'étape de calcul du gradient de la fonction de coût par rapport aux paramètres (par exemple par "rétropropagation du gradient") de l'étape de modification des paramètres (méthodes du gradient simple, de quasi-Newton, de Levenberg-Marquardt, etc.). 1.1 Introduction L'objectif de ce chapitre est double : il s'agit tout d'abord de rappeler les définitions de base relatives aux réseaux de neurones ainsi que les propriétés mathématiques de certains d'entre eux. Ensuite, nous nous attacherons à détailler certains aspects de leur mise en œuvre, et plus particulièrement de leur apprentissage. Un réseau de neurones est une fonction paramétrée qui est la composition d'opérateurs mathématiques simples appelés neurones formels (ou plus simplement neurones) pour les distinguer des neurones biologiques. Afin de préciser ces notions, nous commencerons par présenter les définitions relatives aux neurones avant de détailler différentes architectures de réseaux de neurones. 1.1.1 Les neurones On appelle neurone une fonction algébrique non linéaire, paramétrée, à valeurs bornées, de variables réelles appelées entrées. Par soucis de commodité, on commet fréquemment un abus de langage en désignant par le terme "neurone linéaire" une fonction linéaire (et plus généralement affine). On a pris l'habitude de représenter un neurone formel comme indiqué sur la figure 1.1. x1 x2 xn f y Figure 1.1 : Un neurone réalise une fonction non linéaire bornée y = f(x1, ..., xn, q1, ..., qp) où les {xi} sont les entrées et les {qj} sont les paramètres Les paramètres dont dépend la valeur de y peuvent intervenir de deux manières : • ils peuvent intervenir dans la fonction f elle-même, • ils peuvent intervenir dans l'argument de la fonction f. Les réseaux de fonctions radiales ou d'ondelettes (cf. [Oussar 98]) entrent dans la première catégorie : les paramètres ajustables sont le centre et la largeur (pour les fonctions radiales), ou le centre et la dilatation (pour les ondelettes). Dans ce travail, nous avons toujours utilisé des neurones ou fonctions qui appartiennent à la seconde catégorie : l'argument de la fonction f est une combinaison linéaire des entrées du neurone (à laquelle on ajoute un terme constant, le "biais"), pondérées par les paramètres {qj}, qui sont fréquemment appelés "poids synaptiques" (ou plus simplement "poids") en référence à l'origine biologique des réseaux de neurones. Cette combinaison linéaire est appelée "potentiel". v = q0 + qi xi S i = 1 n (1.1) Le biais q0 peut être envisagé comme le coefficient de pondération de l'entrée n° 0, dont la valeur est fixée à 1 : v = qi xi S i = 0 n (1.2) La valeur de la sortie du neurone est donc : y = f (v) = f qi xi S i = 0 n (1.3) La fonction f est appelée "fonction d'activation" ; les fonctions sigmoïdes et en particulier la tangente hyperbolique sont les plus utilisées. Dans le présent mémoire, un neurone qui possède : • un potentiel défini par la somme pondérée des entrées, y compris le biais, • et une fonction d'activation sigmoïdale, est représenté comme indiqué sur la figure 1.2 (a), la figure 1.2 (b) représentant un neurone linéaire. Les fonctions réalisées par les neurones à fonction d'activation non linéaire, décrits ci-dessus, peuvent être combinées en un réseau de neurones. Dans un tel réseau, les entrées d'un neurone sont soit les entrées du réseau, soit les sorties d'autres neurones. 1 x1 xn y y=th(v) q0 q1 qn 1 x1 xn y y=v q0 q1 qn Figure 1.2 : Symboles de neurones à fonctions d'activation sigmoïde (a) et linéaire (b) Les valeurs des poids du réseau sont en général déterminées par apprentissage ; certaines d'entre elles peuvent être fixées à l'avance si une étude préalable du problème le recommande. Il existe deux types d'architectures de réseaux de neurones : • les réseaux non bouclés (ou statiques), • les réseaux bouclés (ou dynamiques). 1.1.2 Les réseaux de neurones non bouclés Un réseau de neurones non bouclé réalise une (ou plusieurs) fonctions algébriques de ses entrées par composition des fonctions réalisées par chacun de ses neurones. Dans un tel réseau, le flux de l'information circule des entrées vers les sorties sans "retour en arrière". Ainsi, si l'on représente le réseau comme un graphe dont les nœuds sont les neurones et les arêtes les connexions entre ceux-ci, le graphe d'un réseau non bouclé est acyclique. Théoriquement, rien n'interdit de construire un réseau possédant plusieurs sorties. Cependant, dans la pratique, il est généralement souhaitable de décomposer un problème à Ns sorties en Ns problèmes à 1 sortie. En effet, sauf cas particulier1, il n'y a pas de lien entre les différentes grandeurs que l'on cherche à modéliser. Dans ce travail, nous ne considérons donc délibérément que des réseaux statiques ne possédant qu'une seule sortie. Par abus de langage, le neurone dont la sortie est la sortie du réseau est appelé "neurone de sortie". Le nombre de possibilités de connexions de neurones pour former un réseau est infini. Nous ne présentons ici que les deux types de réseaux de neurones les plus fréquemment utilisés : • les réseaux complètement connectés, • les réseaux à couche. Le réseau de neurones à une couche cachée et une sortie linéaire est un cas particulier de ce dernier type. La figure 1.3 représente l'architecture d'un réseau complètement connecté. Il y a une hiérarchie parmi les neurones cachés : chacun d'entre eux est connecté aux entrées ainsi qu'aux sorties des neurones cachés précédents. Pour caractériser ce réseau, indépendamment des fonctions d'activations qui peuvent différer suivant les neurones, on peut utiliser deux formules équivalentes : • réseau complètement connecté à Nc neurones, • ou réseau complètement connecté à Nc-1 neurones cachés et 1 neurones de sortie. 1 Le contre-exemple le plus fréquent est celui de l'utilisation des réseaux de neurones comme classifieurs, dont les sorties sont des estimations des probabilités d'appartenance d'un objet à une classe ; la somme des sorties doit alors être égale à 1. 1 x1 xNe y 1 Nc 2 3 Figure 1.3 : Réseau de neurones non bouclé complètement connecté à Ne entrées et Nc neurones C'est le type de réseau de neurones non bouclé le plus général possible car il possède, à nombre de neurones donné, le plus grand nombre possible de coefficients étant donné l'interdiction de cycles à l'intérieur du graphe. Une autre façon d’assembler les neurones entre eux consiste à constituer des couches de neurones en interdisant toute connexion entre neurones de la même couche. Suivant les cas, on pourra décider d’éliminer ou non les connexions entre deux couches non consécutives. Parmi ces dernières, les connexions directes entre les entrées et la sortie (appelés termes directs) jouent un rôle particulier car elles permettent de prendre en considération, par la structure même du réseau une influence linéaire de certaines entrées sur la sortie du modèle. La figure 1.4 présente un réseau de neurones à Ne entrées et une couche possédant Nc neurones cachés sans termes directs. 1 x1 xNe y 1 Nc 2 Figure 1.4 : Réseau de neurones non bouclé à Ne entrées et une couche de Nc neurones cachés Historiquement (voir par exemple [Dreyfus 97]), les réseaux de neurones à couches sont aussi appelés perceptrons multicouches. L’architecture représentée sur la figure 1.4, avec des neurones cachés sigmoïdaux et un neurone de sortie linéaire est particulièrement utilisée car elle possède des propriétés mathématiques intéressantes, que nous présenterons au paragraphe 1.2. 1.2 Propriété fondamentale des réseaux de neurones non bouclés La propriété fondamentale des réseaux de neurones est l’approximation parcimonieuse. Cette expression traduit deux propriétés distinctes : d’une part, les réseaux de neurones sont des approximateurs universels et, d’autre part, une approximation à l’aide de réseau de neurones nécessite, en général, moins de paramètres ajustables que les approximateurs usuels. 1.2.1 L’approximation universelle La propriété d’approximation universelle a été démontrée par [Cybenko 89] et [Funahashi 89] et peut s’énoncer de la façon suivante : Toute fonction bornée suffisamment régulière peut être approchée uniformément, avec une précision arbitraire, dans un domaine fini de l’espace de ses variables, par un réseau de neurones comportant une couche de uploads/Ingenierie_Lourd/ chapitre-1 1 .pdf
Documents similaires
-
13
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 09, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.4767MB