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 NeuronesLes 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
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ématiqueSché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 ClassificationLes 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 MulticouchesSché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 RadialeSché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 NeuronesUne 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 PoidsPuisque 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 ExemplesUn 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 :
Présenter au réseau un couple entrée-cible.
Calculer les prévisions du réseau pour les cibles.
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.
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.
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.
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 MulticouchesSTATISTICA 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 RadialeLes 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 PerformanceLa 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éeSché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 ValidationParfois, 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)
où
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.
Effectuer une Régression sur les Données d'un Système 4-Barres
Introduction. Cet exemple illustre la manière d'effectuer une analyse de régression à l'aide de STATISTICA Réseaux de Neurones Automatisés (SANN). En particulier, il décrit la manière de choisir et conserver des modèles en utilisant les algorithmes les plus récents et les plus perfectionnés, capables de classer différents modèles alternatifs en fonction des performances et de leur adéquation à une tâche particulière, en fonction de critères de recherche et de configurations spécifiques.
Cet exemple repose sur un fichier de données décrivant les dynamiques d'un mécanisme à quatre barres. L'objectif du projet consiste à créer l'architecture d'un modèle de réseau de neurones permettant de décrire au mieux les relations entre les variables d'entrée et les variables cible qui déterminent le fonctionnement du mécanisme.
Cet exemple va chercher à modéliser les données en utilisant laRecherche Automatisée de Réseaux (RAR) de STATISTICA bien qu'il reste tout à fait possible également d'utiliser la stratégie desRéseaux de Neurones Personnalisés (RNP).
À mesure que nous progresserons dans cet exemple, vous pourrez avoir besoin de vous reporter à la rubrique Réseaux de Neurones : Introduction qui contient une introduction aux concepts fondamentaux des réseaux de neurones ainsi qu'une liste d'ouvrages introductifs de références.
Remarque. Les résultats reportés ici peuvent différer de l'analyse que vous menez dans la mesure où les algorithmes de réseaux de neurones utilisent des générateurs de nombres aléatoires pour déterminer les valeurs initiales des poids (points de départ) des réseaux de neurones, avec des solutions parfois assez différentes (minima locaux) à chaque fois que vous relancez l'analyse. En outre, si vous modifiez l'amorce du générateur de nombres aléatoires utilisé pour créer vos échantillons d'apprentissage, de test et de validation, les résultats peuvent également être très différents.
Objectifs. L'objectif de cet exemple est de démontrer l'aptitude de l'application de Recherche Automatisée de Réseaux à modéliser des données de nature non-linéaire.
Définition du problème. Le problème consiste à trouver une architecture de réseau de neurones permettant de mettre en relation précisément les variables cible de notre exemple de mécanisme à quatre barres aux variables d'entrée. Le processus va donc consister à entraîner un nombre fini d'architecture de réseaux de neurones, et de conserver celui qui est le mieux adapté à la tâche pour un certain nombre de critères de recherche et de conditions prédéfinis.
Fichier de données.
Référence : Théorie des Machines et des Mécanismes, Shigley et Ulcker, p. 57-59
Le fichier de données est un échantillon du mécanisme dit à quatre barres (voir le schéma ci-dessus). L'illustration montre les principales variables du modèle physique, en particulier la longueur des quatre barres R1, R2, R3, R4 ainsi que l'angle T2 en variables d'entrée, et les quatre variables de sortie T3, T4, H1 et V1. Les variables de sortie sont liées aux entrées par les équations suivantes :
Comme le montrent les équations ci-dessus, les relations entre les variables
d'entrée et de sortie sont fortement non-linéaires. L'objectif de la Recherche Automatisée de Réseaux (RAR)
va donc consister à déterminer avec autant de précision que possible la
relations sous-jacente entre chaque valeur cible et la valeur d'entrée
correspondante. Remarque : outre les variables cible T3,
T4, H1
et V1, la variable de l'angle intermédiaire peut s'exprimer en fonction de R1, R2,
R3, R4
et T2. Chaque variable se sortie
est donc une fonction de
. Dans cet exemple, nous nous
contenterons d'utiliser les variables d'entrée initiales au lieu de
.
Nous allons modéliser les variables ci-dessus à l'aide de la Recherche Automatisée de Réseaux (RAR) pour mettre en relation les variables de sortie (cible) et les variables d'entrée.
Démarrer l'analyse. Dans le menu Fichier, sélectionnez la commande Ouvrir des Exemples afin d'accéder à la boîte de dialogue Ouvrir un Fichier de Données STATISTICA. Double-cliquez sur le dossier Fichiers de données, puis ouvrez le fichier 4bar linkage.sta. Un extrait du fichier est illustré ci-dessous.
Dans le menu Statistiques ou dans le menu Data Mining, sélectionnez la commande Réseaux de Neurones Automatisés afin d'accéder à la boîte de dialogue SANN - Analyse/Déploiement (Panneau de Démarrage), dans laquelle vous pouvez choisir le type d'analyse à réaliser. Dans cet exemple, sélectionnez une Régression dans la liste Nouvelle analyse.
Cliquez sur le bouton OK afin d'accéder à la boîte de dialogue SANN - Sélection des Données, qui offre diverses options pour spécifier les sous-ensembles d'apprentissage, de test et de validation ainsi que les variables à utiliser dans l'analyse. Nous allons également choisir notre stratégie pour l'analyse.
Pour commencer, sélectionnons l'onglet Base et cliquons sur le bouton Variables afin d'accéder à une boîte de dialogue standard de sélection de trois listes de variables. Sélectionnez les variables T3, T4, H1 et V1 comme Sorties continues, et les variables initiales R1, R2, R3, R4 et T2 comme Entrées continues.
Cliquez sur le bouton OK afin d'accepter cette sélection de variables, fermez la boîte de dialogue et retournez à la boîte de dialogue SANN - Sélection des données. Sélectionnez à présent l'onglet Échantillonnage. La performance d'un réseau de neurones se mesure par sa faculté à se généraliser sur des données inconnues (c'est-à-dire, dans quelle mesure il sait prévoir des données qui n'ont pas été utilisées lors de l'apprentissage). La question de la généralisation est en fait une question essentielle dans l'apprentissage des réseaux de neurones. En cas de sur-apprentissage des données d'apprentissage (c'est-à-dire lorsque les données sont ajustées de façon tellement complète que même le bruit aléatoire contenu dans un fichier de données particulier est également reproduit), il devient difficile au réseau de faire des prévisions précises en utilisant de nouvelles données.
Une manière de combattre ce problème consiste à répartir les données en deux (voire trois) sous-ensembles : un échantillon pour l'apprentissage, un échantillon de test et un échantillon pour la validation. Ces échantillons sont alors utilisés pour 1) l'apprentissage du réseau, 2) la vérification, ou test, des performances des réseaux en cours d'apprentissage, et 3) un test final de validation afin de déterminer dans quelle mesure le réseau sait prévoir de “nouvelles” données.
Dans SANN, l'affectation des observations aux différents sous-ensembles peut se faire au hasard ou sur la base d'une variable spécifique du fichier de données. Le fichier 4bar linkage.sta contient justement une variable permettant de répartir les données en deux sous-ensembles. Nous utiliserons cette variable pour spécifier un sous-ensemble d'apprentissage et un sous-ensemble de test.
Dans l'onglet Échantillonnage de la boîte de dialogue SANN - Sélection des données, sélectionnez le bouton d'option Utiliser une variable d'échantillonnage puis cliquez sur le bouton Éch. d'apprentissage afin d'accéder à la boîte de dialogue Variable d'échantillonnage.
Dans cette boîte de dialogue, cliquez sur le bouton Variable avec Identifiants d'Échantillons afin d'accéder à une boîte de dialogue standard de sélection de variables. Sélectionnez la variable Sous-Ensemble puis cliquez sur le bouton OK. La variable Éch. contient deux codes - Apprentissage et Validation - que vous pouvez visualiser en double-cliquant dans le champ Code de l'échantillon d'apprentissage afin d'appeler la boîte de dialogue Variable.
Sélectionnez la modalité Apprentissage pour l'échantillon d'apprentissage puis cliquez sur le bouton OK afin de quitter cette boîte de dialogue et retourner à la boîte de dialogue Variable d'échantillonnage. Sélectionnez le bouton d'option Actif dans le cadre Statut. La boîte de dialogue devrait à présent avoir l'aspect suivant.
Cliquez sur le bouton OK afin de revenir dans l'onglet Échantillonnage. Cliquez à présent sur le bouton Échantillon de test, et spécifiez la variable et le code du sous-ensemble de test. Veillez à bien activer cette variable et ce code en sélectionnant le bouton d'option Actif dans le cadre Statut. La boîte de dialogue devrait maintenant avoir cet aspect :
Après avoir spécifié la variable et le code, cliquez sur le bouton OK afin de revenir dans l'onglet Échantillonnage. La variable et le code sélectionnés pour chaque sous-ensemble d'échantillonnage apparaissent à côté du bouton correspondant.
Stratégies de construction des modèles. SANN propose deux stratégies de recherche de réseaux de neurones que vous pouvez utiliser pour générer vos modèles : Recherche Automatisée de Réseaux (RAR) et Réseaux de Neurones Personnalisés (RNP). L'option RAR permet de créer des réseaux de neurones avec différent paramétrages et configurations tout en nécessitant un minimum de spécifications de votre part. La RAR vous aide à créer et tester des réseaux de neurones pour vos problèmes d'analyse des données et de prévision. L'application va concevoir un certain nombre de réseaux pour résoudre le problème, puis sélectionner ceux qui représentent le mieux la relation entre les variables d'entrée et de sortie (c'est-à-dire les réseaux qui permettent d'obtenir la meilleure corrélation entre les valeurs cible et les sorties (prévisions) du réseau de neurones).
À l'inverse, l'outil Réseaux de Neurones Personnalisés (RNP) vous permet de choisir vous-même l'architecture des réseaux individuels et de définir précisément les spécifications des algorithmes d'apprentissage. Vous pouvez utiliser les RNP pour entraîner plusieurs modèles de réseaux de neurones avec exactement les mêmes spécifications mais une initialisation aléatoire des poids différente. De cette manière, chaque réseau va trouver une des solutions possibles posées des réseaux de neurones avec une architecture et une configuration identiques. En d'autres termes, chaque réseau identifié va vous fournir une solution sous-optimale (c'est-à-dire un minimum local).
Pour sélectionner une stratégie, sélectionnez l'onglet Base dans la boîte de dialogue SANN - Sélection des données. Dans notre exemple, sélectionnons le bouton d'option Recherche Automatisée de Réseaux (RAR) dans le cadre Stratégie, puis cliquons sur le bouton OK afin d'accéder à la boîte de dialogue SANN - Recherche Automatisée de Réseaux (RAR).
Avant d'entraîner nos réseaux, attardons-nous un instant sur les options disponibles dans cette boîte de dialogue.
Types de réseaux. Vous pouvez paramétrer la RAR de sorte qu'elle entraîne à la fois des réseaux perceptrons multicouches (PMC) et des réseaux de fonctions à base radiale (RBF). Le perceptron multicouches constitue la forme la plus répandue de réseau. Il requiert un apprentissage itératif qui peut être assez long, mais ces réseaux restent relativement compacts, s'exécutent rapidement une fois l'apprentissage terminé, et pour la plupart des problématiques, fournissent de meilleurs résultats que d'autres types de réseaux. Les réseaux de fonctions à base radiale tendent à être plus lents et plus grands que les perceptrons multicouches, et affichent généralement de moins bonnes performances. Ils sont par ailleurs généralement moins efficaces que les perceptrons multicouches si vous avez un grand nombre de variables d'entrée (ils sont plus sensibles à l'inclusion d'entrées inutiles). En outre, les réseaux RBF ne sont pas très bien adaptés pour modéliser des données avec des entrées catégorielles, puisque les fonctions de base des réseaux RBF appartiennent à un espace continu alors que les entrées catégorielles sont, par définition, discrètes.
Complexité du réseau. Il est intéressant d'observer le nombre d'unités cachées (la complexité du réseau). Par exemple, si vous exécutez une RAR à plusieurs reprises sans trouver de réseau satisfaisant, vous pouvez envisager d'augmenter l'étendue de la complexité des réseaux testés par la RAR. À l'inverse, si vous pensez qu'un certain nombre de neurones est adapté à votre problématique particulière, vous pouvez éliminer le facteur de complexité de l'algorithme de RAR en définissant simplement le paramètre Min. unités cachées égal au paramètre Max. unités cachées. De cette manière, vous allez aider la RAR à se focaliser sur d'autres paramètres du réseau lors de sa recherche de la meilleurs architecture et des meilleures spécifications du réseau, qui, contrairement au nombre d'unités cachées, ne sont pas connues a priori. Remarque : la complexité du réseau est définie séparément pour chaque type de réseau.
Réseaux à entraîner, réseaux à conserver. Vous pouvez modifier le nombre de réseaux à entraîner et à conserver dans l'onglet Base. Vous pouvez spécifier le nombre de réseau que vous souhaitez créer (la seule restriction est imposée par les ressources de votre ordinateur) et choisir de retenir le nombre de réseaux que vous souhaitez parmi ceux-ci à l'issue de l'apprentissage. Si vous conservez plusieurs réseaux, vous pourrez les utiliser pour réaliser des prévisions, à la fois pour les réseaux pris individuellement, et pour les ensembles. Les prévisions d'un ensemble de réseaux bien entraînés sont généralement meilleures que les prévisions de ses membres individuels (réseaux).
Pour conserver tous les modèles entraînés, vous pouvez affecter la même valeur au champ Réseaux à entraîner et au champ Réseaux à conserver. Toutefois, il est généralement conseillé de définir un nombre de Réseaux à conserver inférieur au nombre de Réseaux à entraîner. De cette manière, SANN ne va conserver qu'un sous-ensemble des réseaux ayant affiché les meilleures performances sur le fichier de données. La RAR est un algorithme de recherche qui vous aide à créer et tester des réseaux de neurones pour vos problèmes d'analyse des données et de prévision. L'application va concevoir un certain nombre de réseaux pour résoudre le problème, copier ces réseaux dans l'ensemble de réseaux, puis sélectionner les réseaux donnant les meilleurs résultats. C'est la raison pour laquelle il est conseillé il est conseillé de fixer le nombre de Réseaux à entraîner à une valeur aussi élevée que possible, même si cette opération peut nécessiter un certain temps pour que SANN effectue les calculs sur de gros fichiers de données avec de nombreuses variables et observations et/ou des réseaux avec un grand nombre d'unités cachées. SANN va ainsi explorer en profondeur l'espace des architectures et configurations de réseaux et sélectionner ceux qui permettent de modéliser au mieux les données d'apprentissage.
Fonctions d'activation du PMC. Sélectionnez l'onglet Fonctions d'activation du PMC afin d'accéder à la liste des fonctions d'activation disponibles pour la couche cachée et de sortie des réseaux PMC (remarque : cet onglet n'est accessible que si vous avez coché l'option Perceptron multicouches (PMC) dans le cadre Types de réseaux de l'onglet Base).
Bien que la plupart des configurations par défaut de la RAR soient calculées à partir des propriétés des données, il est parfois nécessaire de modifier ces configurations et d'utiliser d'autres paramètres que ceux par défaut. Par exemple, vous pouvez souhaiter que l'algorithme de recherche intègre la fonction Sinus (qui n'est pas sélectionnée par défaut) comme fonction d'activation possible des couches cachée et/ou de sortie. Cette fonction d'activation est intéressante lorsque les données sont distribuées de façon radiale. À l'inverse, il se peut que vous sachiez (à partir de vos expériences antérieures) que les réseaux avec des fonction d'activation Tangente hyperbolique pour la couche cachée ne donnent pas des résultats remarquables sur votre fichier de données particulier. Dans ce cas, il vous suffit d'exclure cette fonction d'activation en désélectionnant simplement l'option Tangente hyperbolique.
Vous ne pouvez spécifier les fonctions d'activation des Neurones cachés et des Neurones de sortie que pour un réseau PMC. Ces options ne s'appliquent pas aux réseaux RBF. Remarque : vous pouvez également empêcher la RAR de rechercher les meilleures fonctions d'activation des couches cachées et/ou de sortie en ne sélectionnant qu'une seule case à cocher parmi les nombreuses proposées. Par exemple, si vous choisissez comme fonction d'activation de la couche cachée une fonction Logistique, la RAR va alors produire des réseaux avec ce type de fonction d'activation uniquement. D'une manière générale, vous ne devez toutefois limiter les paramètres de recherche de la RAR que si vous avez de bonnes raisons, logiques et fondées, pour le faire. Sauf à disposer d'informations a priori sur vos données, il faut toujours utiliser des paramètres de recherche aussi étendus que possible pour la RAR (pour toutes les propriétés du réseau).
Remarque. Pour les tâches de régression, la fonction d'erreur Entropie croisée (située dans l'onglet Base) n'est pas disponible puisque ce type de fonction d'erreur ne peut modéliser que des données cible de classification (qui constituent une distribution multinomiale). En outre, l'onglet Fonctions d'activation du PMC n'apparaît que si vous avez coché l'option Perceptron multicouches (PMC).
Apprentissage des modèles. Sélectionnez tout d'abord l'onglet Base, et dans le cadre Réseaux à entraîner/conserver, fixez le nombre de Réseaux à entraîner à 100. S'il n'est pas toujours possible, notamment avec de gros fichiers de données, de créer un grand nombre de réseaux, il faut toujours fixer cette valeur à un niveau aussi élevé que possible. Dans notre cas, les calculs ne devraient pas prendre plus que quelques minutes. Dans la mesure où nous voulons tester des réseaux PMC et des réseaux RBF, cochez les deux options Perceptron multicouches (PMC) et Fonction à base radiale (RBF).
Cliquez ensuite sur le bouton Apprentissage. Lors de l'apprentissage, la boîte de dialogue Apprentissage des réseaux de neurones en cours va apparaître. Cette boîte de dialogue fournit une information synthétique concernant les réseaux qui sont construits, en particulier le type de réseau (PMC ou RBF), les fonctions d'activation, le cycle d'apprentissage ainsi que les termes d'erreur correspondants.
À l'issue de l'apprentissage, la boîte de dialogue SANN - Résultats apparaît. Le cadre Réseaux de neurones actifs (situé en haut de la boîte de dialogue) reporte les 5 meilleurs réseaux qui ont été générés lors de l'apprentissage.
Étude des résultats. Poursuivons cet exemple en supposant que nous avons trouvé des modèles pour lesquels les performances de test (c'est-à-dire le coefficient de corrélation) sont supérieures à 0,92. Cette information est accessible instantanément dans le cadre Réseaux de neurones actifs situé en haut de la boîte de dialogue.
La boîte de dialogue SANN - Résultats offre un certain nombre d'options pour générer des feuilles de données et des graphiques permettant d'étudier les propriétés des réseaux. Le cadre Réseaux de neurones actifs situé en haut de la boîte de dialogue vous permet de comparer rapidement les performances d'apprentissage et de test de chacun des réseaux sélectionnés et vous donne accès à diverses informations de synthèse concernant chaque modèle, en particulier l'algorithme utilisé pour l'apprentissage ainsi que la fonction d'erreur et les fonctions d'activation utilisées pour la couche cachée et la couche de sortie. Pour produire une feuille de données contenant l'information du cadre Réseaux de neurones actifs, cliquez sur le bouton Synthèse.
Remarque : la feuille de données intègre également l'erreur d'apprentissage et de test de chaque réseau. Lorsque vous spécifiez un sous-ensemble de Validation (sans l'onglet Échantillonnage de la boîte de dialogue SANN - Sélection des données), la performance et l'erreur de ce sous-ensemble sont également reportées dans le cadre Réseaux de neurones actifs et dans la feuille de données de Synthèse des réseaux de neurones actifs.
Prévisions. Dans la boîte de dialogue SANN - Résultats, sélectionnez l'onglet Prévisions. Les options de cet onglet vous permettent de générer une feuille de données des prévisions pour chacun des réseaux qui ont été conservés à l'issue de l'apprentissage ou pour un ensemble (c'est-à-dire, un groupe de réseaux de neurones qui va coopérer pour établir une prévision). Dans cet exemple, nous souhaitons examiner les prévisions des deux premiers réseaux (remarque : vos résultats seront vraisemblablement différents de ceux reportés ici).
Tout d'abord, cliquez sur le bouton Sélectionner\Désélectionner les réseaux actifs, et dans la boîte de dialogue Activation des modèles, sélectionnez le premier et le second modèle.
Cliquez sur le bouton OK afin de fermer cette boîte de dialogue et revenir à la boîte de dialogue SANN - Résultats. Dans l'onglet Prévisions, sélectionnez le bouton d'option Réseaux individuels et ensemble dans le cadre Type de prévisions. Dans l'angle inférieur droit de la boîte de dialogue SANN - Résultats, cochez les options Apprentissage et Test dans le cadre Échantillon. Lorsque ces options sont cochées, les feuilles de données tiennent compte à la fois des échantillons d'apprentissage et de test.
Cliquez sur le bouton Prévisions afin de produire les feuille de données des Prévisions pour chacune des quatre variables cible.
La feuille de données ci-dessus nous donne les prévisions (sorties) de V1. Remarque : outre les prévisions des réseaux individuels, la feuille de données contient également (en dernière colonne) les sorties de l'ensemble, qui sont simplement calculées comme la moyenne arithmétique des sorties des réseaux individuels. Il est fortement conseillé de combiner les réseaux afin de constituer des ensembles, notamment lorsque l'ensemble d'apprentissage est de petite taille. Les ensembles de réseaux convenablement entraînés donnent en général de meilleures prévisions que chacun des réseaux qui les composent, pris individuellement.
Comment utiliser la performance pour choisir les réseaux. SANN utilise le coefficient de corrélation entre les valeurs cible des données et les sorties (prévisions) du réseau comme indicateur de performance. Le coefficient de corrélation nous indique dans quelle mesure les prévisions globales d'un réseau sont proches des données cible (dépendantes). Le coefficient de corrélation peut prendre des valeurs comprises entre -1 et 1, la valeur 1 représentant un ajustement parfait. Dans la mesure où les données cible sont généralement de véritables mesures d'une ou plusieurs quantités qui nous intéressent augmentée d'une certaine quantité de bruit aléatoire, un coefficient de corrélation proche ou égal à 1 sur l'échantillon d'apprentissage n'est pas nécessairement une fin en soi (selon la quantité de bruit présent dans les variables cible). Il pourrait même indiquer un surajustement. Lorsqu'un réseau sur-ajuste les données d'apprentissage, son coefficient de corrélation est maximum (c'est-à-dire qu'il donne d'excellents résultats sur l'échantillon d'apprentissage). En revanche, ces réseaux donnent généralement des résultats médiocres sur les échantillons de test et de validation. C'est la raison pour laquelle il faut toujours utiliser les coefficients de corrélation des échantillons de test et de validation pour sélectionner les réseaux. Il faut également noter que ce n'est pas parce qu'un coefficient de corrélation est faible qu'il signifie que le réseau a mal été entraîné. En fait, il peut s'agir d'un réseau "prudent" qui cherche à éviter d'ajuster (modéliser) le bruit, ce qui est nécessaire.
Graphiques. Sélectionnez ensuite l'onglet Graphiques. Les options de cet onglet vous permettent de produire des histogrammes, nuages de points en 2D et surfaces de réponse en 3D en utilisant les variables cible, les prévisions, les résidus et les entrées.
Par exemple, pour étudier la distribution des résidus du réseau (c'est-à-dire la différence entre les valeurs cible et les valeurs prévues correspondantes) pour une variable cible, disons T3, sélectionnez la variable T3 dans la liste déroulante Variable cible, puis sélectionnez les Résidus dans la liste Axe X avant de cliquer sur le bouton Histogrammes des X.
L'examen des histogrammes montre que les résidus tendent vers une distribution normale de moyenne zéro, ce qui semble indiquer que le réseau a découvert le modèle supposé du bruit (comme dans la plupart des outils de réseaux de neurones, SANN suppose que le bruit sur les variables cible est normalement distribué avec une moyenne égale à zéro et une variance inconnue). Plus la variance du bruit est importante (c'est-à-dire, plus les extrémités de l'histogramme sont éloignées), plus le bruit est important. Si l'histogramme est plus étroit en largeur que la véritable variance du bruit, c'est indication d'un sur-ajustement. Toutefois, l'importance du bruit (c'est-à-dire sa variance) n'est pas connue a priori.
Un autre graphique intéressant à regarder est le nuage de points les valeurs observées et prévues des variables cible. Pour ce faire, sélectionnez Valeur cible dans la liste Axe X et Sortie dans la liste Axe Y, puis cliquez sur le bouton X et Y.
Ce graphique nous permet de vérifier visuellement dans quelle mesure une variable cible est liée aux sorties du réseau en observant la proximité des points avec la diagonale à 45 degrés qui est également représentée sur le nuage de points. En fait, le graphique n'est rien d'autre que la représentation du coefficient de corrélation, qui joue un rôle central dans la sélection du réseau. Remarque : la plupart des points du nuage de points des réseaux individuels ne se situe pas exactement sur la diagonale à 45 degrés. En fait, les réseaux ont identifié un certain bruitage sur les valeurs cible qu'ils n'ont pas modélisé comme de véritables signaux, ce qui est le résultat attendu.
Remarque. Lorsque vous sélectionnez plusieurs réseaux dans la liste des Réseaux de neurones actifs, un nuage de points superposé est produit. Vous pouvez ainsi comparer les valeurs de tous les réseaux.
Détails des réseaux. L'onglet Détails donne accès à diverses informations complémentaires - pour chaque échantillon si approprié - concernant les réseaux. Par exemple, vous pouvez analyser la feuille de données des poids des réseaux individuels ou les coefficients de corrélation pour les différents sous-ensembles (apprentissage, test, etc...). Vous pouvez également accéder aux statistiques relatives à la fois aux données et aux prévisions. Mais vous pouvez surtout réaliser des analyses de sensibilité.
Analyse globale de sensibilité. Les analyses globales de sensibilité nous renseignent quant à l'importance relative des variables utilisées dans un réseau de neurones. Dans une analyse de sensibilité, SANN va tester dans quelle mesure les réponses (prévisions) du réseau de neurones, et donc les taux d'erreur, augmenteraient ou diminueraient si chacune de ses variables d'entrée venait à subir une modification. Dans une analyse globale de sensibilité, le fichier de données est traité par le réseau de façon répétée, chaque variable étant tour à tour remplacée par sa moyenne calculée sur l'échantillon d'apprentissage, avant de calculer l'erreur du réseau résultant. Si une variable importante est modifiée de cette manière, l'erreur va augmenter de façon considérable ; s'il s'agit au contraire d'une variable peu importante, l'erreur ne va pas beaucoup augmenter.
Cliquez sur le bouton Analyse globale de sensibilité dans l'onglet Détails de la boîte de dialogue SANN - Résultats afin de réaliser une analyse de sensibilité globale.
La feuille de données ci-dessus indique, pour chaque modèle sélectionné, le ratio entre l'erreur du réseau d'une part lorsqu'une entrée particulière n'est pas prise en compte, et l'erreur du réseau d'autre part lorsque l'entrée est prise en compte. Si le ratio est inférieur ou égal à 1, le réseau donne de meilleurs résultats lorsque cette variable est totalement absente - ce qui indique que cette variable doit être éliminée du réseau.
C'est l'une des limites de l'analyse de sensibilité. Nous avons tendance à interpréter les sensibilités comme une indication de l'importance relative des variables. Or ces valeurs de sensibilité ne mesurent en fait que l'importance des variables dans le cadre d'un modèle de réseau de neurones spécifique. Les variables affichent généralement différentes formes d'interdépendance et de redondance. Si plusieurs variables sont corrélées, l'algorithme d'apprentissage va parfois choisir de façon arbitraire une certaine combinaison de ces variables et les valeurs de sensibilité vont en être affectées, ce qui risque de donner des résultats incohérents entre différents réseaux. Il est généralement conseillé de réaliser des analyses de sensibilité sur un certain nombre de réseaux, et de ne tirer des conclusions qu'à partir de résultats cohérents. Il n'en reste pas moins que l'analyse de sensibilité est un outil extrêmement utile pour déterminer l'importance des variables.
Analyse locale de sensibilité. L"analyse locale de sensibilité s'apparente à de nombreux égards à l'analyse globale de sensibilité, à la différence près que dans l'analyse locale, nous mesurons la modification des performances des réseaux de neurones imputables aux modifications introduites dans les valeurs d'entrée en certains points arbitraires de l'espace des entrées, c'est-à-dire aux alentours d'un point dans l'espace d'entrée pour chaque variable. SANN va mesurer la sensibilité locale d'une entrée en faisant varier la valeur de cette entrée d'une quantité infinitésimale en 10 points équitablement répartis entre le minimum et le maximum des données d'apprentissage, puis en calculant les modifications induites sur les performances du réseau.
Si une analyse locale de sensibilité doit, d'une manière générale, conduire aux mêmes conclusions quant à l'importance des entrées par rapport aux prévisions d'un modèle de réseaux de neurones, les mesures de l'analyse locale de sensibilité peuvent parfois mettre l'accent sur des phénomènes d'importance (influence) des variables d'entrée “en un point particulier de l'espace des entrées”. Par exemple, un réseau peut être extrêmement sensible à des modifications au cours d'une même minute dans les valeurs d'une entrée en une zone particulière de l'espace des entrées alors que ces mêmes entrées restent peu importantes partout ailleurs, c'est-à-dire que des variations importantes dans la valeur des entrées vont conduire à des modifications négligeables sur les prévisions du réseau.
Modèles uniques, meilleurs modèles, bon modèles. Si vous n'avez encore jamais travaillé avec les réseaux de neurones pour construire des modèles prédictifs, vous devez savoir qu'il s'agit d'algorithmes généralistes d'apprentissage, et non de techniques d'estimation statistique. Par conséquent, les modèles qui sont générés ne sont pas nécessairement les meilleurs modèles que nous puissions trouver, et il n'existe pas nécessairement un seul meilleur modèle. En fait, dans la pratique, vous allez souvent trouver plusieurs modèles de qualité quasiment identique. Chaque modèle peut être considéré, dans ce cas, comme une solution unique. Remarque : même des modèles avec un nombre identique d'unités cachées, les mêmes fonctions d'activation pour les unités cachées et de sortie, etc..., peuvent produire des prévisions, et donc afficher des performances, plus ou moins différentes. C'est à cause de la nature des réseaux de neurones qui sont des modèles fortement non-linéaires, et qui sont capables d'apporter plusieurs solutions à un même problème.
Déploiement. Grâce aux options de déploiement de SANN, vous pouvez rapidement produire des prévisions à partir d'un ou plusieurs réseaux préalablement entraînés, sur la base de l'information stockée dans le cade de déploiement au format universel PMML (Predictive Model Markup Language). Pour enregistrer nos deux réseaux, cliquez sur le bouton Enregistrer les réseaux puis sélectionnez la commande Script PMML dans la liste déroulante. Dans la boîte de dialogue Enregistrer un fichier PMML, sélectionnez un dossier dans lequel vous souhaitez enregistrer les fichiers, puis saisissez 4barlinkage dans le champ Nom du fichier, avant de cliquer sur le bouton Enregistrer. Les deux réseaux seront enregistrés sous les noms 4barlinkage-1.xml et 4barlinkage-2.xml. Après avoir enregistré les réseaux, fermez cette analyse en cliquant à l'aide du bouton droit de la souris sur le bouton SANN - Résultats de la barre d'analyse (située en bas de l'application STATISTICA) et sélectionnez la commande Fermer.
Didacticiels
Vous pouvez visionner l'intégralité de la série de tutoriels Le Data Mining en 35 Leçons avec STATISTICA en remplissant le formulaire d'inscription. Vous serez alors notifié(e) automatiquement de la disponibilité des nouveaux épisodes et recevrez d'autres informations utiles.
StatSoft propose par ailleurs une série de didacticiels et présentations interactives décrivant pas-à-pas différentes opérations que vous pouvez réaliser à l'aide de STATISTICA. Si vous souhaitez voir aborder un thème particulier, merci de nous écrire.

Autres Méthodes
STATISTICA Data Miner offre la gamme la plus riche du marché en termes de solutions de data mining, avec une interface-utilisateur extrêmement simple à utiliser, basée sur des icônes pour :


- Drill-Down Interactif
- Sélection et Filtrage des Prédicteurs
- Modèles d'Arbres de Classification et de Régression (C&RT)
- Modèles CHAID : Des Arbres de Classification bien adaptés pour la Segmentation en Marketing et CRM
- Arbres de Décision Interactifs (CandRT, CHAID)
- Boosting d'Arbres de Classification et de Régression (Stochastic Gradient Boosting Trees)
- Forêts Aléatoires (ou Forêts Décisionnelles)
- Classification Généralisée EM et k-Moyennes : des techniques performantes de segmentation
- MARSplines (Multivariate Adaptive Regression Splines)
- Machine Learning : SVM (Séparateurs à Vaste Marge), Réseaux Bayésiens et K-Plus Proches Voisins
- Modèles Additifs Généralisés (GAM)
- Règles d'Association ou la Problématique du Panier de la Ménagère
- Regroupement de Modalités pour du Data Mining Prédictif
- Qualité d'Ajustement (Classification, Prévision)
- Déploiement Rapide de Modèles Prédictifs (PMML/XML)