Une étude des algorithmes de construction d’architecture des
réseaux de neurones multicouches.
Norbert Tsopzé1,∗∗ Engelbert Mephu Nguifo
Gilbert Tindo∗∗
CRIL-CNRS, IUT de Lens, SP 16 Rue de l’Université 62307 Lens Cedex
{tsopze,mephu}@cril.univ-artois.fr
∗∗ Département d’Informatique - Université de Yaoundé I BP 812 Yaoundé
Résumé. Le problème de choix d’architecture d’un réseau de neurones multi-
couches reste toujours très difficile à résoudre dans un processus de fouille de
données. Ce papier recense quelques algorithmes de recherche d’architectures
d’un réseau de neurones pour les tâches de classification. Il présente également
une analyse théorique et expérimentale de ces algorithmes. Ce travail confirme
les difficultés de choix des paramètres d’apprentissage (modèle, nombre de couches,
nombre de neurones par couches, taux d’apprentissage, algorithme d’apprentis-
sage,...) communs à tout processus de construction de réseaux de neurones et les
difficultés de choix de paramètres propres à certains algorithmes.
1 Introduction
Un réseau de neurones est un ensemble de neurones interconnectés qui communiquent
entre eux et avec l’extérieur. Un réseau de neurones se présente comme un graphe où les
noeuds sont les différentes unités de réseau et les arcs représentent les connexions entre ces
unités. Le nombre de couches, le nombre de neurones par couche et les interconnexions entre
les différentes unités du réseau définissent l’architecture (encore appelée topologie) de celui-ci.
Un neurone peut être appelé unité ou cellule. Comme tout système d’apprentissage supervisé,
les systèmes d’apprentissage supervisé à base des réseaux de neurones fonctionnent en deux
phases : la phase d’apprentissage qui consiste à construire à partir des observations (exemples
présentés sous forme (x, y) où y représente l’observation de la fonction f en x) un système
capable d’approximer la fonction f dont l’expression analytique n’est pas facile à trouver ; la
phase de classement qui utilise le modèle construit en phase d’apprentissage pour produire
des décisions (prédire un nouvel exemple qui ne faisait pas partie des observations de la base
d’apprentissage). Définir la structure du réseau pour de tel système n’est pas une tâche évidente
(J.Han et Hamber, 2001; A.Cornuéjols et Miclet, 2002). En effet, il n’existe aucune méthode
permettant de définir et de justifier la structure d’un réseau de neurones (J.Han et Hamber,
2001).
1Le Service de Coopération et d’Action Culturelle (SCAC) de l’ambassade de France à Yaoundé (Cameroun) a
financé le séjour du premier auteur au CRIL pendant la réalisation de ce travail. Ce travail est partiellement financé
par le ministère français des affaires étrangères.
Etude des algorithmes de construction d’architecture des réseaux de neurones.
La définition de l’architecture du réseau de neurones multicouches pour la résolution d’un
problème donné reste un problème ouvert. Outre les méthodes génétiques (D.Curran et O’Rior-
dan, 2002), ce problème est souvent résolu en utilisant deux approches : la première consiste à
ajouter successivement des neurones et des connexions à une petite architecture, la deuxième
quant à elle consiste à supprimer des neurones et des connexions d’une architecture initiale
maximale. Ces deux approches ont souvent comme inconvénient le temps d’apprentissage
élevé et imprévisible.
Les domaines d’application des réseaux de neurones sont multiples (Dreyfus et al., 2002) :
la biologie moléculaire (analyse des séquences d’ADN (Shavlik et Towell., 1994)), prédiction,
classification, traitement d’images, le génie logiciel (estimation des coûts de logiciel (S.Mbarki
et al., 2004)), etc. Aucune explication ne justifie à notre connaissance la définition des architec-
tures utilisées. Pour les problèmes de classification en particulier, plusieurs méthodes ont été
développées et sont proposées dans la littérature (J.Yang et al., 1999; Yang et al., 1996; Parekh
et al., 1997b). On peut classer ces méthodes en deux catégories : celles qui construisent l’archi-
tecture en utilisant un ensemble de connaissances de domaine (exemple de KBANN (Shavlik et
Towell., 1994)) et les autres qui définissent cette architecture sans aucune connaissance (J.Yang
et al., 1999; Parekh et al., 1997b; Yang et al., 1996; Parekh et al., 1995). Les algorithmes de
construction des réseaux de neurones artificiels que nous avons rencontrés dans la littérature
produisent des réseaux ayant les caractéristiques suivantes (Parekh et al., 1995, 1997a, 2000) :
architecture minimale, habile à trouver le compromis entre les mesures de performances telles
que le temps d’apprentissage, habilité à généraliser, . . .etc. Ces méthodes constructives de ré-
seau de neurones diffèrent par les facteurs suivants (Parekh et al., 1997a, 2000) : restriction des
entrées (type de données en entrée), circonstances d’ajout d’une nouvelle unité, initialisation
des poids de connexion de cette unité et son apprentissage.
Dans ce travail, notre intérêt porte sur les méthodes de recherche d’architecture des ré-
seaux de neurones multicouches feed-forward (les informations circulent des entrées vers les
sorties, sans retour) pour la résolution des problèmes de classification. Les principaux para-
mètres de mesure de performance traités sont : la taille du réseau (nombre de neurones, nombre
de couches...), la complexité en temps et la capacité de généralisation. Certaines méthodes de
recherche d’architecture de réseaux de neurones ont été évaluées sur des données de taille re-
lativement petite et la qualité des résultats varie d’un ensemble de données à l’autre (Parekh
et al., 1997a). D’autre part, une comparaison théorique des ces algorithmes n’a pas à notre
connaissance été faite. Notre étude portera essentiellement sur la comparaison de ces algo-
rithmes d’après les mesures de performances citées ci-dessus et des résultats expérimentaux
sur les données tirées de la base UCI (Newmann et al., 1998). Les opérations supplémentaires
de prétraitement de données telles que projection, binarisation, la normalisation et autres ne
seront pas abordées dans cette étude.
Le reste du papier est organisé comme suit : la section suivante présente les réseaux de
neurones multicouches, et quelques notions (définitions et apprentissage) liées aux réseaux
de neurones multicouches ; la troisième section recense les algorithmes de construction d’ar-
chitecture neuronale. Les analyses expérimentales et théoriques feront l’objet de la quatrième
section.
N.Tsopzé et al.
2 Les réseaux de neurones multicouches et algorithmes d’ap-
prentissage
2.1 Généralités
Ce sont des réseaux de neurones dont les architectures vérifient les propriétés suivantes :
1. les cellules (neurones ou unités) sont réparties de façon exclusive sur les différentes
couches.
2. la première couche ou couche d’entrée est composée des cellules d’entrée qui cor-
respondent aux n variables d’entrée ; elle a généralement un nombre d’unités égal au
nombre d’attributs des exemples.
3. la couche cachée est composée des unités qui effectuent des calculs intermédiaires entre
les entrées et les sorties. Elle peut être composée de plusieurs autres couches.
4. la dernière couche est celle de décision ; elle peut avoir aussi un nombre d’unités égal au
nombre de classes.
Les poids de connexion des réseaux multicouches sont généralement modifiés par rétropropa-
gation (Rumelhart et al., 1986a,b). Cet algorithme produit des bons résultats lorsque l’archi-
tecture est appropriée, il est également utilisé lorsque l’architecture du réseau reste statique
(D.Curran et O’Riordan, 2002). Des outils tels que WEKA (Witten et Frank, 2005) et SNNS
(Stuttgart Neural Network Simulator)2offrent aux utilisateurs la possibilité de définir la struc-
ture de leur réseau, ces outils apprennent ces réseaux par retropropagation. La difficulté ma-
jeure est de trouver cette architecture (A.Cornuéjols et Miclet, 2002).
2.2 Algorithme d’apprentissage des poids de connexion
L’apprentissage dans les systèmes neuronaux peut se faire par unité ou par couche. Le prin-
cipal algorithme d’apprentissage des unités neuronales est le perceptron ; lorsque les données
ne sont pas linéairement séparables, il est remplacé par l’une de ses variantes : pocket with
racket, barycentric,...etc. L’apprentissage d’une couche peut être généralisé à toutes ses uni-
tés ou se faire suivant le principe du Winner Take All (WTA). Afin de montrer l’influence de
l’algorithme d’apprentissage sur la complexité du système, nous présentons (voir tableau 1)
sans entrer dans les détails les complexités en temps de ces algorithmes. Les détails sur ces
algorithmes d’apprentissage sont présentés dans (Parekh et al., 1999, 2000), (Gallant, 1990)
et (Frean, 1992a). Théoriquement, ces algorithmes utilisent de manière similaire l’espace mé-
moire. Le tableau 1 présente les complexités en temps de ces algorithmes d’apprentissage dans
lequel les variables désignent : nle nombre d’objets, Mle nombre de classes, mle nombre
d’attributs et Nit le nombre d’itérations dans l’algorithme d’apprentissage.
3 Algorithmes de construction des RNA
Cette section présente un résumé des algorithmes MTiling (Yang et al., 1996), MTower
(Gallant, 1990; Parekh et al., 1995, 1997a), MUpstart (Parekh et al., 1997b), Distal (J.Yang
2simulateur des réseaux de neurones disponibles à l’adresse Internet http ://www-ra.informatik.uni-
tuebingen.de/SNNS/
Etude des algorithmes de construction d’architecture des réseaux de neurones.
Algorithmes Complexité en temps
Perceptron n×m×M
Pocket with racket modification n×m×M×Nit
Thermal Perceptron n×m×M×Nit
Barycentric Correction n×m×M×Nit
TAB. 1 – Complexité en temps des algorithmes d’apprentissage
et al., 1999). La convergence de ces algorithmes est démontrée dans (Parekh et al., 1995) et
dans (Parekh et al., 1997a).
3.1 L’algorithme Mtiling (Yang et al., 1996)
Mtiling est une adaptation de l’algorithme Tiling (Mezard et Nadal., 1989) à la classifi-
cation multiclasses. Cette méthode construit un réseau de neurones multicouches dans lequel
les unités d’un niveau (couche) reçoivent des unités du niveau inférieur (immédiat). En cas de
mauvais classement du réseau courant, la procédure détermine le neurone ayant fait le maxi-
mum d’erreurs, augmente un certain nombre de neurones (auxillaires) à la couche de sortie
courante, elle augmente également une nouvelle couche de Mneurones au réseau et connecte
les entrées de cette couche aux sorties des unités de la couche de sortie ; cette couche (ajoutée)
devient la nouvelle couche de sortie. Les neurones ajoutés sont appris individuellement par les
algorithmes pocket ou une variante. Le nombre maximal de couches cachées Hest spécifié par
l’utilisateur. La couche de sortie fonctionne suivant le principe de WTA afin d’assurer qu’une
seule classe soit active pour un exemple donné.
3.2 L’algorithme Mtower (Parekh et al., 1997a)
Cette méthode construit le réseau sous forme de tour comme la méthode originale Tower
(Gallant, 1990). L’architecture finale du réseau est telle que : les neurones au sommet (sortie)
sont connectés à tous les neurones d’entrée et un neurone de la couche kreçoit de l’informa-
tion de tous les neurones de la couche k1(immédiatement connectés à la couche k). La tour
est construite en ajoutant successivement les couches de Munités au réseau. Ces unités sont
apprises par l’une des variantes du perceptron. La couche ajoutée est complètement connectée
à la couche de sortie et à la couche d’entrée ; cette couche devient ainsi la nouvelle couche de
sortie. La modification du réseau est répétée jusqu’à l’obtention de la précision (de classement)
fournie par l’utilisateur, l’algorithme peut aussi d’arrêter le nombre maximal de couche est at-
teint. La couche de sortie fonctionne aussi suivant le principe du WTA. La méthode Mpyramid
(Parekh et al., 1997a) est semblable à Mtower à la seule différence que la couche ajoutée reçoit
l’information de toutes les couches précédentes.
3.3 L’algorithme MUpstart(Parekh et al., 1997b)
Mupstart est une version de l’algorithme Upstart (Frean, 1992b) pour la classification mul-
ticlasses. Comme Upstart, cet algorithme est basé sur une correction d’erreur produite par le
N.Tsopzé et al.
réseau courant. Ce réseau a une couche d’entrée de N+ 1 unités et une couche de sortie de
Munités. Le fils gauche, Xest augmenté au nœud en cas de " wrongly on " et le fils droit Y
en cas de " wrongly off ". On parle de "Wrongly on" (resp. "Wrongly off") lorsque la sortie
obtenue est "1" (resp. "0") alors que l’on désirait obtenir plutôt "0" (resp. "1"). Le neurone
ajouté pour corriger l’erreur produite à cette étape est appris par l’algorithme du perceptron ou
une de ses variantes. Ces neurones ajoutés sont appris avec pour sorties attendues (T x et T y)
définies dans le tableau 2 ; dans ce tableau, y(resp. o) représente la sortie désirée (resp. sortie
obtenue), T x (resp. T y) est la sortie attendue pour l’apprentissage des unités x(resp. y) pour
la correction de la différence entre yet o.
y o Tx Ty
0 0 0 0
0 1 1 0
1 0 0 1
1 1 0 0
TAB. 2 – Tableau présentant les sorties attendues des unités ajoutées
3.4 L’algorithme Distal (J.Yang et al., 1999)
C’est un algorithme qui est basé sur le calcul de distance entre exemple (ou entre attribut).
La distance peut être euclidienne, ou autre. Cette procédure calcule, trie d’abord les distances
entre exemples (ou attributs) et les stocke dans une matrice D. La procédure Distal construit à
partir de la matrice des distances la couche cachée du réseau. Cette couche cachée est construite
de la manière suivante : un neurone est ajouté pour apprendre kexemples tel que ksoit l’indice
de la classe ayant la plus grande plage d’exemples consécutifs dans Dappartenant à la même
classe. Les neurones de la couche cachée dans Distal sont à seuil sphérique (neurone actif si
θlow W X θhigh et inactif sinon, où W X est le résultat en sortie) et les poids de connexion
entre l’unité ajoutée et les unités d’entrée sont initialisés par les attributs de l’exemple ià partir
duquel ka été trouvé. A l’étape suivante, tous les poids du réseau entre la couche cachée et
celle de sortie sont multipliés par deux. Les unités de la couche fonctionnent suivant le principe
de WTA.
4 Complexités - Evaluations théoriques
Les algorithmes de recherche d’architectures de réseau de neurones peuvent être classés
suivant l’approche de construction du réseau en deux grands groupes :
1. l’approche descendante, le réseau final est obtenu par élimination des neurones et de
connexions. L’architecture initiale comporte un nombre suffisant de neurones et de connexions
capables de bien classer tous les exemples.
2. L’approche ascendante, le réseau est obtenu par ajout de neurones et de connexions.
Les ajouts se font lorsque le réseau considéré produit des erreurs. L’architecture initiale
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !