Partager :

Concepts Fondamentaux en Statistique

Réseaux de Neurones



Sommaire :

  • Réseaux de Neurones : Introduction
  • Les Tâches des Réseaux de Neurones
  • Types de Réseaux de Neurones
  • Fonctions d'Activation
  • Sélection des Variables d'Entrée
  • Complexité du Réseau de Neurones
  • Apprentissage du Réseau
  • Généralisation du Réseau
  • Transformation et Traitement a Posteriori des Données
  • Prévision des Données Futures et Déploiement
  • Ouvrages Conseillés
  • Ensembles et Sous-Échantillonnage


    Réseaux de Neurones : Introduction

    Au cours des deux dernières décennies, nous avons pu constater un développement fulgurant des réseaux de neurones. Cet intérêt a démarré avec l'application réussie de cette technique puissante pour des problématiques très différentes, et dans des domaines aussi divers que la finance, la médecine, la production industrielle, la géologie ou encore la physique.

    Le succès croissant des réseaux de neurones sur la plupart des autres techniques statistiques peut s'attribuer à leur puissance, leur polyvalence et à leur simplicité d'utilisation. Les réseaux de neurones sont des techniques extrêmement sophistiquées de modélisation et de prévision, en mesure de modéliser des relations entre des données ou des fonctions particulièrement complexes.

    La possibilité d'apprendre sur la base d'exemples constitue l'une des nombreuses fonctionnalités des réseaux de neurones qui permettent à l'utilisateur de modéliser ses données et établir des règles précises qui vont guider les relations sous-jacentes entre différents attributs de données. L'utilisateur des réseaux de neurones collecte des données représentatives puis il fait appel aux algorithmes d'apprentissage, qui vont apprendre automatiquement la structure des données. Si l'utilisateur n'a besoin d'aucune connaissance heuristique particulière sur la manière de sélectionner et préparer ses données, sur le bon réseau de neurones à choisir, ni sur la manière d'interpréter les résultats, le niveau de connaissance dont l'utilisateur a besoin pour réussir à appliquer des réseaux de neurones est nettement inférieur à celui qu'il doit posséder pour la plupart des techniques et outils traditionnels, en particulier lorsque les algorithmes de réseaux de neurones sont intégrés dans des programmes intelligents et bien conçus qui vont les prendre en main du début à la fin en à peine quelques clics.

    Utilisation des Réseaux de Neurones

    Les réseaux de neurones ont une remarquable faculté à donner un sens, extraire des règles et des tendances à partir de données compliquées, bruitées et imprécises. Ils peuvent s'utiliser pour extraire des modèles et détecter des tendances reposant sur des fonctions mathématiques compliquées qui sont trop difficiles, voire impossible, à modéliser à l'aide de techniques analytiques ou paramétriques traditionnelles. L'une des propriétés intéressantes des réseaux de neurones est qu'ils savent prévoir avec précision des données qui ne faisaient pas partie des données d'apprentissage, un processus connu sous le nom de généralisation. Compte tenu de ces caractéristiques et de leur domaine d'application étendu, les réseaux de neurones sont particulièrement bien adaptés à l'application de problématiques concrètes dans les domaines de la recherche scientifique, commerciale et industrielle. Ci-dessous, un certain nombre de domaines dans lesquels les réseaux de neurones ont été appliqués avec succès :

    •  Traitement du signal

    •  Maîtrise des processus

    •  Robotique

    •  Classification

    • Pré-traitement des données

    • Reconnaissance de formes

    •  Analyse de l'image et synthèse vocale

    •  Diagnostiques et suivi médical

    •  Marché boursier et prévisions

    •  Demande de crédits ou de prêts immobiliers

    L'Inspiration Biologique

    Les réseaux de neurones sont également assez séduisants dans la mesure où la plupart de leurs principes reposent sur des modèles intrinsèques de systèmes de neurones biologiques du traitement de l'information, qui ont conduit au développement de systèmes informatiques plus intelligents, applicables dans des problématiques statistiques et d'analyse des données. Les réseaux de neurones sont apparus lors des recherches sur l'intelligence artificielle, avec pour but de répliquer la tolérance à la faute et la “faculté d'apprendre” que l'on rencontre dans les systèmes biologiques de neurones, en modélisant la structure intrinsèque du cerveau (voir Patterson, 1996).

    Le cerveau est en réalité constitué d'un très grand nombre de neurones (de l'ordre de cent milliards), étroitement connectés entre eux par plusieurs milliers d'interconnexions pour chaque neurone. Chaque neurone est une cellule spécialisée, capable de créer, envoyer et recevoir des signaux électrochimiques. Comme toutes les cellules biologiques, les neurones possèdent un corps cellulaire, des prolongements apportant des informations au neurone (les dendrites), et un prolongement qui communique les informations recueillies par le neurone (les axones). L'axone d'une cellule est connectée aux dendrites d'une autre par l'intermédiaire d'une synapse. Lorsqu'un neurone est activé, il envoie un signal électrochimique au travers de l'axone. Cette impulsion traverse les synapses vers des milliers d'autres neurones, qui peuvent à leur tour, envoyer et donc propager le signal à l'ensemble du système neuronal (c'est-à-dire, le cerveau biologique). Un neurone ne va émettre une impulsion que si le signal transmis au corps cellulaire par les dendrites dépasse un certain seuil appelé seuil de déclenchement.

    Si un neurone n'est pas en mesure d'accomplir une tâche à lui tout seul, les résultats peuvent devenir spectaculaires dès lors qu'un grand nombre de neurones unissent leurs efforts. Ils peuvent ainsi créer ou accomplir diverses tâches cognitives extrêmement complexes comme l'apprentissage ou même le savoir. Par conséquent, grâce à un très grand nombre d'unités rudimentaires de traitement, le cerveau réussit à réaliser des tâches extrêmement complexes. Bien évidemment, nous n'avons pas abordé toute l'étendue de la complexité du cerveau, mais il est intéressant de noter que les réseaux de neurones artificiels sont en mesure d'obtenir des résultats remarquables en utilisant un modèle qui n'est finalement guère plus complexe que celui-ci.

    Les Fondements du Modèle Mathématique

    Schéma d'un système à un seul neurone. Les entrées x envoient des impulsions au neurone qui calcule alors une somme pondérée des signaux qu'il transforme à l'aide d'une fonction mathématique, f.

    Considérons ici la forme la plus simple des réseaux de neurones artificiels constitué d'un seul neurone avec un certain nombre d'entrées et une seule sortie (dans un soucis de simplification). Bien entendu, les réseaux de neurones artificiels que nous utilisons dans nos applications concrètes sont généralement constitués de beaucoup plus de neurones, mais ce modèle va nous aider à comprendre la logique de cette technologie.

    Le neurone reçoit des signaux en provenance de différentes sources. Ces sources proviennent généralement des données et sont appelées les variables d'entrée x, ou plus simplement les entrées. Les entrées arrivent au neurone par l'intermédiaire d'une connexion avec une certaine force, connue sous le nom de poids. L'importance d'un poids est représentée par une valeur. Plus la valeur d'un poids w est importante, plus l'intensité du signal entrant est forte, et donc, plus l'entrée correspondante est influente.

    Lors de la réception des signaux, une somme pondérée des entrées est calculée pour constituer la fonction d'activation f (ou plus simplement, l'activation) du neurone. L'activation du neurone est une fonction mathématique qui convertit la somme pondérée des signaux afin de produire la sortie du neurone. Par conséquent :

    La sortie d'un neurone est en réalité la prévision du modèle à un seul neurone pour une variable du jeu de données, et que nous appelons la cible t. Nous considérons qu'il existe une relation entre les entrées x et les cibles t, et c'est au réseau de neurones que revient la tâche de modéliser cette relation en reliant les entrées aux cibles par une fonction mathématique adaptée qui peut être apprise sur la base d'exemples issus du fichier de données.

    Réseaux de Neurones Non-Bouclés (ou Réseaux Feedforward)

    Le modèle évoqué ci-dessus est le modèle de réseaux de neurones le plus simple que nous puissions construire. Ce modèle nous a permis d'expliquer les principes et fonctionnalités élémentaires des réseaux de neurones et de décrire un neurone individuel. Toutefois, comme indiqué par ailleurs, un seul neurone n'est pas en mesure d'effectuer une tâche significative à lui seul. En revanche, de nombreux neurones interconnectés ont la possibilité d'atteindre un but spécifique. Examinons à présent d'autres architectures de réseaux de neurones qui sont utilisées dans des applications concrètes.

    Pour pouvoir être utilisé, un réseau doit posséder des entrées (qui portent les valeurs des variables étudiées dans le monde externe) et les sorties (qui constituent les prévisions, ou signaux de contrôle). Les entrées et les sorties correspondent aux nerfs moteurs et sensoriels au même titre que ceux qui relient les yeux aux mains. Toutefois, il peut exister des neurones cachés qui vont jouer un rôle interne dans le réseau. Il est nécessaire que les neurones d'entrée, les neurones cachés et les neurones de sortie soient connectés.

    Les réseaux de neurones les plus simples possèdent une structure feed-forward (ou non-bouclée) c'est-à-dire une structure dans laquelle les neurones ne sont connectés que dans un sens : les signaux provenant des entrées traversent les unités cachées pour éventuellement atteindre les unités de sortie. Une structure de ce type possède un comportement stable et une tolérance à la faute. Les réseaux de neurones non bouclés (feed-forward) sont de loin les plus efficaces pour aborder les problématiques concrètes et sont par conséquent les plus utilisés. Voir Bishop 1995 pour plus d'informations sur les différents types et architectures de réseaux de neurones.

    Un réseau feed-forward type possède des neurones organisés dans des couches distinctes. D'une manière générale, la couche d'entrée sert simplement à introduire les valeurs des variables d'entrée. Les neurones de la couche cachée et de la couche de sortie sont connectés chacun à toutes les unités de la couche précédente.

    À nouveau, il est possible de définir des réseaux partiellement connectés à certaines unités spécifiques de la couche précédente. Toutefois, dans la plupart des applications, les réseaux totalement connectés sont préférables, et c'est le type de réseau qui est proposé dans STATISTICA Réseaux de Neurones Automatisés. Lors de l'exécution du réseau, les valeurs des variables d'entrée sont envoyées dans les unités d'entrée, puis les unités de la couche cachée et de la couche de sortie sont progressivement exécutées en ordre séquentiel. Chacune de ces unités va calculer une valeur d'activation en utilisant la somme pondérée des sorties des unités de la couche précédente. La valeur d'activation est alors envoyée à la fonction d'activation qui va produire la sortie du neurone. Lorsque l'ensemble du réseau a été exécuté, les neurones de la couche de sortie deviennent les sorties de l'ensemble du réseau.

    Les Tâches des Réseaux de Neurones

    Tout comme la plupart des modèles statistiques, les réseaux de neurones sont en mesure d'effectuer différentes catégories de tâches, notamment de la régression et de la classification. Les tâches de régression visent à mettre en relation un certain nombre de variables d'entrée x avec un ensemble de résultats continus t (les variables cible). Par opposition, les tâches de classification visent à affecter des observations aux classes d'une variable cible catégorielle en fonction d'un ensemble de valeurs d'entrée. Dans la section suivante, nous allons nous intéresser plus particulièrement à la régression.

    La Régression et la Famille des Outils Non-Paramétriques (Boîte Noire)

    L'approche la plus directe, et sans doute la plus simple de l'inférence statistique consiste à considérer que nous pouvons modéliser les données en utilisant une forme fermée de fonction pouvant contenir un certain nombre de paramètres (poids) ajustables que nous pouvons estimer, de sorte que le modèle peut nous donner la meilleure explication possible de nos données. Par exemple, considérons une problématique de régression dans laquelle nous cherchons à modéliser ou approcher une variable cible unique, t à l'aide d'une fonction linéaire de la variable d'entrée, x. La fonction mathématique que nous utilisons pour modéliser ces relations est donnée simplement par une transformation linéaire f à deux paramètres, connus sous le nom d'ordonnées à l'origine, a et de pente, b,

    Notre tâche consiste à trouver des valeurs de a et de b qui vont permettre de faire le lien entre une entrée x et la variable t. Cette problématique est connue sous le nom de régression linéaire.

    Un autre exemple de régression paramétrique est le problème quadratique où la relation entrées-sorties s'exprime par la forme quadratique suivante :

     

    Le schéma ci-dessus montre la différence entre les modèles paramétriques et les modèles non-paramétriques. Dans les modèles paramétriques, la relation entre les entrées et les sorties s'exprime par une fonction mathématique de forme fermée. Par opposition, dans les modèles non-paramétriques, la relation entre les entrées et les sorties est pilotée par un approximateur (comme un réseau de neurones) que nous ne pouvons pas représenter par une fonction mathématique standard.

    Les exemples ci-dessus font partie de la catégorie dite des méthodes paramétriques. Elles reposent au sens strict sur l'hypothèse selon laquelle t est lié à x de manière connue a priori, ou peuvent être suffisamment bien approchées par une forme mathématique fermée, par exemple, une droite ou une fonction quadratique. Une fois que nous avons choisi la fonction mathématique, tout ce qu'il nous reste à faire est d'ajuster les paramètres du modèle supposé afin qu'ils ajustent (prévoient) au mieux t pour une instance donnée de x.

    Par opposition, les modèles non-paramétriques ne font généralement aucune hypothèse quant à la relation entre x et t. En d'autres termes, ces modèles supposent que la véritable fonction sous-jacente qui gouverne la relation entre x et t n'est pas connue a priori, d'où le terme de boîte noire. Ils vont donc chercher une fonction mathématique (qui généralement ne possède pas une forme fermée) capable d'approcher convenablement la représentation de x et de t. Les exemples les plus courants de modèles non-paramétriques sont les fonctions polynomiales avec des paramètres adaptables et les réseaux de neurones.

    Dans la mesure où nous ne faisons aucune hypothèse par rapport à la forme fermée de la relation entre x et t, une méthode non-paramétrique doit être suffisamment flexible pour modéliser un spectre relativement large de relations fonctionnelles. Par exemple, plus l'ordre du polynôme sera élevé, plus le modèle sera flexible. De la même manière, plus un réseau de neurones possédera de neurones, plus le modèle sera puissant.

    Les modèles paramétriques possèdent l'avantage d'être simples à utiliser et ils produisent des résultats faciles à interpréter. Toutefois, ils présentent l'inconvénient d'avoir une moindre flexibilité. Par conséquent, leur utilité va dépendre strictement de la manière dont la relation supposée entre les entrées et les sorties va survivre à la confrontation avec la réalité. Malheureusement, la plupart des problèmes concrets ne se limitent pas à une forme fermée, et la représentation paramétrique s'avère souvent trop restrictive. C'est la raison pour laquelle les statisticiens et les ingénieurs considèrent souvent l'utilisation de modèles non-paramétriques, et en particulier les réseaux de neurones, comme alternative aux méthodes paramétriques.

    Les Réseaux de Neurones et les Tâches de Classification

    Les réseaux de neurones, comme la plupart des outils statistiques, peuvent également s'utiliser pour résoudre des problématiques de classification. Contrairement aux problématiques de régression, la classification par les réseaux de neurones va affecter l'appartenance des individus aux classes, à une entrée x. Par exemple, si le fichier de données possède trois catégories {A, B, C}, un réseau de neurones va affecter chacune des entrées à l'une de ces trois classes. L'information relative à l'appartenance des individus aux différentes classes est alors transmise à la variable cible, t. C'est la raison pour laquelle, dans une analyse de classification, la variable cible doit toujours être catégorielle. Une variable est dite catégorielle si (a) elle ne comporte que des valeurs discrètes qui (b) ne peuvent être classées dans un ordre hiérarchique. Par exemple, une variable cible {HOMME, FEMME} est une variable catégorielle à deux modalités. En revanche, une variable cible constituée de valeurs-date n'est pas véritablement catégorielle dans la mesure où nous pouvons la classer dans un ordre chronologique (numérique).

    Types de Réseaux de Neurones

    Les Réseaux de Neurones Perceptron Multicouches

    Schéma d'un réseau de neurones PMC2 totalement connecté à trois entrées, quatre unités cachées (neurones), et trois sorties. Remarque : la couche cachée et la couche de sortie possèdent un terme de biais. Le biais est un neurone qui émet un signal d'intensité 1.

    Les Perceptrons multicouches (PMC) constituent sans conteste l'architecture la plus fréquemment utilisée actuellement.  Nous devons cette architecture à Rumelhart et McClelland (1986) et vous trouverez des informations détaillées sur les perceptrons multicouches dans la plupart des ouvrages relatifs aux réseaux de neurones (Bishop, 1995). Chaque neurone va en fait calculer une somme pondérée de ses entrées qu'il va transmettre à une fonction de transfert f afin de produire ses sorties. Pour chaque couche du réseau de neurones dans un réseau PMC, il existe également un terme de biais. Un biais est un neurone dans lequel la fonction d'activation est en permanence égale à 1. Comme pour les autres neurones, un biais se connecte aux neurones de la couche précédente par l'intermédiaire d'un poids, généralement appelé seuil. Les neurones et les biais sont organisés dans une structure de couches non-bouclées (feed-forward). Le réseau peut donc s'interpréter simplement comme un modèle entrée-sortie, les poids et les seuils étant les paramètres libres (ajustables) du modèle. Ces réseaux sont en mesure de modéliser des fonctions même très complexes, où le nombre de couches et le nombre d'unités dans chaque couche va déterminer la complexité de la fonction. Lors de la conception des Perceptrons Multicouches, il est important de bien spécifier le nombre de couches cachées ainsi que le nombre d'unités dans ces couches (Bishop, 1995). Mais il est également important de bien choisir les fonctions d'activation et les méthodes d'apprentissage.

    Schéma représentant la différence entre des réseaux de neurones PMC et RBF dans un espace à deux dimensions pour les données d'entrée. Une manière de séparer les clusters d'entrées consiste à tracer les plans adaptés pour séparer les différentes classes entre elles. Cette méthode est utilisée par les réseaux PMC. Une autre approche consiste à ajuster chaque classe de données d'entrée à l'aide de fonctions Gaussiennes de base.

    Les Réseaux de Neurones à Fonctions à Base Radiale

    Schéma d'un réseau de neurones RBF à trois entrées, quatre fonctions à base radiale et trois sorties. Remarque : par opposition aux réseaux PMC, seules les unités de sortie possèdent un terme de biais.

    Un autre type d'architecture de réseaux de neurones proposé dans STATISTICA Réseaux de Neurones Automatisés est connu sous le nom de Fonctions à Base Radiale (RBF). Les réseaux RBF constituent probablement le type de réseaux de neurones le plus utilisé après les PMC. À de nombreux égards, les réseaux RBF s'apparentent aux réseaux PMC. Tout d'abord, ils possèdent également des connexions unidirectionnelles vers l'avant (feed-forward) et chaque neurone est entièrement connecté aux unités de la couche suivante. Les neurones sont organisés selon une topologie en couche avec une dynamique feed-forward (des entrées vers les sorties, sans boucle). Il n'en reste pas moins que les modèles de réseaux de neurones RBF sont fondamentalement différents dans la manière dont ils modélisent la relation entre les entrées et les sorties. Tandis que les réseaux PMC modélisent la relation entrée-sortie en une seule étape, un réseau RBF va partitionner ce processus d'apprentissage en deux étapes indépendantes et bien distinctes. Au cours de la première étape, et grâce aux neurones de la couche caché connus sous le nom de fonctions à base radiale, les réseaux RBF vont modéliser la distribution de probabilités des données d'entrée. Au cours d'une seconde étape, le réseau RBF va apprendre comment mettre en relation des données d'entrée x à une variable cible t. Remarque : contrairement aux réseaux PMC, le terme de biais d'un réseau de neurone RBF n'est connecté qu'aux neurones de sortie. En d'autres termes, les réseaux RBF ne possèdent pas de terme de biais reliant les entrées aux unités radiales de base. Dans les sections suivantes et dans un soucis de simplification, nous regrouperons sous une dénomination commune de "poids", à la fois les poids et les seuils sauf s'il est nécessaire de faire la distinction.

    Comme pour les PMC, la fonction d'activation des entrées est la fonction identité. Les signaux de ces entrées sont transmis à chaque unité radiale de base dans la couche cachée puis nous calculons la distance Euclidienne entre le vecteur d'entrée et un vecteur de prototypes pour chaque neurone. Ce vecteur de prototypes correspond à la position de la fonction de base dans l'espace des données d'entrée. Chaque neurone de la couche de sortie va alors calculer une somme pondérée de ses entrées qu'il va transmettre à une fonction de transfert afin de produire ses sorties. Ainsi, et contrairement aux PMC, les réseaux RBF possèdent deux types de paramètres, (1) la position et la dispersion radiale des fonctions de base et (2) les poids qui permettent de connecter ces fonctions de base aux unités de sortie.

    Fonctions d'Activation

    Comme indiqué précédemment, un perceptron multicouches (MLP) est un réseau de neurones avec une architecture feed-forward et des connexions unidirectionnelles complètes entre les différentes couches. Toutefois, ce n'est pas suffisant pour définir les propriétés d'un réseau. Outre les architectures de réseaux, les neurones d'un réseau possèdent des fonctions d'activation qui vont transformer les signaux émis par les neurones de la couche précédente à l'aide d'une fonction mathématique. Cette fonction est la fonction d'activation elle-même, et elle peut profondément influer sur la performance du réseau. Il est donc important de bien choisir de type de fonction d'activation des neurones dans un réseau de neurones.

    Les neurones d'entrée ne possèdent généralement aucune fonction d'activation. En d'autres termes, ils utilisent la fonction identité, ce qui signifie que les signaux d'entrée ne sont nullement transformés. Ils sont au contraire combinés avec une somme pondérée (par les poids de la couche entrée-cachée) et sont ensuite transmis aux neurones de la couche suivante (généralement appelée la couche cachée). Pour un PMC à deux couches (PMC2), il est conseillé d'utiliser la fonction tangente hyperbolique même si d'autres types sont également possibles comme les fonctions logistique sigmoïde et exponentielle. Les fonctions d'activation des neurones de sortie sont, dans la plupart des cas, la fonction identité mais ce choix peut varier d'une tâche à l'autre. Par exemple, pour des problématiques de classification, nous utilisons la fonction softmax (Bishop 1995) alors qu'en régression, nous utilisons la fonction identité (avec une fonction tanh pour les neurones cachés).

    STATISTICA Réseaux de Neurones Automatisés propose les fonctions d'activation de neurones suivantes pour les neurones cachés et les neurones de sortie :

     

    Fonction

    Définition

    Description

    Intervalle de définition

    Identité

    L'activation du neurone est transmise directement en sortie

    Sigmoïdale logistique

    Une courbe en "S"

    Tangente hyperbolique

    Une courbe sigmoïdale similaire à la dfonction logistique. Produit généralement de meilleurs résultats que la fonction logistique en raison de sa symétrie. Idéale pour les perceptrons multicouches, en particulier, pour les couches cachées

    Exponentielle

    La fonction exponentielle négative

    Sinus

    S'utilise éventuellement si les données sont distribuées radialement. N'est pas utilisé par défaut

    Softmax

    Essentiellement utilisé (mais pas uniquement) pour des tâches de classification. Permet de construire des réseaux de neurones avec plusieurs sorties normalisées ce qui le rend particulièrement adapté à la création de classifications par les réseaux de neurones avec des sorties probabilistes.

    Gaussienne

    Ce type de fonction d'activation isotropique Gaussienne n'est utilisé que par les unités cachées d'un réseau de neurones RBF également connu sous le nom de fonctions à base radiale. Les paramètres de position (également connus sous le nom de vecteurs de prototypes) et de dispersion sont équivalents aux poids de la couche entrée-cachée d'un réseau de neurones PMC

     

    Sélection des Variables d'Entrée

    Le nombre d'unités d'entrée et d'unités de sortie est déterminé par le problème. La variable cible est censée dépendre des entrées donc son choix est clair. Ce n'est en revanche pas aussi évident pour le choix des entrées. Il peut précisément exister une certaine incertitude quand aux entrées à utiliser. Il faut savoir que le choix d'un nombre suffisant de bons prédicteurs est d'une importance cruciale pour la modélisation prédictive (c'est-à-dire la mise en relation d'une variable cible et d'un ensemble d'entrées) et en fait, pour toutes les formes d'analyses statistiques. Si nous intégrons des entrées qui n'ont pas véritablement de lien avec la variable cible, nous pouvons par exemple détériorer sans nous en rendre compte la performance du réseau de neurones. À l'inverse, un fichier de données comportant un nombre insuffisant d'entrées pourra ne jamais être modélisé de façon précise par un réseau de neurones.

    Complexité du Réseau de Neurones

    La complexité des réseaux de neurones (et en particulier le PMC2, perceptron à deux couches, et les Fonctions à Base Radiale) se mesure par le nombre de neurones dans la couche cachée. Plus un réseau de neurones comporte de neurones, plus le système sera flexible mais également complexe. Des réseaux de neurones flexibles permettent d'approcher des fonctions de n'importe quelle complexité entre les variables d'entrée et les variables cible. Par conséquent, pour modéliser un fichier de données, il est important d'utiliser des réseaux de neurones relativement flexibles, contenant suffisamment de neurones dans la couche cachée. Le choix du nombre optimal de neurones dépend en grande partie du domaine de la problématique, mais d'une manière générale, il est lié au nombre d'entrées.

    Apprentissage du Réseau

    Apprentissage des Réseaux de Neurones

    Une fois que nous avons choisi l'architecture du réseau de neurones, c'est-à-dire le type de réseau de neurones, les fonctions d'activation, etc..., nous devons déterminer les autres paramètres ajustables du modèle que sont les poids qui permettent de connecter les entrées aux neurones cachées et les neurones cachés aux neurones de sortie. Le processus d'ajustement de ces paramètres de telle sorte que le réseau soit en mesure d'approcher la relation fonctionnelle sous-jacente entre les entrées x et les cibles t est connu sous le nom d'apprentissage. C'est au cours de ce processus que le réseau de neurones va apprendre à modéliser les données par des exemples. Bien qu'il existe différentes manières de réaliser l'apprentissage des réseaux de neurones, la plupart d'entre elles utilisent des algorithmes numériques qui sont en mesure d'effectuer la tâche au cours d'un nombre fini d'itérations. Nous avons recours à ces algorithmes itératifs essentiellement en raison de la nature fortement non-linéaire des modèles de réseau de neurones pour lesquels une solution en forme fermée n'est généralement pas disponible. Un algorithme d'apprentissage itératif va ajuster graduellement les poids du réseau de neurones de telle sorte que pour toute donnée d'entrée x, le réseau de neurones est en mesure de produire une sortie aussi proche que possible de t.

    Initialisation des Poids

    Puisque l'apprentissage des réseaux de neurones fait appel à un algorithme itératif au cours duquel les poids sont ajustés, il faut tout d'abord initialiser les poids avec des valeurs de départ raisonnables. Car ce sont non seulement la qualité de la solution mais également le temps nécessaire pour préparer le réseau (apprentissage) qui sont en jeu. Il est important d'initialiser les poids en utilisant de petites valeurs pour les poids de sorte que, au début de l'apprentissage, le réseau fonctionne en mode linéaire, puis qu'il augmente les valeurs de ses poids afin d'ajuster les données avec suffisamment de précision.

    STATISTICA Réseaux de Neurones Automatisés intègre deux méthodes aléatoires pour initialiser les poids en utilisant la distribution normale et la distribution uniforme. La méthode normale va initialiser les poids en utilisant des valeurs distribuées normalement, dans un intervalle dont la moyenne est égale à zéro et l'écart-type est égal à un. La méthode uniforme va quant à elle affecter les valeurs des poids dans un intervalle compris entre 0 et 1.

    Apprentissage du Réseau de Neurones - Apprentissage par les Exemples

    Un réseau de neurones n'est pas en mesure de faire des prévision s'il n'a pas été entraîné préalablement sur des exemples connus sous le nom de données d'apprentissage. Les données d'apprentissage sont généralement constituées de couples entrée-cible qui sont présentés au réseau les uns après les autres lors de la phase d'apprentissage afin d'apprendre. Vous pouvez considérer les instances des entrées comme des "questions" et les valeurs cible comme des "réponses". Ainsi, à chaque fois qu'un couple d'entrée-cible est présenté au réseau de neurones, ce dernier connaît la réponse pour une question donnée. Il n'en demeure pas moins qu'à chaque instance, le réseau de neurones doit faire une supposition à l'aide des valeurs actuelles des poids, et ses performances sont alors testées en utilisant un critère connu sous le nom de fonction d'erreur. Si la performance n'est pas adéquate, les poids du réseau sont alors ajustés afin de produire une réponse exacte (ou du moins, plus exacte) par rapport à la précédente tentative.

    Remarque : La performance de la régression se calcule dans SANN comme la corrélation entre la valeur de sortie et la valeur prévue. La performance de la classification dans SANN performance comme le pourcentage d'observations correctement classées.

    D'une manière générale, ce processus d'apprentissage intègre un certain bruitage (c'est-à-dire que les réponses du réseau peuvent être parfois plus exactes lors du cycle précédent de l'apprentissage par rapport au cycle actuel), mais en moyenne, l'importance des erreurs s'amenuise à mesure que l'apprentissage du réseau progresse. L'ajustement des poids s'effectue par le biais d'un algorithme d'apprentissage, qui comme un professeur, va apprendre au réseau de neurones à choisir ses poids afin d'obtenir de meilleures prévisions pour chacun des couples d'exemples entrée-cible du fichier de données.

    Les étapes ci-dessus constituent l'apprentissage. Du point de vue des calculs, il repose sur la série d'étapes ci-dessous :

      1. Présenter au réseau un couple entrée-cible.

      2. Calculer les prévisions du réseau pour les cibles.

      3. Utiliser la fonction d'erreur pour calculer la différence entre les prévisions (sorties) du réseau et les valeurs cible. Reprendre les étapes 1 et 2 jusqu'à ce que tous les couples entrée-cible aient été présentés au réseau.

      4. Utiliser l'algorithme d'apprentissage afin d'ajuster les poids du réseau de telle sorte qu'il produise de meilleures prévisions à chaque couple entrée-cible. Remarque : les étapes 1 à 5 constituent un seul cycle d'apprentissage ou itération. Le nombre de cycles nécessaire pour entraîner un modèle de réseaux de neurones n'est pas connu a priori mais peut être défini dans le cadre du processus d'apprentissage.

      5. Répéter à nouveau les étapes 1 à 5 pendant un certain nombre de cycles d'apprentissage ou d'itérations jusqu'à ce que le réseau commence à produire des résultats suffisamment fiables (c'est-à-dire des sorties qui se trouvent assez proches des cibles compte tenu des valeurs d'entrée). Une processus d'apprentissage type pour les réseaux de neurones est constitué de plusieurs centaines de cycles.

    La Fonction d'Erreur

    Comme indiqué précédemment, la fonction d'erreur permet d'évaluer la performance d'un réseau de neurones au cours de l'apprentissage. Vous pouvez considérer qu'il s'agit d'un examinateur qui évalue les performances d'un étudiant. La fonction d'erreur indique dans quelle mesure les prévisions du réseau sont proches des valeurs cible et donc, quel ajustement doit être apporté aux poids par l'algorithme d'apprentissage à chaque itération. La fonction d'erreur représente donc d'une certaine manière les yeux et les oreilles de l'algorithme d'apprentissage pour savoir si le réseau est performant ou non compte tenu de l'état actuel de l'apprentissage (et donc, quel ajustement doit être apporté aux valeurs de ses poids).

    Toutes les fonctions d'erreur utilisées pour l'apprentissage des réseaux de neurones doivent intégrer une certaine mesure des distances entre les valeurs cible et les prévisions correspondant aux entrées. Une approche courante consiste à utiliser la fonction d'erreur dite de somme des carrés. Dans ce cas, le réseau va apprendre une fonction discriminante. L'erreur de la somme des carrés est simplement donnée par la somme des différences entre les valeurs cibles et les sorties prévues définies pour l'ensemble d'apprentissage. Ainsi :

    N représente le nombre d'observations d'apprentissage, yi représente la prévision (sortie du réseau) et ti  représente de la valeur cible pour la i-ième observation. Plus la différence entre les prévisions du réseau et les valeurs cible sera importante, plus la valeur de l'erreur sera grande, ce qui nécessite alors un ajustement plus important des poids par l'algorithme d'apprentissage.

    La fonction d'erreur de la somme des carrés s'utilise essentiellement dans les problématiques de régression mais elle peut également s'utiliser pour des tâches de classification. Toutefois, pour réaliser une véritable classification par les réseaux de neurones, il faut utiliser une autre fonction d'erreur que la somme des carrés, c'est-à-dire la fonction d'erreur de l'entropie croisée.

    C'est grâce à cette fonction d'erreur combinée à la fonction d'activation des sorties softmax que nous pouvons interpréter les sorties d'un réseau de neurones sous la forme de probabilités d'appartenance des individus à une classe.

    La fonction d'erreur d'entropie croisée est donnée par la formule suivante :

    qui considère que les variables cible suivent une distribution multinomiale. Au contraire, l'erreur de la somme des carrés va modéliser la distribution des valeurs cible comme une fonction de densité de probabilités normale.

    Remarques : l'erreur d'apprentissage de la régression se calcule à partir de l'erreur de la somme des carrés définie sur l'ensemble d'apprentissage. Les calculs sont réalisés en utilisant les valeurs cible transformées (ramenés sur un intervalle de 0 à 1). De la même manière, la mesure des erreurs de test et de validation se définit comme la somme des carrés des erreurs individuelles définie respectivement sur les échantillons de test et de validation. SANN va également calculer les coefficients de corrélation pour les échantillons d'apprentissage, de test et de validation. Ces quantités sont calculées pour las valeurs cible originales (non transformées).

    Pour les tâches de classification, SANN va utiliser l'erreur dite d'entropie croisée (voir ci-dessus) pour l'apprentissage du réseau de neurones mais les critères de sélection permettant d'évaluer le meilleur réseau reposent en fait sur le taux de classification, qui peut aisément s'interpréter par rapport à la fonction d'erreur basée sur l'entropie.

    L'Algorithme d'Apprentissage

    Les réseaux de neurones sont des outils fortement non-linéaires qui utilisent généralement des techniques itératives pour l'apprentissage. Les techniques les plus conseillées pour l'apprentissage des réseaux de neurones sont les algorithmes BFGS (Broyden-Fletcher-Goldfarb-Shanno) et Scaled Conjugate Gradient --une amélioration subtile des gradients conjugués, permettant de supprimer la minimisation unidimensionnelle-- (see Bishop 1995). Ces méthodes fournissent généralement de meilleurs résultats que les algorithmes plus classiques comme la Descente de Gradient mais il sont également généralement plus gourmands en termes de mémoire et nécessitent davantage de calculs. Ces techniques peuvent toutefois nécessiter moins d'itérations pour l'apprentissage d'un réseau de neurones compte tenu de leur taux de convergence rapide et d'un critère de recherche plus intelligent.

    L'Apprentissage des Réseaux de Neurones Perceptrons Multicouches

    STATISTICA Réseaux de Neurones Automatisés propose un certain nombre d'options pour l'apprentissage des réseaux de neurones PMC. Parmi celle-ci, les méthodes BFGS (Broyden-Fletcher-Goldfarb-Shanno), SCG (Scaled Conjugate Gradient), et la Descente de Gradient.

    L'Apprentissage des Réseaux de Neurones à Fonctions à Base Radiale

    Les méthodes utilisées pour l'apprentissage des réseaux à fonctions à base radiale sont radicalement différentes de celles utilisées pour les PMC. Ceci, en raison de la nature des réseaux RBF avec leurs neurones cachés (fonctions de base) qui forment un modèle de mélange de Gaussiennes permettant d'estimer la densité de probabilité des données d'entrée (voir Bishop 95). Pour les réseaux RBF avec des fonctions d'activation linéaires, le processus d'apprentissage s'effectue en deux temps. Au cours d'une première phase, nous allons établir la position et la dispersion radiale des fonctions de base en utilisant les données d'entrée (aucune cible n'est considérée à cette étape). Dans une seconde phase, nous définissons les poids connectant les fonctions radiales aux neurones de sortie. Pour identifier les fonctions d'activation des sorties, cette deuxième étape de l'apprentissage fait appel à une inversion matricielle simple. Par conséquent, ce calcul est exact et n'a nul besoin de recourir à un processus itératif.

    Soulignons ici que l'apprentissage linéaire n'est possible que si la fonction d'erreur est la somme des carrés et que les fonctions d'activation des sorties sont des fonctions identité. Si ce n'est pas le cas, c'est-à-dire dans le cas de la fonction d'erreur d'entropie croisée et avec des fonctions d'activation des sorties qui ne sont pas la fonction identité, nous devons nous reporter sur un algorithme itératif, par exemple, BFGS (Broyden-Fletcher-Goldfarb-Shanno), afin de déterminer les poids de la couche cachée-sortie afin d'achever le processus d'apprentissage du réseau de neurones RBF.

    Généralisation du Réseau

    Généralisation et Performance

    La performance des réseaux de neurones se mesure par la manière dont ils savent prévoir des données inconnues (un ensemble de données inconnues est un ensemble de données n'ayant pas été utilisé lors de la phase d'apprentissage). Ce processus est connu comme la généralisation. La question de la généralisation est en fait une question majeure qui se pose lors de l'apprentissage des réseaux de neurones. Ce phénomène s'exprime par une tendance au surajustement des données d'apprentissage s'accompagnant d'une difficulté à prévoir de nouvelles données. Même s'il est toujours possible de trouver (surajuster) un réseau de neurones suffisamment complexe et flexible en mesure de produire un ajustement parfait (c'est-à-dire avec une erreur d'apprentissage nulle), le véritable problème consiste à réussir à construire un réseau capable également de bien prévoir les nouvelles données. En définitive, il existe une relation entre le surajustement des données d'apprentissage et le mauvais pouvoir de généralisation. Par conséquent, lors de l'apprentissage des réseaux de neurones, nous devons toujours tenir compte des questions de performance et de généralisation.

    Données de Test et Interruption Prématurée

    Schéma de l'apprentissage d'un réseau de neurones avec interruption prématurée. Nous poursuivons l'apprentissage du réseau de neurones pendant un certain nombre de cycles tant que l'erreur de test continue à diminuer. Dès que l'erreur de test commence à augmenter, l'apprentissage prend fin.

    Différentes techniques permettent de lutter contre le problème de surajustement en apportant une réponse au problème de la généralisation. La plus courante consiste à utiliser des données de test. Les données de test sont en fait un échantillon de réserve qui n'est jamais utilisé pour l'apprentissage. Il est en revanche utilisé pour valider la manière dont un réseau se comporte pour modéliser la relation entre les entrées et les valeurs cible à mesure que l'apprentissage progresse. L'essentiel du travail permettant d'évaluer les performances en modélisation neuronale repose sur les différentes approches des données de test. L'optimisation d'un réseau de neurones s'effectue à l'aide d'un ensemble d'apprentissage. Un ensemble de test distinct est ensuite utilisé pour interrompre l'apprentissage afin de limiter le phénomène de surajustement. Le processus d'interruption de l'apprentissage du réseau de neurones en vue d'éviter le surajustement et d'améliorer le pouvoir de généralisation est connu sous le nom d'interruption prématurée (early stopping). Cette technique modifie sensiblement l'algorithme d'apprentissage afin de :

    1.      Présenter au réseau un couple de valeurs entrées-cible issu de l'ensemble d'apprentissage.

    2.      Calculer les prévisions du réseau pour les valeurs cible.

    3.      Utiliser la fonction d'erreur pour calculer la différence entre les prévisions (sorties) du réseau et les valeurs cible.

    4.      Continuer avec les étapes 1 et 2 jusqu'à ce que tous les couples de valeurs entrées-cible de l'ensemble d'apprentissage aient été présentées au réseau.

    5.      Utiliser l'algorithme d'apprentissage pour ajuster les poids du réseau afin d'améliorer les prévisions pour toutes les valeurs entrée-cible.

    6.      Envoyer l'ensemble du jeu de test au réseau, effectuer les prévisions, et calculer la valeur de l'erreur de test du réseau.

    7.      Comparer l'erreur de test à celle de l'itération précédente. Si l'erreur continue de diminuer, l'apprentissage se poursuit ; dans le cas contraire, l'apprentissage prend fin.

    Remarque : le nombre de cycles nécessaires pour l'apprentissage d'un modèle de réseau de neurones avec des données de test et un arrêt prématuré peut varier. En théorie, nous devons poursuivre l'apprentissage de réseau pendant autant de cycles que nécessaire, tant que l'erreur de test diminue.

    Données de Validation

    Parfois, les données de test seules peuvent ne pas apporter une preuve suffisante du bon pouvoir de généralisation d'un réseau de neurones entraîné. Par exemple, il est tout à fait concevable qu'une bonne performance sur l'échantillon de test soit juste le fruit du hasard. Pour nous assurer que ce n'est pas le cas, nous recourons souvent à un autre jeu de données connu sous le nom d'échantillon de validation. Tout comme l'échantillon de test, l'échantillon de validation n'est jamais utilisé pour l'apprentissage du réseau de neurones. Nous l'utilisons en revanche à l'issue de l'apprentissage comme une vérification supplémentaire de la performance du modèle. Si la performance du réseau est tout à fait correct à la fois sur l'échantillon de test et sur l'échantillon de validation, nous pouvons raisonnablement considérer que le réseau possède un bon pouvoir de généralisation sur des données inconnues.

    Régularisation (Modération des Poids)

    Outre l'utilisation de données de test pour l'arrêt prématuré, une autre technique est fréquemment utilisée pour améliorer la généralisation des réseaux de neurones ; il s'agit de la régularisation. Cette méthode consiste à ajouter un terme à la fonction d'erreur qui va généralement pénaliser (dissuader d'utiliser) des valeurs importantes pour les poids.

    L'un des principaux types de régularisation est connu sous le nom de modération des poids ou weight decay (Bishop 1995). La modération des poids consiste à modifier la fonction d'erreur du réseau en pénalisant les poids importants par l'ajout d'un terme d'erreur supplémentaire, Ew (c'est également le cas de la fonction d'erreur d'entropie croisée)

    représente la constante de modération des poids et w représente les poids du réseau (sans biais). Plus est grand, plus les poids sont pénalisés. Par conséquent, l'utilisation d'une constante de modération des poids trop importante peut nuire à la performance du réseau en encourageant le sous-ajustement, et c'est souvent par tâtonnement que vous parviendrez à déterminer le bon facteur de modération des poids pour un domaine particulier de problèmes. Le pouvoir de généralisation du réseau peut dépendre pour une large part de la constante de modération des poids. Une approche pour choisir la constante de modération des poids consiste à entraîner plusieurs réseaux avec des constantes différentes de modération des poids puis à estimer l'erreur de généralisation de chacun ; vous pouvez alors choisir la constante de modération des poids qui minimise l'erreur estimée de généralisation.

    L'approche ci-dessus va encourager le développement de poids plus petits, ce qui va avoir tendance à résoudre le problème de surajustement en limitant les possibilités du réseau à former de grandes courbures, qui sont de nature à améliorer potentiellement les performances de généralisation du réseau. Nous obtenons en fin de compte un réseau qui est un bon compromis entre performance et importance des poids.

    Il faut savoir que le modèle élémentaire de modération des poids décrit précédemment n'est pas toujours la meilleure manière d'imposer la régularisation. Il est important de garder à l'esprit que différents groupes de poids dans le réseau vont généralement nécessiter des constantes différentes de modération des poids. Bien que chaque problème soit différent, il est souvent nécessaire pour un certain groupe de poids dans le réseau d'utiliser des valeurs d'échelle différentes pour une modélisation efficace des données. Un exemple de ce type de groupe sont les poids des unités d'entrées-cachées et des unités cachée-sorties. C'est la raison pour laquelle STATISTICA Réseaux de Neurones Automatisés va utiliser des valeurs distinctes de modération des poids pour régulariser ces deux groupes de poids.

    Transformation et Traitement a Posteriori des Données

    Tous les neurones d'un réseau de neurones utilisent des entrées numériques et produisent des sorties numériques. La fonction d'activation d'une unité neuronale peut accepter des valeurs d'entrée de n'importe quel ordre de grandeur et produire des sorties dans un intervalle limité strictement. Bien que les entrées puissent se situer dans n'importe quel ordre de grandeur, il existe un effet de saturation qui fait que l'unité n'est sensible qu'à des entrées situées dans un intervalle relativement limité. Par exemple, considérons une fonction logistique. Dans ce cas, la sortie est dans l'intervalle (0,1), et l'entrée n'est sensible que dans un intervalle guère plus large que (-1,+1). Par conséquent, pour un vaste intervalle de valeurs d'entrées situées en dehors de l'intervalle (-1, +1), la sortie d'un neurone logistique est sensiblement la même. Cet effet de saturation va sévèrement limiter la possibilité d'un réseau à capturer la relation entrées-cibles sous-jacente.

    Nous pouvons résoudre le problème ci-dessus en limitant l'intervalle numérique des entrées originales et des variables cible. Ce processus est connu sous le nom de réduction, qui constitue l'une des formes les plus répandues de transformation des données. STATISTICA Réseaux de neurones Automatisés va réduire les variables d'entrée et les variables cible à l'aide de transformations linéaires de sorte que les valeurs originales minimum et maximum de chacune des variables soit projetées dans un intervalle (0, 1).

    Mais il existe également d'autres raisons importantes de standardiser les variables. Parmi celles-ci, citons la modération des poids. La standardisation des entrées et des cibles va généralement permettre de rendre plus efficace la régularisation de modération des poids. Mais nous pouvons également citer comme autre justification à la standardisation des variables, l'échelle originale des variables et les unités de mesures utilisées. Les variables du fichier de données original possèdent fréquemment des ordres de grandeur différents (c'est-à-dire qu'elle possèdent des variances différentes). La raison peut résider dans l'utilisation d'unités de mesure différentes ou simplement tenir à la nature même des variables. Il est clair que l'étendue numérique d'une variable particulière parmi d'autres, n'est pas nécessairement un bon indicateur de l'importance de cette variable.

    Prévision des Données Futures et Déploiement

    Vous pouvez utiliser un réseau de neurones déjà entraîné pour réaliser des prévisions sur de nouvelles données avec des variables ayant été générées par les mêmes processus et relations sous-jacentes que le jeu de données original qui a été utilisé pour l'apprentissage du modèle. La possibilité de généraliser est une caractéristique essentielle des réseaux de neurones, et le processus qui consiste à utiliser des réseaux de neurones pour réaliser des prévisions futures est connu sous le nom de déploiement. Vous pouvez re-déployer les modèles générés par STATISTICA Réseaux de Neurones Automatisés à tout moment grâce aux langages PMML (Predictive Markup Model Language), C/C++ et SAS

    Il faut toutefois garder une question importante à l'esprit lorsque vous déployez des modèles de réseaux de neurones. Il ne faut pas chercher à extrapoler, c'est-à-dire introduire dans le modèle de réseau de neurones des valeurs d'entrées qui diffèrent de façon significative de celles qui ont été utilisées pour l'apprentissage du réseau. Ce phénomène est connu sous le nom d'extrapolation, qu'il est fortement déconseillé d'utiliser.

    Ouvrages Conseillés

    Bishop, C. (1995). Neural Networks for Pattern Recognition. Oxford: University Press.

    Carling, A. (1992). Introducing Neural Networks. Wilmslow, UK: Sigma Press.

    Fausett, L. (1994). Fundamentals of Neural Networks. New York: Prentice Hall.

    Haykin, S. (1994). Neural Networks: A Comprehensive Foundation. New York: Macmillan Publishing.

    Kohonen, T. (1982). Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43:59-69.

    Patterson, D. (1996). Artificial Neural Networks. Singapore: Prentice Hall.

    Ripley, B.D. (1996). Pattern Recognition and Neural Networks. Cambridge University Press.

    Rumelhart, D.E., and J.L. McClelland (1986), Parallel Distributed Processing, Volume 1. The MIT Press. Foundations.

    Tryon, R. C. (1939). Cluster analysis. New York: McGraw-Hill.

    Ensembles et Sous-Échantillonnage

    Une approche importante pour améliorer la performance est de former des ensembles de réseaux de neurones. Les prédictions des réseaux membres sont pondérées (ou combinées par voting) afin de former la prédiction de l'ensemble. Fréquemment, la formation d'ensemble est combinée avec le sous-échantillonnage du jeu de données. Cette approche peut améliorer considérablement les performances de généralisation. Le sous-échantillonnage peut également être utile pour l'estimation de l'amélioration des performances de généralisation du réseau.

    Pour expliquer pourquoi le sous-échantillonnage et les ensembles sont si utiles, il est bon de formuler le processus de formation du réseau de neurones en termes statistiques (Bishop, 1995). Nous considérons le problème comme celui de l'estimation d'une fonction non-linéaire inconnue, où le bruit est additif, sur la base d'un jeu de données d'exemple limité, D. Il existe plusieurs sources d'erreur dans les prédictions de notre réseau de neurones. Tout d'abord, et inévitablement, même un réseau "parfait" qui modélise exactement la fonction sous-jacente produirait des erreurs dues au bruit. Cependant, il y a également une erreur due au fait que nous avons besoin d'ajuster le modèle de réseau de neurones en utilisant un échantillon fini du jeu de données, D. Cette erreur peut être divisée en deux composantes, le biais du modèle et la variance. Le biais correspond à l'erreur moyenne qu'une procédure d'un modèle d'apprentissage particulier fera à travers différent jeux de données (tirées d'une fonction de distribution inconnue). La variation s'explique par la sensibilité de la procédure de modélisation à un choix particulier de jeu de données. 

    Nous pouvons confronter le biais à la variance. À un extrême, on peut arbitrairement choisir une fonction qui ignore complètement les données. On a ainsi une variance nulle, mais un biais vraisemblablement élevé, puisque nous n'avons pas du tout pris en compte réellement les aspects connus du problème. À l'extrême opposé, nous pouvons choisir une fonction hautement complexe qui peut s'ajuster à chaque point d'un jeu de données particulier et, par conséquent, n'a aucun biais, mais une variance élevée, car cette fonction complexe change radicalement de forme afin de représenter précisément les points d'un jeu de données. Avec un grand biais, les solutions à faible variance peuvent avoir une faible complexité (par exemple, les modèles linéaires), tandis qu'avec un petit biais, les solutions à forte variance sont très complexes. Dans les réseaux de neurones, les modèles de faible complexité ont un plus petit nombre d'unités.

    Comment fonctionne cette liaison entre des ensembles et des sous-échantillons ? Nous ne divisons pas nécessairement le jeu de données en sous-ensembles pour l'apprentissage, la sélection et le test. Intuitivement, c'est regrettable, car toutes les données seront utilisées pour l'apprentissage. Si nous ré-échantillonnons, en utilisant à chaque fois une répartition différente des données, nous pouvons construire de multiples réseaux de neurones, et toutes les données seront utilisées pour l'apprentissage dans au moins l'un d'entre eux. Si l'on forme ensuite les réseaux dans un ensemble et qu'on moyenne les prévisions, un résultat extrêmement utile survient. Une moyenne à travers les modèles permet de réduire la variance sans augmenter le biais. On peut dire que nous pouvons nous permettre de construire des modèles avec de grand biais que nous ne tolérerions autrement (par exemple, une augmentation de la complexité des modèles) du fait que la moyenne d'ensemble peut ensuite atténuer la variance qui en résultent.

    Les performances de généralisation d'un ensemble peuvent être meilleures que celles du meilleur réseau de neurones, bien que cela ne dépendent de la bonne manière que les autres réseaux sont dans l'ensemble. Malheureusement, il n'est pas possible de démontrer si c'est toujours le cas pour un ensemble donné. Cependant, il y a quelques éléments rassurants qui incitent à conserver l'utilisation des ensembles.

    Premièrement, il peut être démontré (Bishop, 1995) que, sur l'hypothèse que les erreurs des membres de l'ensemble ont une moyenne égale à zéro et ne sont pas corrélées, l'ensemble a réduit l'erreur par un facteur N, où N est le nombre de membres. Dans la pratique, bien sûr, ces erreurs ne sont pas corrélées. Un corollaire important est qu'un ensemble est plus efficace lorsque les membres sont faiblement corrélés, et on pourrait intuitivement penser que c'est le cas si divers types de réseaux et de structures sont utilisés.

    Deuxièmement, et peut-être plus important encore, il peut être démontré que l'erreur attendue de l'ensemble est au moins aussi bonne que l'erreur moyenne attendue des membres, et généralement meilleure. En règle générale, une certaine réduction utile de l'erreur se produit. Il y a bien sûr un coût en vitesse de traitement, mais pour de nombreuses applications ce n'est pas particulièrement problématique.

    Il existe deux approches disponibles pour le sous-échantillonnage.

    L'approche la plus simple est le sous-échantillonnage aléatoire, où les groupes d'apprentissage, de sélection, et de test sont tout simplement tirées au sort dans le jeu de données, en gardant la taille des sous-ensembles constante.

    La deuxième approche est l'échantillonnage par bootstrap. Avec le bootstrap, un jeu de données d'apprentissage est constitué par échantillonnage avec remise à partir du jeu de données disponible. Dans l'échantillonnage avec remise, les observations sont tirées au hasard dans le jeu de données, avec équiprobabilité, et chaque observation peut être sélectionnée n'importe quel nombre de fois. Généralement, une série bootstrap a le même nombre d'observation que le jeu de données, mais ce n'est pas une règle. En raison de la procédure d'échantillonnage, il est probable que certaines observations originales ne soient pas sélectionnées, et elles peuvent être utilisées pour former un jeu de test, alors que les autres observations ont été dupliquées.

    Sur le principe, la procédure bootstrap va répliquer, dans la mesure du possible avec des données limitées, le tirage de plusieurs jeux de données issus de la distribution originale. Une fois encore, l'effet peut être de générer un certain nombre de modèles avec un biais faible et de moyenner la variance. Les ensembles peuvent aussi servir à niveler et réduire le biais. Si l'on inclut différents types de réseaux et configurations dans un ensemble, il se peut que les différents réseaux fassent des erreurs systématiques dans les différentes parties de l'espace d'entrée. Moyenner ces réseaux configurés différemment peut éliminer une partie de ce biais.