Réseaux de neurones
S. Système que représente le réseau de neurone, de l'extérieur ..... L'erreur
bayésienne tient à l'apprentissage, mais est indépendante de la procédure .....
Dans le cas spécial où on veut seulement « corriger » un vecteur mal entré, c'est
à dire ...
Part of the document
Résumé : Réseaux de neurones Marc-Olivier LaBarre Mai 2002 SYMBOLISME Dans le texte qui suit, des symboles et des variables sont utilisées pour
représenter les composantes des réseaux de neurones. Voici les définitions
de ce symbolisme. |S |Système que représente le réseau de neurone, |
| |de l'extérieur |
|X |Vecteur d'intrant du réseau, ou d'une manière|
| |locale, vecteur d'intrant d'une couche du |
| |réseau. |
|xi |i-ème élément du vecteur d'intrant X |
|Y |Vecteur de sortie du réseau, ou d'une |
| |manière locale, vecteur de sortie produit par|
| |une couche du réseau. |
|yi |i-ème élément du vecteur de sortie Y |
|wi |Poids du i-ème intrant du neurone |
|wi,j |Poids sur le lien entre le neurone i et le |
| |neurone j |
|Wi |Vecteur de poids associé au neurone i |
|W |Matrice de poids, associée à une couche. |
|f( ) |Fonction d'activation d'un neurone |
|? |Seuil d'activation d'un neurone | LISTE DES ABBRÉVIATIONS PMC Perceptron Multicouche
ACP Analyse des Composantes Principales Les réseaux de neurones sont une des composantes importantes du domaine de
l'intelligence artificielle. Les réseaux de neurones « artificiels », pour
les différencier des réseaux de neurones biologiques, sont composés de
neurones artificiels simples, petites fonctions mathématiques, qui
permettent, montés en réseau de former des fonctions complexes très utiles.
Par analogie aux neurones biologiques, les neurones artificiels ont pour
but de reproduire des raisonnements « intelligents » d'une manière
artificielle. Ces neurones peuvent adopter de certaines qualités
habituellement propres au biologique, c'est-à-dire, la généralisation,
l'évolutivité, et une certaine forme de déduction. La structure d'un neurone artificiel est en fait copiée sur la structure
des neurones biologiques. Les principales structures biologiques des
neurones ont toutes leur équivalent artificiel (voir plus bas), ceci ayant
pour but de reproduire leur fonctionnement de la meilleure façon possible
(d'une manière logique, simple et facilement représentable sur
informatique). Un neurone est une minuscule structure qui traite les
influx nerveux qui arrivent (inputs), chacun selon son importance relative,
et qui émet un (et un seul) signal de sortie (output). Les neurones
artificiels reproduisent le même procédé, recevant chaque signal d'entrée
(input) tempéré par un poids (weight). Ces poids sont aussi appelés poids
synaptiques, par analogie. Les intrants pondérés, habituellement (mais
pas toujours) sommés, sont ensuite comparés à un seuil d'activation ?[1] et
passés dans la fonction du neurone (habituellement une fonction très
simple), qui produit l'extrant (output) désiré. Dans les neurones
biologiques, les intrants et extrants sont des influx électriques,
représentés artificiellement par des valeurs numériques. Habituellement,
les neurones sont reliés ensemble en réseaux, les neurones d'un niveau (les
réseaux de neurones sont habituellement bâtis en niveaux hiérarchiques)
passant leurs extrants aux neurones du niveau suivant (devenant les
intrants des neurones suivants). D'une manière générale, un neurone
constitue un minuscule processeur, capable de gérer une fonction simple. Tableau 1 : Analogie entre les neurones biologiques et artificiels
|Neurone |Neurone |Représentation |
|biologique |artificiel |symbolique |
|Soma |Neurone | |
|Dendrite |Intrant |xi, X (intrant net) |
| |(Input) | |
|Axone |Extrant |Y |
| |(Output) | |
|Synapse |Poids |wi | Figure 1 : Schéma d'un neurone artificiel (deux signaux d'intrants
seulement)
NAISSANCE En 1943, Warren McCulloch et Walter Pitts ont proposé un des premiers
modèles de neurone artificiel, qui deviendra la base des réseaux de
neurones artificiels. Ce modèle de neurone (également appelé neurone de
McCulloch-Pitts) utilise la sommation des intrants pesés (weighted inputs)
comme intrant « net » X (intrant direct de la fonction du neurone) et comme
fonction d'activation, la fonction de signe (comparé avec le seuil ?) . [pic][2]
[pic] Tableau 2 : Autres fonctions d'activation[3] (comparées au seuil ?)
|Étage |Signe |Sigmoïde[4] |Linéaire |
|[pic] |[pic] |[pic] |[pic] | La fonction d'activation par signe est très utile, mais d'autres fonctions
peuvent être utilisées. Par exemple, la fonction par étage (Y = {0,1}) est
meilleure pour les sorties par bits et pour les tables de vérités. La
fonction sigmoïde présente davantage de souplesse et de nuance lors du
traitement des erreurs. Malgré la grande répartition de ces neurones, il en existe au moins un
autre type. Les neurones, on en effet deux fonctions d'activation, la
première étant la production de l'intrant net (ci-haut, la somme des
intrants pesés), le seconde étant la fonction d'activation. Dans le cas du
neurone de McCulloch-Pitts, ainsi que dans la plupart des cas, les neurones
sont des neurones « produit scalaire », car l'intrant net est produit de la
même manière que le produit scalaire entre le vecteur d'intrant et le
vecteur de poids associés à ce neurone. Dans d'autres cas, on peut aussi
utiliser des neurones « distance ». Comme le nom l'indique, la production
de l'intrant net dans ce cas est produit par le calcul d'une distance enter
le vecteur d'intrant et le vecteur de poids. Habituellement, une autre
manière de calculer l'intrant net amène à faire des choix différents par
rapport à la fonction d'activation utilisée. Dans le cas des neurones
« distances », . Les neurones « distance » sont utilisés d'une manière
plus spécifique, particulièrement dans le cas des réseaux de Kohonen. Il
est important de noter que les poids d'un réseaux doivent être interprétés
de manière différente selon les type de neurone utilisé. Le seuil d'activation d'un neurone peut également être considéré comme un
intrant fixe de valeur -1 et de seuil ?. Cette manière de procéder permet
d'inclure la modification du seuil dans un algorithme d'entraînement,
augmentant ainsi l'apprentissage du réseau. Cependant, cette modification
n'est correcte que lorsque la fonction d'activation s'effectue sur
l'intrant net auquel on soustrait le seuil ( f(X - ?)). Par exemple, dans
le cas d'un neurone « distance », cette modification serait tout a fait
incorrecte. Certaines personnes utilisent la notion de biais pour les
neurones. Il s'agit d'un intrant fixe de 1 et de poids déterminé selon le
réseau. Généralement, l'utilisation du biais sur un neurone ne se fait pas
en même temps que l'utilisation de seuils d'activation, mais rien ne
l'empêche, sinon les quelques complications que cela occasionne. De fait,
dans plusieurs cas, la double utilisation de biais et de seuils
d'activation est superflue. On peut facilement considérer que le biais sur
un neurone est équivalent à un seuil d'activation, mais si ceci se révèle
vrai dans plusieurs cas, il serait incorrect de généraliser. Il est
important de faire la différence entre le biais d'un neurone et le biais
dans le cas d'une méthode statistique. Dans la suite du texte, le biais
fera référence à celui des méthodes statistiques, sauf indication
contraire. ARCHITECTURE Un réseau de neurones est, comme son nom l'indique, un ensemble de neurones
en réseau, de sorte que les signaux sortant (outputs) des neurones
deviennent des signaux entrant (inputs) dans d'autres neurones.
L'architecture générale des réseaux de neurones consiste en la
représentation des neurones en couches (layers) successives, la première
représentant la couche d'intrants (input layer), la dernière étant la
couche de sortie (output layer), les couches intermédiaires étant les
couches cachées (hidden layers) du réseau. Ces couches sont dites cachées
car de l'extérieur du réseau, on ne peut analyser clairement leur
fonctionnement. On ne connaît vraiment que les signaux intrants et
extrants du réseau. Les neurones de la couche d'intrants ne sont pas
vraiment des neurones traitants (computing neurons), mais ont pour seule
utilité de normaliser l'entrées des signaux ainsi que la distribution des
signaux intrants. Dans cette architecture normalisée, les couches de
neurones sont totalement interconnectées, c'est-à-dire que les neurones
d'une couche sont tous reliés à tous les neurones des couches adjacentes.
Cette architecture normalisée peut sembler rigide, mais elle permet une
représentation correcte de la plupart des réseau de neurones, tout en
permettant l'utilisation d'algorithmes d'entraînement plus généraux. D'une manière générale, un réseau de neurones se comporte, d'un point de
vue extérieur, comme une fonction S qui traite des données (inputs) et
produit une réponse correspondante (output). Les données entrées peuvent
être de n'importe quel type représentable de manière binaire ou numérique.
Ces données peuvent également être vues comme des vecteurs, et le réseau de
neurones une application vectorielle. Les réseaux de neurones peuvent être soit statiques, soit dynamique