Upload
leduong
View
215
Download
0
Embed Size (px)
Citation preview
Université de Montréal
Implantation de réseaux de neurones artificiels en S-PLUS. Application : comparaison de méthodes statistiques dans le choix
du nombre de cellules cachées.
par
Urbain Léonce Adico
Département de mathématiques et de statistique Faculté des arts et des sciences
Mémoire présenté à la Faculté des études supérieures en vue de l’obtention du grade de Maître ès sciences ( M. Sc. )
en Statistique
Octobre, 1997
© URBAIN LÉONCE ADICO, 1997
iii
SOMMAIRE
Dans l’architecture d’un réseau de neurones artificiels (RNA) multi-
couches, le nombre de neurones dans les couches d’entrée et de sortie est connu,
c’est-à-dire déterminé par le problème donné. Mais ceci n’est pas le cas pour le
nombre de neurones dans la(les) couche(s) cachée(s). Ce choix est fait
généralement de façon empirique, pour que l’architecture trouvée soit
satisfaisante selon certains critères, comme par exemple, la minimisation d’un
coût quadratique ou du logarithme d’une fonction de vraisemblance.
Ainsi, dans ce mémoire, nous étudions le comportement de quelques
méthodes statistiques permettant d’estimer le nombre de neurones cachés d’un
réseau de neurones artificiels multi-couches. Ces méthodes peuvent être
classées selon deux types, en fonction de leur facilité de calcul. Les plus
économiques en temps de calcul sont la variation relative du logarithme du
maximum de la fonction de vraisemblance (appelée la méthode du coude), le
critère d’information d’Akaike (AIC) et le critère d’information bayésien de
Schwarz (BIC). Les moins économiques sont la validation croisée sur deux
groupes disjoints, la validation croisée sur v groupes disjoints (v > 2) et la
méthode du rééchantillonnage (appelée aussi bootstrap).
Nous considérons principalement le cas où l’on ignore s’il existe une
méthode statistique efficace de sélection du nombre optimal de neurones dans la
couche cachée. Il faudra donc, entre autres, choisir parcimonieusement le
nombre de neurones dans la couche cachée, c’est-à-dire choisir entre une
architecture ayant un nombre élevé de neurones dans la couche cachée mais un
coût faible et une architecture ayant peu de neurones dans la couche cachée
mais un coût élevé. En fait ici, c’est le traditionnel échange biais-variance: un
iv
petit nombre de paramètres entraîne une petite variance mais un grand biais; un
grand nombre de paramètres entraîne une grande variance mais un petit biais.
Notre plan d’étude nous amène d’abord à introduire les réseaux de
neurones artificiels multi-couches de façon générale. Ensuite nous présentons
leur utilisation en statistique, dans le cas particulier de données dont la variable
dépendante est catégorielle. Nous allons aussi définir les méthodes statistiques
que nous utiliserons. Une implantation numérique du réseau de neurones
artificiels multi-couches sera effectuée avec le logiciel S-PLUS. Par la suite,
une étude sur des données réelles sera effectuée afin d’évaluer les qualités de
cette implantation et d’analyser son comportement statistique. Enfin les
performances de cette architecture optimale obtenue par réseau de neurones
seront comparées à celles obtenues par la méthode classique de la régression
logistique.
v
REMERCIEMENTS
Je tiens à remercier mon directeur de recherche Gilles Ducharme qui a su
apporter les corrections nécessaires à mon mémoire. Je remercie également
mon codirecteur de recherche Antonio Ciampi pour son soutien financier, son
attention et ses conseils éclairés pour que prennent forme ces années de
recherche. Il a su se rendre complice de tout ce qui me concernait de près ou de
loin. Yoshua Bengio pour ses conseils car il m’a initié à ce domaine si
passionnant que constitue les réseaux de neurones artificiels et surtout il a
accepté d’être mon tuteur au DIRO. Mon épouse Jeanne-Claire Ibo m’a
grandement aidé pour la qualité du français et m’a apporté un soutien moral. Je
ne voudrais passer sous silence le personnel du Département de mathématiques
et statistique dont en particulier la directrice Mme Christiane Rousseau et M.
Serge Tardif pour leur aide pendant les périodes difficiles. Mes remerciements
s’adressent aussi à Miguel Chagnon pour son aide au niveau de S-PLUS. Enfin,
je ne peux oublier le gouvernement ivoirien qui m'a octroyé une bourse d'étude
ainsi que toute ma famille et ma communauté chrétienne à Montréal en
particulier Mlle Élaine Champagne pour l’aide morale.
J'en profite pour remercier et féliciter ma sœur Christine qui a soutenu
brillamment en juillet 1996 sa thèse de Doctorat d'État en Médecine à
l'Université d'Abidjan Cocody (Côte d'Ivoire).
vi
Aux deux DAMES les plus ADORABLES:
Ma Mère JEANNE &
Mon Épouse JEANNE
vii
TABLE DES MATIÈRES pages
SOMMAIRE iii
REMERCIEMENTS v
DÉDICACE vi
TABLE DES MATIÈRES vii
LISTE DES TABLEAUX xi
LISTE DES FIGURES xiii
LISTE DES GRAPHIQUES xiv
CHAPITRE 1. Généralités sur les réseaux de neurones artificiels multi-couches 1 1.1 INTRODUCTION 1 1.1.1 Fondements biologiques 1 1.1.1.1 Le neurone 1 1.1.1.2 Fonctionnement des neurones 2 1.1.1.3 Les synapses 4 1.1.1.4 Organisation et communication 5 1.1.1.5 Formation du cerveau-apprentissage-mémoire 6 1.1.1.6 La règle de Hebb 8 1.1.2 Qu’est-ce qu’un réseau de neurones artificiels ? 9 1.1.3 Historique des réseaux de neurones artificiels 10 1.2 CHOIX D’ALGORITHME 14 1.2.1 Algorithme de rétropropagation du gradient 17 1.2.2 Modèle général de l’apprentissage par rétropropagation 18
viii
pages 1.3 LES FACTEURS D’APPRENTISSAGE ET DE LISSAGE 26 1.4 LES FONCTIONS D’ACTIVATION USUELLES ET LEUR DÉRIVÉE 29 1.5 INITIALISATION DES POIDS DES CONNEXIONS 30 CHAPITRE 2. Aspects statistiques: application aux données catégorielles (classification) 33 2.1 INTRODUCTION 33 2.2 LES DONNÉES 34 2.3 FONCTION LOG-LINÉAIRE 35 2.4 FONCTION COÛT: VALEUR NÉGATIVE DU LOGARITHME DE LA FONCTION DU MAXIMUM DE VRAISEMBLANCE 36 2.5 DESCENTE DE GRADIENT 38 2.6 ERREUR D’APPRENTISSAGE, DE TEST ET DE GÉNÉRALISATION 39 2.6.1 Courbes de généralisation et d’apprentissage 41 2.7 MESURE DE L’ERREUR DE CLASSIFICATION 46 2.7.1 Classification ambiguë 46 2.7.2 Théorie de décision de Bayes 47 2.7.3 Justification de la décision de Bayes 47
ix
pages CHAPITRE 3. Méthodes statistiques pour le choix du nombre de neurones dans une couche cachée 49 3.1 MÉTHODES PLUS ÉCONOMIQUES EN TEMPS DE CALCUL 49 3.1.1 La méthode du coude 49 3.1.2 L’AIC et le BIC 51 3.2 MÉTHODES MOINS ÉCONOMIQUES EN TEMPS DE CALCUL 51 3.2.1 La validation croisée 51 3.2.1.1 Validation croisée sur deux groupes disjoints 52 3.2.1.2 Validation croisée sur plus de deux groupes disjoints 53 3.2.1.3 Critère de sélection de la meilleure architecture 55 3.2.1.3.1 Cas de la validation croisée sur plus de deux groupes disjoints 55 3.2.1.3.2 Cas de la validation croisée sur deux groupes disjoints 56 3.2.2 La méthode du rééchantillonnage 56 CHAPITRE 4. Implantation numérique et résultats 59 4.1 IMPLANTATION NUMÉRIQUE 59 4.1.1 S-PLUS pour l’environnement ‘‘Windows’’ 59 4.1.2 Méthodologie 60
x
pages 4.1.2.1 Les principales fonctions créées et leur description 60 4.1.2.2 Base de données réelles 61 4.1.2.3 Initialisation des paramètres libres 62 4.2 PRÉSENTATION ET ANALYSES DES RÉSULTATS 62 4.2.1 Réseau de neurones artificiels à une couche cachée 64 4.2.2 Les erreurs de classification 73 4.2.3 Méthode classique de la régression logistique multiple 79 4.2.3.1 Régression logistique multiple sur l’échantillon total 79 4.2.3.2 Régression logistique multiple sur l’ensemble d’apprentissage 80 4.2.3.3 Régression logistique multiple sur l’ensemble de test 81 4.2.4 Réseau de neurones versus régression logistique 82 CONCLUSION 84 ANNEXE 1. DÉMONSTRATIONS DE CERTAINS RÉSULTATS DU BOOTSTRAP 86 ANNEXE 2. LES FONCTIONS CRÉÉES 88 ANNEXE 3. LES ÉCRANS D’AIDE ET PROGRAMMES 94 ANNEXE 4. DESCRIPTION DES VARIABLES 125 ANNEXE 5. TABLEAUX DES RÉSULTATS 126 ANNEXE 6. PROGRAMMES ET RÉSULTATS OBTENUS EN RÉGRESSION LOGISTIQUE 133 BIBLIOGRAPHIE 137
xi
LISTE DES TABLEAUX pages
4.1 Récapitulatif des résultats 76 4.2 Les mesures prises par l’individu moyen sur les 12 variables indépendantes 77 4.3 Les différents types d’erreur de classification 78 4.4 Réseau de neurones versus régression logistique 82 A4.1 lappr en fonction du nombre de cellules dans la couche cachée 121 A4.2 Variations relatives de lappr en fonction du nombre de cellules dans la couche cachée 121 A4.3 Valeurs de l’AIC en fonction du nombre de cellules dans la couche cachée 122 A4.4 Valeurs du BIC en fonction du nombre de cellules dans la couche cachée 122 A4.5 Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes disjoints 123 A4.6 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes disjoints 123 A4.7 Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoints 124 A4.8 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoints 124
xii
A4.9 Valeurs de SEtest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoints 125
A4.10 Valeurs de lboot en fonction du nombre de cellules dans la couche cachée par la méthode bootstrap 125 A4.11 Erreurs de classification après apprentissage sur tout l’ensemble des exemples en fonction du nombre de cellules dans la couche cachée 126
A4.12 Erreurs de classification sur l’ensemble d’apprentissage en fonction du nombre de cellules dans la couche cachée 126
A4.13 Erreurs de classification sur l’ensemble de test en fonction du nombre de cellules dans la couche cachée 127
xiii
LISTE DES FIGURES pages
1.1 Le corps cellulaire comme sommateur à seuil 3 1.2 Structure générale typique d’un RNA avec une seule couche cachée 10 1.3 Le neurone de McCulloch-Pitts 12 1.4 Fonction binaire à seuil 12 1.5 Descente de gradient dans l’espace des poids: a) pour un petit facteur d’apprentissage η; b) pour un facteur d’apprentissage η élevé, et c) avec un facteur d’apprentissage η élevé et un facteur de lissage α 28 1.6 Zones de quasi-linéarité et de saturation de a) la Tangente hyperbolique sigmoïde et de b) la Sigmoïde 31 2.1 Courbes de généralisation et d’apprentissage en fonction de la capacité du réseau 42 2.2 Courbes de généralisation et d’apprentissage en fonction du temps d’apprentissage 43 2.3 Courbe de l’erreur de généralisation espérée 44 2.4 Courbes de généralisation et d’apprentissage en fonction du nombre d’exemples 45
xiv
LISTE DES GRAPHIQUES pages
4.1 lappr en fonction du nombre de cellules dans la couche cachée 65 4.2 Variations relatives de lappr en fonction du nombre de cellules dans la couche cachée 66 4.3 Valeurs de l’AIC en fonction du nombre de cellules dans la couche cachée 67 4.4 Valeurs du BIC en fonction du nombre de cellules dans la couche cachée 67 4.5 Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes disjoints 68 4.6 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes disjoints 69 4.7 Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoints 70 4.8 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoint 71 4.9 Valeurs des écarts types SEtest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus deux groupes disjoints 71
4.10 Valeurs de lboot en fonction du nombre de cellules dans la couche cachée par la méthode bootstrap 72
xv
4.11 Erreurs de classification après apprentissage sur tout l’ensemble des exemples en fonction du nombre de cellules dans la couche cachée 73
4.12 Erreurs de classification sur l’ensemble d’apprentissage en fonction du nombre de cellules dans la couche cachée 74
4.13 Erreurs de classification sur l’ensemble de test en fonction du nombre de cellules dans la couche cachée 75
1
CHAPITRE 1
Généralités sur les réseaux de neurones artificiels multi-couches
1.1 Introduction
1.1.1 Fondements biologiques
Cette introduction décrit les composantes du cerveau sans prétention à
l’exhaustivité, dans le but d’expliquer et de légitimer les modélisations
présentées dans les parties suivantes. Elle considère le cerveau dans son
ensemble et tente de montrer comment certaines de ses propriétés émergent de
sa structure. On réfère aussi le lecteur intéressé à Davalo et Naïm (1990) pour
une description plus détaillée des similitudes entre les réseaux de neurones
biologiques et les réseaux de neurones artificiels.
1.1.1.1 Le neurone
Selon Stevens (1979), les cellules nerveuses, appelées neurones, sont les
éléments de base du système nerveux central. Les neurones possèdent de
nombreux points communs dans leur organisation générale et leur système
biochimique avec les autres cellules. Ils présentent cependant des
caractéristiques qui leur sont propres et qui se retrouvent au niveau des cinq
2
fonctions spécialisées qu’ils assurent, c’est-à-dire, la fonction de recevoir des
signaux en provenance de neurones voisins, de les intégrer, d’engendrer un
influx nerveux, de le conduire et le transmettre à un autre neurone capable de le
recevoir.
Un neurone est constitué de trois parties qui sont: le corps cellulaire, les
dendrites, l’axone. Le corps cellulaire contient le noyau du neurone et effectue
les transformations biochimiques nécessaires à la synthèse des enzymes et des
autres molécules qui assurent la vie du neurone. Les dendrites sont de fines
extensions tubulaires. Elles se ramifient, ce qui les amène à former une espèce
d’arborescence autour du corps cellulaire. Elles sont les récepteurs principaux
du neurone pour capter les signaux qui lui parviennent. L’axone, qui est à
proprement parler la fibre nerveuse, sert de moyen de transport pour les signaux
émis par le neurone. Il se distingue des dendrites par sa forme et par les
propriétés de sa membrane externe. En effet, il est généralement plus long que
les dendrites, et se ramifie à son extrémité, là où il communique avec d’autres
neurones, alors que les ramifications des dendrites se produisent plutôt près du
corps cellulaire.
Pour former le système nerveux, les neurones sont connectés les uns aux
autres suivant des répartitions spatiales complexes. Les connexions entre deux
neurones se font en des endroits appelés synapses où ils sont séparés par un petit
espace synaptique de l’ordre d’un centième de microns.
1.1.1.2 Fonctionnement des neurones
Les fonctions spécifiques réalisées par un neurone dépendent
essentiellement des propriétés de sa membrane externe. Ainsi, celle-ci remplit
cinq fonctions principales:
3
-elle sert à propager des impulsions électriques tout au long de l’axone et
des dendrites;
-elle libère des médiateurs à l’extrémité de l’axone;
-elle réagit à ces médiateurs au niveau des dendrites;
-elle réagit au niveau du corps cellulaire aux impulsions électriques que
lui transmettent les dendrites pour générer ou non une nouvelle impulsion;
-elle permet au neurone de reconnaître les autres neurones afin qu’il
puisse se situer au cours de la formation du cerveau et trouver les cellules
auxquelles il doit être connecté.
D’une façon simple, comme l’illustre la figure 1.1, on peut dire que le
corps cellulaire du neurone traite les courants électriques qui lui proviennent de
ses dendrites, et qu’il transmet le courant électrique, si un certain seuil est
atteint, résultant de ce traitement aux neurones auxquels il est connecté par
l’intermédiaire de son axone.
corps cellulaire
dendrite
seuillage
axone
sommation
Figure 1.1. Le corps cellulaire comme sommateur à seuil.
Le schéma classique présenté par les biologistes et illustré par la figure
1.1, est celui d’un corps cellulaire effectuant une sommation des influx nerveux
transmis par ses dendrites. Si la sommation dépasse un seuil, le neurone répond
4
par un influx nerveux ou potentiel d’action qui se propage le long de son axone.
Si la sommation est inférieure à ce seuil, le neurone reste inactif. L’influx
nerveux qui se propage entre différents neurones est, au niveau de ces neurones,
un phénomène électrique.
Selon toujours Stevens (1979), la propagation de l’influx nerveux généré
par le corps cellulaire du neurone est assurée par un mécanisme de pompe et de
canaux présents dans la membrane axonique. Les pompes considérées sont des
pompes à ions qui maintiennent dans l’axone une différence de concentration en
ions sodium et potassium par rapport au milieu extérieur. Leur rôle est
d’expulser les ions sodium et d’attirer les ions potassium. Les canaux sont
répartis le long de la membrane axonique et permettent ou refusent le passage
des ions sodium et potassium. Au repos, quand aucun influx n’est transmis, les
canaux sont fermés et les pompes assurent le maintien du potentiel négatif dans
l’axone. Quand il y a propagation d’un influx nerveux généré par le corps
cellulaire, la différence de potentiel entre le milieu extérieur et l’axone diminue.
Cela provoque l’ouverture des canaux à sodium situés juste en avant de l’influx
nerveux. Le résultat de l’entrée des ions sodium dans l’axone est une inversion
du potentiel qui existait et donc une propagation de l’influx nerveux. Juste après
l’ouverture des canaux à sodium, ce sont les canaux à potassium qui s’ouvrent
automatiquement. Ce phénomène provoque une ré-inversion du potentiel et
ramène l’axone à son état électrique initial. C’est ainsi que se propage de lui-
même le potentiel d’action.
1.1.1.3 Les synapses
Le rôle des synapses est fondamental pour permettre aux cellules
nerveuses de communiquer entre elles (Mac Clelland et Rumelhart, 1988). Les
5
signaux qui se propagent dans les neurones sont de nature électrique.
Cependant, il n’existe pas de liaisons directes entre deux cellules nerveuses.
Celles-ci sont séparées par un espace appelé fente synaptique que l’influx
électrique ne peut traverser. Le relais s’effectue à ce niveau par l’intermédiaire
d’un médiateur chimique, c’est-à-dire, l’arrivée du potentiel d’action à l’une des
extrémités de l’arborisation terminale, déclenche la libération d’une substance
chimique appelée neuro-transmetteur qui est soit excitateur car il excite le
neurone cible et produit dans celui-ci une nouvelle impulsion, soit inhibiteur car
il bloque l’impulsion nerveuse aux endroits synaptiques où il sert de relais.
Cette substance diffuse dans l’espace synaptique et vient se fixer sur des
récepteurs spécifiques appelés neuro-récepteurs, situés sur la terminaison du
neurone cible. Cette fixation provoque l’ouverture de canaux ioniques, ce qui
peut donner naissance à un nouveau signal électrique.
1.1.1.4 Organisation et communication
Chez les animaux, et en particulier chez l’homme, le système nerveux
central est le moteur de l’organisation du milieu interne. Le cerveau y joue le
rôle de centre de contrôle général. Ce contrôle s’effectue à différents niveaux
afin de pouvoir assurer à la fois stabilité et adaptabilité (Stevens, 1979). Au
niveau de la stabilité, le cerveau assure la commande et la coordination centrale
de l’activité neuro-motrice en fonction des informations internes et externes.
Pour cela il doit:
-disposer de programmes d’actions qui seront déclenchés par des stimuli
particuliers;
-disposer de programmes d’analyse des informations sensorielles qui lui
permettent de construire des représentations du monde extérieur adéquates;
6
-disposer de programmes d’analyse des informations internes pour
évaluer l’état dans lequel il se trouve.
Au niveau de l’adaptabilité, le cerveau doit assurer les fonctions
cognitives que possèdent les invertébrés et vertébrés supérieurs, c’est-à-dire:
-être capable de mémorisation, afin d’enregistrer les évènements
significatifs pour modifier ou enrichir ses programmes d’actions;
-être capable d’imagination, c’est-à-dire de représenter et de simuler des
évènements.
Comme nous l’avons déjà vu, le cerveau, comme commande centrale de
l’organisme, doit recevoir des informations en provenance de l’environnement
et du corps lui-même. Le cerveau reçoit des informations sur l’environnement,
par l’intermédiaire de capteurs sensoriels spécialisés.
1.1.1.5 Formation du cerveau-apprentissage-mémoire
Selon Delacour et Danchin (1978), les expériences de privations
sensorielles montrent une grande modification de l’anatomie de la partie du
système nerveux liée à l’organe des sens sur lequel a été effectuée la privation.
Cette altération n’a cependant lieu qu’à condition que la privation soit effectuée
chez le jeune individu et non à l’âge adulte. D’une manière plus générale, ceci
nous amène à nous interroger ‘‘sur les caractéristiques structurales et
fonctionnelles qui associent la génèse post-natale des réseaux nerveux, les
aptitudes à un apprentissage et l’acquisition d’une mémoire’’ (Delacour et
Danchin, 1978). Les recherche en électrochimie nous permettent d’exposer la
théorie suivante sur l’évolution du système nerveux.
La mise en place du système nerveux se fait selon un programme
héréditaire. Ce programme est défini sur la donnée à l’instant initial:
7
-d’un réseau de neurones à connexions maximales;
-du mécanisme de fonctionnement de chaque classe de neurones;
-du potentiel d’évolution des synapses.
Tous ces éléments sont sous contrôle génétique. L’évolution du système
nerveux est alors due à l’interaction entre l’environnement extérieur et le
programme génétique. Cette évolution se traduit par l’évolution des synapses
qui soit dégénèrent, soit se stabilisent d’une manière plus ou moins réversible.
Selon Davalo et Naïm (1990), l’évolution du réseau se fait par un
mécanisme sélectif qui imprime sur le réseau une image de l’environnement.
L’apprentissage, comme la mémorisation, ne peut se caractériser au niveau
biochimique que par l’évolution des connexions entre les neurones. On peut en
effet définir l’apprentissage comme l’acquisition de propriétés associatives
stables, ou, ‘‘toute modification du comportement, relativement durable, que
l’on peut attribuer à l’expérience sensorielle passée de l’organisme’’ (Delacour
et Danchin, 1978), et la mémorisation comme l’engrangement et le rappel de
ces propriétés ou modifications. Ainsi, l’apprentissage serait un mélange
complexe de contraintes innées et de hasards acquis. Pour la mémoire, les
résultats sont moins évidents. Si l’on sait que la mémoire immédiate fait
intervenir des mécanismes de nature bioélectrique, on ne sait toujours pas où et
comment est stockée la mémoire à long terme, ni comment s’effectue son rappel
(Chapoutier et al., 1980). L’idée qui domine en neuro-biologie est celle d’un
stockage dans les macro-molécules du cerveau, soit dans les protéines, soit dans
l’acide ribonucléique (ARN). Son origine remonte à la découverte du stockage
de notre code génétique dans les molécules d’acide désoxyribonucléique
(ADN), constituantes essentielles des chromosomes du noyau cellulaire. Il était
alors tentant d’établir une analogie entre le mode de stockage de notre mémoire
innée et celui de notre mémoire acquise.
8
1.1.1.6 La règle de Hebb
L’idée d’un mécanisme ‘‘synaptique’’ de couplage avait été proposée par
Hebb dès 1949. D’après ce dernier:
‘‘quand une cellule A excite par son axone une cellule B et que, de
manière répétée et persistante, elle participe à la genèse d’une impulsion
dans B, un processus de croissance ou un changement métabolique a lieu
dans l’une ou dans les deux cellules, de telle sorte que l’efficacité de A à
déclencher une impulsion dans B est, parmi les autres cellules qui ont cet
effet, accrue’’.
Ainsi, l’évolution d’une synapse est sensible aux échanges
d’informations entre les deux neurones que relie cette synapse, ce qui cadre bien
avec la théorie selon laquelle l’évolution du réseau nerveux est due à
l’interaction entre l’environnement et le programme génétique.
En conclusion, nous pouvons dire que tout ce qui a été exposé
précédemment peut s’inscrire dans le cadre, soit d’une caractérisation
biologique, soit d’une caractérisation fonctionnelle du cerveau. La
caractérisation biologique du cerveau (à un niveau très simplifié) peut se faire
par: la description de ses éléments constitutifs de base: les neurones; l’étude de
son architecture, c’est-à-dire de la façon dont les neurones sont reliés entre eux;
le regroupement des deux points précédents pour étudier son fonctionnement;
l’étude de son évolution, ce qui pose les problèmes de la mémoire et de
l’apprentissage. Ceci est l’objet de la neuro-anatomie. Au niveau fonctionnel, le
cerveau est caractérisé par son rôle de système central de commande de
l’organisme. Il en résulte qu’il doit disposer d’informations, être capable de les
traiter, et enfin diriger les actions de l’organisme qui l’abrite.
9
1.1.2 Qu’est-ce qu’un réseau de neurones artificiels ?
Avec comme base les observations neuro-anatomiques et
neurophysiologiques de la partie précédente, nous présentons ici les
modélisations les plus générales des réseaux de neurones. D’abord, retenons que
lorsque nous parlons d’un réseau de neurones, il serait mieux de dire “réseau de
neurones artificiels (RNA)”, parce que c’est ce que nous sous-entendons. En
effet, les réseaux de neurones biologiques (RNB) sont beaucoup plus complexes
que les modèles mathématiques utilisés dans les réseaux de neurones artificiels.
Un réseau de neurones artificiels, dont un cas particulier est illustré à la
figure 1.2, est un ensemble composé de plusieurs petites unités appelées, dans la
littérature neuronale, des cellules ou des neurones. Chaque cellule a une
capacité de calcul et une petite quantité de mémoire (mémoire locale). Ainsi
chaque cellule peut faire de petites opérations mathématiques pour les
transmettre aux cellules de la couche suivante. Un groupe de cellules effectuant
les mêmes opérations mathématiques, constitue un groupe appartenant à la
même couche. Ainsi on a une couche d’entrée composée des cellules ayant une
action directe sur les variables (régresseurs), une couche de sortie composée des
cellules calculant l’estimateur de la variable dépendante et une ou plusieurs
couches cachées pour des opérations internes. Pour cette transmission, les
cellules sont reliées d’une couche à l’autre de façon unidirectionnelle par des
ports de communication (connexions), lesquels véhiculent les données
numériques. Ceux-ci représentent les synapses dont on a parlé dans la section
précédente. L’ensemble des cellules et des connexions constitue le réseau de
neurones. Les cellules opèrent seulement sur les données qu’on leur fournit
localement et sur les entrées qu’elles reçoivent des connexions. Cette
architecture des réseaux de neurones artificiels est ce qui les distingue le plus
des modèles mathématiques plus classiques.
10
Ainsi, sous le terme de réseau de neurones artificiels, on regroupe un
certain nombre de modèles dont l’intention est d’imiter certaines des fonctions
du cerveau humain en reproduisant certaines de ses structures de base
présentées dans la partie précédente.
cellules de la cellules de la cellules de la
couche d’entrée couche cachée couche de sortie
Figure 1.2. Structure générale typique d’un RNA avec une seule couche cachée.
1.1.3 Historique des réseaux de neurones artificiels
Les origines de cette discipline sont historiquement très diversifiées. En
1943, McCulloch et Pitts étudièrent un ensemble de neurones formels
interconnectés et montrèrent leurs capacités à calculer certaines fonctions
logiques. Par analogie avec l’activité du corps cellulaire (figure 1.1), McCulloch
et Pitts ont proposé le modèle suivant.
Un neurone formel fait une somme pondérée des potentiels d’actions qui
lui parviennent (chacun de ces potentiels est une valeur numérique qui
11
représente l’état du neurone qui l’a émis), puis s’active selon la valeur de cette
somme pondérée. Si cette somme dépasse un certain seuil, le neurone est activé
et transmet une réponse (sous forme de potentiel d’action) dont la valeur est
celle de son activation. Si le neurone n’est pas activé, il ne transmet rien.
Leur neurone formel (voir figure 1.3) est formé d’une ou de plusieurs
cellules dans la couche d’entrée et d’une seule cellule dans la couche de sortie
car la nature de la sortie est binaire (-1 ou +1). La nature des entrées zi avec
i=1,...,N, est aussi binaire car suivant leur modèle, chaque cellule d’entrée
transmet à la cellule de sortie la valeur de son activation qui n’est rien d’autre
que -1 ou +1. Afin d’écarter toute ambiguité, notons que zi est la valeur
numérique qui entre dans le neurone depuis la iième cellule d’entrée et non la
notation de la iième cellule de la couche d’entrée. Donc, la i
ième cellule de la
couche d’entrée est un contenant et zi est son contenu.
La cellule de sortie calcule la quantité
O W zi i
i
N
= −
=
∑σ θ1
avec (1.1)
σ ( ),
,X
si X
si X=
+ ≥
− <
1 0
1 0
où
i = 1,..., N : indice des entrées,
z i : iième entrée binaire,
Wi : paramètre de pondération de la valeur émise de la iième cellule de
la couche d’entrée. Notons que Wi
i
N
=
∑1
est différente de 1 et de 0,
θ : une constante,
O : valeur de sortie du réseau,
12
σ : fonction d’activation qui est une fonction binaire à seuil (voir
figure 1.4). Elle prend la valeur +1 ou -1, avec ( )σ 0 0= .
z1
W1
z2
W2
. . +1 O
. θ
. -1
. . . W
N
zN
Figure 1.3. Le neurone de McCulloch-Pitts .
σ (x)
1
0 x
-1
Figure 1.4. Fonction binaire à seuil.
Comme nous l’avons vu, les synapses peuvent jouer différents rôles.
Elles peuvent être inhibitrices ou excitatrices. Pour modéliser ce rôle, on a
choisi d’affecter à chaque connexion entre deux neurones formels un poids Wi
13
qui pondère le signal transmis. Comme il se doit, la dynamique des connexions
ne s’intéresse qu’aux réseaux dont les poids des connexions sont évolutifs. On
peut interpréter -θ comme l’utilisation d’un neurone qui fournirait toujours
l’entrée z0 = -1 au neurone étudié. Ceci fait que la fonction d’entrée totale
(équation 1.1) est une fonction affine et définit le prétraitement effectué sur les
entrées. On peut rappeler l’analogie avec les modèles de régression linéaire où,
on utilise comme première variable X0 = 1 en plus des autres variables
indépendantes afin d’inclure un terme constant dans le modèle.
À la suite des recherches de McCulloch et Pitts (1943) qui aboutirent à la
définition du neurone formel, et de celles de Hebb (1949) qui fournirent une
explication synaptique du mécanisme d’apprentissage, les chercheurs se sont
retrouvés confrontés au problème qui consiste à expliquer les fonctionnalités du
cerveau par celles de ses structures.
À la fin des années 1950, la neurobiologie ne disposait pas encore de
techniques modernes de l’électro-chimie pour étudier les structures du cerveau.
L’idée de certains chercheurs fut alors d’utiliser les modélisations des neurones
et de l’évolution des synapses pour simuler des réseaux de neurones
biologiques. Ils espéraient que si la construction de tels réseaux ne violait
aucune contrainte biologique, ceux-ci pourrait exhiber des comportements
proches de ceux du cerveau et ainsi fournir des explications sur le
fonctionnement de celui-ci.
Le premier modèle fut présenté par Rosenblatt en 1962, c’était le
perceptron. Ce modèle a pour propriétés:
- d’être spécifié en termes suffisamment précis pour permettre le test des
performances annoncées;
- d’être suffisamment complexe pour que l’on puisse espérer des
comportements intéressants;
14
- d’être suffisamment simple pour que ses performances puissent être
prédites et analysées;
- enfin et surtout d’être en accord avec les faits biologiques.
Ce modèle suscita beaucoup de recherches et sans doute trop d’espoirs.
En 1969 deux mathématiciens, Minsky et Papert, démontrèrent les limites
théoriques du perceptron. L’effet fut presqu’immédiat: les chercheurs se
désintéressèrent des RNA pour se tourner vers l’approche symbolique de
l’intelligence artificielle qui semblait alors beaucoup plus prometteuse.
Le renouveau actuel des RNA est dû à des contributions originales,
comme celle de Hopfield en 1982 qui, en montrant l’analogie des RNA avec
certains systèmes physiques, a permis de leur appliquer un formalisme riche et
bien maîtrisé. En 1985, des nouveaux modèles mathématiques ont permis de
dépasser les limites du perceptron.
Plusieurs milliers d’articles ont maintenant été publiés sur le sujet dans
des revues de biologie, de psychologie, de mathématiques, de physique,
d’électronique, d’économie et de statistique, chacun abordant le problème dans
le cadre de sa spécialité.
1.2 Choix d’algorithme
Comme nous l’avons vu dans la section sur les fondements biologiques,
la règle de Hebb est le premier mécanisme d’évolution proposé pour les
synapses. Son interprétation pour les réseaux de neurones formels est la
suivante.
On considère que si deux neurones connectés entre eux sont activés au
même moment, la connexion qui les relie doit être renforcée. Dans les cas
contraires, elle n’est pas modifiée.
15
Si nous prenons les conventions suivantes:
cellule activée.
cellule non-activée.
La règle de Hebb donne alors:
cellules émettrices cellules réceptrices
connexion renforcée
connexions non
modifiées
Ceci traduit bien le fait que lorsque la connexion entre deux cellules est
très forte, quand la cellule émettrice s’active, la cellule réceptrice s’active aussi.
Il faut donc, pour lui permettre de jouer ce rôle déterminant lors du mécanisme
d’apprentissage, augmenter le poids de cette connexion.
En revanche, si la cellule émettrice s’active sans que la cellule réceptrice
le fasse, ou si la cellule réceptrice s’active alors que la cellule émettrice ne
s’était pas activée, cela traduit bien le fait que la connexion entre ces deux
cellules n’est pas prépondérante dans le comportement de la cellule réceptrice.
16
On peut donc, dans la phase d’apprentissage, laisser un poids faible à cette
connexion.
Notons par W tji ( ) le poids de connexion entre le neurone i et le neurone j
à l’instant t. Supposons qu’entre les instants t et t+∂t, on ait soumis le réseau à
un stimulus, et que ce stimulus ait provoqué l’activation Aj du neurone j, et
l’activation Ai du neurone i. Supposons de plus que Aj et Ai soient binaires
(d’un point de vue général, il est complètement équivalent que l’on prenne les
valeurs des activations dans (0, 1) ou dans (-1, +1)). La règle de Hebb
permettant la modification des poids s’écrit:
W t t W t A Aji ji j i( ) ( )+ = +∂ η , (1.2)
où η (η > 0) est un paramètre de l’intensité de l’apprentissage. Il permet de
renforcer ou non la connexion qui relie les neurones j et i, car il augmente si la
connexion est prépondérante et diminue sinon, sachant que les valeurs possibles
des activations sont dans (-1, +1).
Si tout le monde s’accorde à reconnaître la modification des poids des
connexions comme le principe même de l’apprentissage, les règles utilisées
pour y arriver sont variées.
Les méthodes de modification de poids sont basées sur un apprentissage
supervisé: en d’autre termes, on connaît à chaque fois la sortie désirée, qui
équivaut à la variable dépendante dans la méthode de régression. Ainsi, dans le
cas d’un réseau à une couche d’entrée et une couche de sortie, un “professeur ”
qui connaît parfaitement la réponse attendue (sortie désirée) guide le réseau en
lui rappelant à chaque instant t le bon résultat. Le réseau, prenant en compte son
erreur, modifie ses poids en utilisant la règle de Hebb (équation 1.2). On définit
son erreur comme étant la différence entre la sortie désirée et la sortie obtenue
donnée par l’équation 1.1. Mais si l’on introduit une couche supplémentaire de
neurones entre la couche d’entrée et la couche de sortie (voir la figure 1.2), le
“professeur ” ne sachant pas les modifications survenues au niveau de la couche
17
qui est cachée, aura du mal à indiquer la sortie attendue aux neurones de la
couche cachée. Ainsi la question devient comment évaluer l’impact de la
modification d’un poids de la couche d’entrée et aussi de la couche cachée sur
la réponse finale ?
Ce problème est général à tous les systèmes d’apprentissage, qu’ils soient
naturels ou artificiels. Ainsi, lorsqu’un joueur d’échecs perd une partie, sauf
dans le cas où il a commis une erreur flagrante, il lui est très difficile de tirer un
enseignement particulier de chacun des coups qu’il a joué au cours de la partie.
Dans le cas des RNA à plusieurs couches, ce problème s’exprime de la
façon suivante: Comment répercuter sur chacune des couches précédentes,
l’erreur qui n’est mesurée que sur la couche de sortie ?
Ce problème a donné lieu à la mise au point dans les années 1980 de
l’algorithme de rétropropagation du gradient.
1.2.1 Algorithme de rétropropagation du gradient
L’algorithme de rétropropagation du gradient a été mis au point
simultanément et indépendamment par une équipe en France (Le Cun et
Fogelman-Soulié, 1985) et une autre aux États-Unis (Rumelhart, Hinton et
Williams, 1986).
L’idée simple à la base de cet algorithme est l’utilisation d’une fonction
dérivable en remplacement de la fonction binaire σ(x), illustrée par la figure
1.4. Mathématiquement, cet algorithme n’utilise que des règles simples de
dérivations successives et ne présente aucune difficulté particulière.
L’avantage est que cet algorithme, en plus de permettre la propagation du
signal provenant des cellules d’entrée vers la couche de sortie, permet, en
suivant le chemin inverse, rétropropager l’erreur commise en sortie vers les
couches internes. Au niveau des réseaux de neurones biologiques, ce signal
18
correspond à l’influx nerveux, alors qu’au niveau des réseaux de neurones
artificiels, ce signal correspond à la valeur numérique résultant des opérations
mathématiques effectuées dans chaque cellule.
1.2.2 Modèle général de l’apprentissage par rétropropagation
Considérons le cas particulier d’un réseau à trois couches: une couche
d’entrée, un couche cachée et une couche de sortie. Ce réseau peut être défini
par les éléments suivants et qui constituent aussi les étapes de la propagation du
signal d’une couche à l’autre:
- la nature et le nombre de ses entrées. Ses entrées sont des variables
indépendantes prenant des valeurs numériques (catégorielles, discrètes ou
continues). Le nombre de ses variables d’entrée est égal au nombre de cellules
dans la couche d’entrée;
- une fonction d’entrée totale au niveau des cellules de la couche cachée
qui définit le prétraitement effectué sur les variables d’entrée de la couche
d’entrée. Cette fonction est en général une fonction affine;
- une fonction d’activation (fonction dérivable) des cellules de la couche
cachée qui définit son état interne en fonction de son entrée totale. Cette
fonction est en général une fonction logistique (par exemple la fonction
tangente hyperbolique);
- une fonction d’entrée totale au niveau des cellules de la couche de
sortie qui définit le prétraitement effectué sur les résultats obtenus par la couche
cachée. Cette fonction est en général aussi une fonction affine;
- une fonction d’activation (fonction dérivable) des cellules de la couche
de sortie qui définit son état interne en fonction de son entrée totale. La forme
de cette fonction dépend de la nature des sorties désirées. Si les sorties désirées
19
sont binaires [-1, +1] ou sont continues mais comprises, de façon générale, dans
un intervalle [-a , a], on peut utiliser une fonction tangente hyperbolique
sigmoïde. Si les sorties désirées sont continues mais comprises dans l’intervalle
[0 , 1], on peut utiliser une fonction sigmoïde. Ces fonctions seront définies
dans la suite.
Nous adoptons les notations suivantes:
h indique la couche cachée,
o indique la couche de sortie,
i = 1,..., N : indice des variables d’entrée ou des cellules de la couche
d’entrée car à chaque variable correspond une cellule. N étant le
nombre de cellules dans la couche d’entrée,
j = 1,..., L : indice des cellules cachées. L étant le nombre de cellules dans la
couche cachée,
k = 1,..., M : indice des cellules de sortie. M étant le nombre de cellules dans
la couche de sortie,
p = 1,..., P : indice des observations. P étant la taille échantillonnale. Dans la
litérature neuronnale, les observations sont aussi appelées les
exemples,
z p i : iième variable d’entrée de la pième observation,
Dpk
: kième sortie désirée (variable dépendante) de la pième observation,
W ji
h : poids de connexion entre la iième cellule de la couche d’entrée et
la jième cellule de la couche cachée,
θ j
h : terme constant au niveau de la jième cellule de la couche cachée .
Wkj
o : poids de connexion entre la jième cellule de la couche cachée et
la kième cellule de la couche de sortie,
θ k
o : terme constant au niveau de la kième cellule de la couche de
sortie.
20
Les termes constants θ j
h et θ k
o peuvent être nuls. Dans ce cas, au lieu
d’utiliser une fonction linéaire affine pour modéliser les fonctions d’entrées
totales, on utilise plutôt une fonction linéaire (sans terme constant).
Suivant les étapes de la propagation du signal, définies au début de cette
section, on calcule d’abord l’entrée totale au niveau de chaque cellule j de la
couche cachée par sommation sur les cellules i de la couche d’entrée, en
utilisant une fonction affine, et nous notons l’entrée totale par netpj
h . Ce calcul
est fait pour chaque observation p. On a donc:
n et W zp j
h
ji
h
p i
i
N
j
h= +=
∑1
θ . (1.3)
Ensuite, on calcule l’état interne de chaque cellule j de la couche cachée, en
fonction de son entrée totale (équation 1.3) en utilisant une fonction d’activation
f dérivable, et nous notons cet état interne par Ipj
. On a donc
( )I f n e tp j p j
h= . (1.4)
De même, pour chaque cellule k de la couche de sortie, on calcule d’abord
l’entrée totale par sommation sur les cellules j de la couche cachée, en utilisant
une fonction affine, et nous notons l’entrée totale par netpk
o . On a donc
n e t W Ip k
o
jk
o
p j k
o
j
L
= +=
∑ θ1
. (1.5)
Ensuite, on calcule l’état interne de chaque cellule k de la couche de sortie, en
fonction de son entrée totale (équation 1.5) en utilisant une fonction d’activation
g dérivable, et nous notons cet état interne par Opk . On a donc
( )O g n e tp k p k
o= . (1.6)
Le choix de f et g dépend de l’expérimentateur et il n’est pas exclu que
les fonctions f et g soient égales.
21
Au lieu de Opk , on pourrait écrire ( )O z W Wpk pi ji
h
kj
o h
L
h o
M
o, , , , , , , ,θ θ θ θ1 1L L
avec p = 1, ..., P, i = 1, ..., N, j = 1, ..., L et k = 1, ..., M, car, suivant les
équations 1.3 à 1.5, Opk dépend des valeurs de z W Wpi ji
h
kj
o
j
h, , ,θ et θ k
o. Les
sorties Opk sont les estimateurs des sorties désirées D
pk. Les poids W Wji
h
kj
o
j
h, ,θ
et θ k
o sont aussi appelés les paramètres libres du réseau.
Généralement, les sorties Opk sont les sorties finales obtenues par le
réseau, mais dans certaines études où l’expérimentateur veut comme sorties
finales un vecteur de probabilité, les sorties Opk sont alors transformées en
vecteur de probabilité par la fonction log-linéaire qui fera l’objet d’analyse dans
le chapitre 2.
Contrairement à la méthode de régression où le modèle est généralement
une seule équation mathématique, le modèle d’un RNA est constitué des quatre
équations (1.3 à 1.6) qui forme aussi les étapes de la propagation du signal.
Après avoir obtenu les sorties Opk du réseau pour chaque cellule de la
couche de sortie, on les compare respectivement, aux sorties désirées Dpk
correspondantes en calculant le coût quadratique CQ , et qui est de la forme
( )C Q D Op k p k
k
M
p
P
= −==
∑∑12
2
11
. (1.7)
Le coût quadratique CQ est bien une fonction des z W Wpi ji
h
kj
o
j
h, , ,θ et
θ k
ocar il est fonction des sorties O
pk . Notons que la fonction coût la plus
utilisée est le coût quadratique. Mais pour notre étude, à partir du chapitre 2,
nous utiliserons le coût donné par la valeur négative du logarithme de la
fonction du maximum de vraisemblance (Ciampi et Lechevallier (1995), Ripley
(1994a), Ripley (1994b)).
22
L’apprentissage consiste à minimiser en ses paramètres libres le coût
quadratique CQ, sur l’ensemble des exemples d’apprentissage. Ceci peut se
faire par une descente de gradient sur le coût CQ. Le gradient est défini comme
étant la dérivée de CQ par rapport aux poids ( , , , )W Wji
h
kj
o
j
h
k
oθ θ . Il est
évidemment impossible d’effectuer la descente de gradient dans un réseau
multi-couches où les fonctions d’activation sont des fonctions binaires, car les
fonctions binaires étant non dérivables, la dérivée du coût par rapport aux poids
( , , , )W Wji
h
kj
o
j
h
k
oθ θ n’existe pas. L’utilisation de neurones à fonctions d’activation
dérivables est donc cruciale pour résoudre ce problème.
Par analogie à la règle de Hebb concernant la modification des poids des
connexions (équation 1.2), le gradient qui résulte de CQ est propagé sur chaque
couche, mais, cette fois, de la couche de sortie vers la couche d’entrée. Par
conséquent, nous devons calculer l’activation entre un neurone k de la couche
de sortie et un neurone j de la couche cachée. Cette activation n’est autre que
∂
∂
CQ
Wkj
o . Étant donné qu’il n’y a pas de relation mathématique directe entre CQ
et Wkj
o , nous obtenons ∂
∂
CQ
Wkj
o par la règle des dérivées successives, qui est
∂
∂
∂
∂
∂
∂
∂
∂
CQ
W
CQ
O
O
net
net
Wkj
o
pk
pk
pk
o
pk
o
kjp
P
==
∑ 01
, (1.8)
avec
( )∂
∂
CQ
OD O
pk
pk pk= − − ,
= −O Dpk pk
(1.9)
et
( )
( )∂
∂
∂
∂
O
net
g net
netg net
pk
pk
o
pk
o
pk
o pk
o= = ′ , (1.10)
car nous n’avons pas défini une forme explicite de la fonction d’activation g.
23
On a ∂
∂
net
WI
pk
o
kj
o pj= (1.11)
et
∂
∂θ
net pk
o
k
o= 1 , (1.12)
car n e t W Ip k
o
k j
o
p j k
o
j
L
= +=
∑ θ1
.
Ainsi, l’activation entre un neurone k de la couche de sortie et un neurone j de la
couche cachée (équation du gradient de la surface d’erreur) est
( ) ( )∂
∂
CQ
WO D g net I
kj
o pk pk pk
o
pj
p
P
= − ′=
∑1
(1.13)
et
( ) ( )∂
∂θ
CQO D g net
k
o pk pk pk
o
p
P
= − ′=
∑1
. (1.14)
De même, nous allons calculer l’activation entre un neurone j de la couche
cachée et un neurone i de la couche d’entrée. Cette activation n’est autre que
∂
∂
CQ
W ji
h . Nous obtenons aussi ∂
∂
CQ
W ji
h par la règle de dérivées successives, ce qui
nous donne
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
CQ
W
CQ
O
O
net
net
I
I
net
net
Wji
h
pk
pk
pk
o
pk
o
pj
pj
pi
h
pi
h
ji
hp
P
==
∑1
, (1.15)
avec
( )
( )∂
∂
∂
∂
I
net
f net
netf net
pj
pi
h
pi
h
pi
h pi
h= = ′ , (1.16)
car nous n’avons pas défini une forme explicite de la fonction d’activation f.
On a ∂
∂
net
IW
pk
o
pj
kj
o= , (1.17)
car n e t W Ip k
o
k j
o
p j k
o
j
L
= +=
∑ θ1
.
Aussi, on a
∂
∂
net
Wz
pj
h
ji
h pi= (1.18)
24
et
∂
∂θ
net pj
h
j
h= 1 , (1.19)
car n e t W zp j
h
j i
h
p i
i
N
j
h= +=
∑1
θ .
Ainsi, l’activation entre un neurone j de la couche cachée et un neurone i de la
couche d’entrée (équation du gradient de la surface d’erreur) est
( ) ( ) ( )∂
∂
CQ
Wf net z O D g net W
ji
h pj
h
p
P
pi pk pk pk
o
kj
o
k
M
= ′ − ′= =
∑ ∑1 1
(1.20)
et
( ) ( ) ( )∂
∂θ
CQf net O D g net W
j
h pj
h
p
P
pk pk pk
o
kj
o
k
M
= ′ − ′= =
∑ ∑1 1
. (1.21)
Compte tenu de la structure itérative de l’algorithme, toutes les quantités
W Wji
h
kj
o
j
h
k
o, , ,θ θ , netpj
h , Ipj
, netpk
o , Opk et CQ , sont aussi fonction de l’instant t.
Donc, pour certains besoins, au lieu de CQ, on notera plutôt CQ( t ).
Selon la règle de Hebb concernant la modification des poids qui est
donnée par W t t W t A Aji ji j i( ) ( )+ = +∂ η (équation 1.2), si t dénote l’instant ou la
période d’apprentissage, on obtient à l’instant t+1 les modifications de poids
suivantes:
( ) ( )( )
W t W tC Q (t
W tkj
o
kj
o
kj
o+ = +1 η
∂
∂
), (1.22)
( ) ( )( )
θ θ η∂
∂θk
o
k
o
k
ot t
C Q (t
t+ = +1
), (1.23)
( ) ( )( )
W t W tC Q (t
W tji
h
ji
h
ji
h+ = +1 η
∂
∂
) , (1.24)
( ) ( )( )
θ θ η∂
∂θj
h
j
h
j
ht t
C Q (t
t+ = +1
), (1.25)
avec η (η > 0) que nous avons défini comme étant un paramètre d’intensité de
l’apprentissage qui permet de renforcer ou non la connexion qui relie les
neurones. On l’appelle aussi le facteur d’apprentissage ou le pas du gradient.
25
Si les gradients (dérivées) ( )
∂
∂
CQ(t
W tji
h
) , ( )
∂
∂
CQ(t
W tkj
o
),
( )
∂
∂θ
CQ (t
tj
h
) et ( )
∂
∂θ
CQ(t
tk
o
) sont
strictement inférieurs à zéro, c’est-à-dire la pente de la courbe de CQ en
fonction de chaque poids ( )W tji
h , ( )W tkj
o , ( )θ j
ht et ( )θk
ot est négative, réduire
CQ t( ) équivaut à augmenter ( )W tji
h , ( )W tkj
o , ( )θ j
ht et ( )θk
ot , alors que s’ils sont
strictement supérieurs à zéro, réduire CQ t( ) équivaut à diminuer ( )W tji
h , ( )W tkj
o ,
( )θ j
ht et ( )θk
ot .
Remarquons que si ( )
∂
∂
CQ(t
W tji
h
) , ( )
∂
∂
CQ(t
W tkj
o
),
( )
∂
∂θ
CQ (t
tj
h
) et ( )
∂
∂θ
CQ(t
tk
o
) sont nuls, il
n’y a pas de modifications des poids des connexions (équations 1.22 à 1.25) car
ces derniers restent constants d’une période d’apprentissage à l’autre, c’est-à-
dire ( )W t W tji
h
ji
h+ =1 ( ), ( )W t W tkj
o
kj
o+ =1 ( ) , ( )θ θj
h
j
ht t+ =1 ( ) et ( )θ θk
o
k
ot t+ =1 ( ) .
Ainsi, le réseau n’apprend pas car la modification des poids des connexions
définit le principe même de l’apprentissage.
Ce processus est donc répété à chaque itération t. Si pour tous les
exemples, le coût est inférieur à un seuil choisi, on dit alors que le réseau a
convergé. Mais selon ce critère, l’apprentissage peut être long avant de
converger. C’est pourquoi on emploie aussi d’autres critères d’arrêt de
l’apprentissage tels que:
- le nombre maximum de périodes d’apprentissage (nombre de pas de
l’algorithme);
- la variation absolue du coût entre les périodes t et t+1. Cette variation
absolue, selon Haykin (1994), doit être petite, typiquement entre 0,1% et 1%. La
valeur la plus utilisée est 0,1%;
- le critère hybride de Kramer et Sangiovanni-Vincentelli (1989). Celui-
ci porte sur la norme du vecteur gradient qui doit être inférieure à un gradient
seuil ε suffisamment petit;
26
-le critère utilisant la généralisation (Haykin, 1994). Après chaque
période d’apprentissage, le réseau est testé pour sa performance à généraliser,
un peu à la façon de la validation croisée c’est-à-dire, on teste le réseau sur de
nouvelles observations ne faisant pas partie de l’ensemble d’apprentissage. Le
processus d’apprentissage est stoppé lorsque la performance à généraliser est
adéquate selon l’expérimentateur. Cette performance à généraliser se mesure en
calculant l’erreur entre la réponse désirée et la réponse obtenue en utilisant de
nouvelles observations. Dans le cas de la classification, la performance à
généraliser se mesure en déterminant l’erreur de classification qui est le fait de
se tromper sur la classe exacte d’une observation.
Dans une situation pratique, le critère d’arrêt de l’apprentissage est choisi
par rapport à l’objectif et aux analyses subséquentes envisagées.
1.3 Les facteurs d’apprentissage et de lissage Étant donné les équations 1.22 à 1.25, nous pouvons dire que la
procédure d’apprentissage requiert une modification des poids des connexions
( )W tji
h +1 , ( )W tkj
o +1 , ( )θ j
ht +1 et ( )θk
ot +1 à l’instant t+1, proportionnellement à
( )
∂
∂
CQ(t
W tji
h
) , ( )
∂
∂
CQ(t
W tkj
o
),
( )
∂
∂ θ
C Q ( t
tj
h
) et ( )
∂
∂θ
CQ(t
tk
o
) respectivement. La constante de
proportionnalité est le facteur d’apprentissage η qui est aussi défini comme
étant le paramètre d’intensité de l’apprentissage ou le pas du gradient. Si nous
adoptons une rigueur proche de celle des réseaux de neurones biologiques, et
sachant que η permet de renforcer ou non la connexion qui relie deux neurones,
nous pouvons dire que, en fonction de l’instant t, η augmente si la connexion est
prépondérante et diminue sinon. Par conséquent, η n’est pas identique pour
toutes les connexions et elle est fonction du niveau d’activation, à un instant t,
27
entre deux neurones interconnectés. Ainsi une des difficultés de l’apprentissage
neuronal avec descente de gradient est de trouver, à chaque instant t, le facteur
d’apprentissage optimal qui permettra une meilleure convergence. Ce problème
est le plus souvent résolu par l’implantation d’algorithmes tels que la méthode
Levenberg-Marquardt qui utilise le jacobien ou la méthode de Newton qui
utilise la matrice hessienne. Pour plus de détails, nous invitons le lecteur à lire
Haykin (1994).
En pratique, une autre solution pour résoudre ce problème, est de choisir
un seul facteur d’apprentissage mais assez grand de façon à obtenir une courbe
de convergence moins lisse, offrant beaucoup de points anguleux (figure 1.5
courbe b). Une courbe de convergence moins lisse crée le plus souvent des
zones de minima locaux. Aussi, on conseille d’introduire dans les équations de
modification des poids des connexions (données en début de cette section) un
facteur de lissage noté α qui a pour rôle de rendre plus lisse la courbe de
convergence et ce facteur de lissage tient compte de la variation des poids entre
les instants t-1 et t. Ainsi, on a les nouvelles équations suivantes:
( ) ( ) ( )( )
( )( )W t W tC Q (t
W tW tkj
o
kj
o
kj
o kj
o+ = + − +1 1η α∂
∂α
)∆ , (1.26)
( ) ( ) ( )( )
( )( )θ θ η α∂
∂θα θk
o
k
o
k
o k
ot t
C Q (t
tt+ = + − +1 1
)∆ , (1.27)
( ) ( ) ( )( )
( )( )W t W tC Q (t
W tW tji
h
ji
h
ji
h ji
h+ = + − +1 1η α∂
∂α
)∆ , (1.28)
( ) ( ) ( )( )
( )( )θ θ η α∂
∂θα θj
h
j
h
j
h j
ht t
C Q (t
tt+ = + − +1 1
)∆ , (1.29)
avec les variations des poids entre les instants t-1 et t données par: ( )( ) ( ) ( )∆ W t W t W tk j
o
k j
o
k j
o= − − 1 , (1.30)
( )( ) ( ) ( )∆ θ θ θk
o
k
o
k
ot t t= − − 1 , (1.31)
( )( ) ( ) ( )∆ W t W t W tji
h
ji
h
ji
h= − − 1 , (1.32)
( )( ) ( ) ( )∆ θ θ θj
h
j
h
j
ht t t= − − 1 . (1.33)
28
La figure 1.5 illustre un cas simple de courbes de convergence avec deux
poids de connexions W1 et W2. C’est une figure en trois dimensions (CQ, W1 et
W2), dont CQ est fonction de W1 et W2. Une courbe de convergence est une
courbe de CQ( t ) en fonction de chaque poids ( )W tji
h , ( )W tkj
o , ( )θ j
ht et ( )θk
ot
obtenu aux instants 0, 1, 2,..., t, t+1,..., c’est-à-dire qu’à chaque instant t on
calcule le coût et les poids. Nous pouvons remarquer que les trois courbes de
convergence a), b) et c) convergent vers le même point ( )CQ W W∗ ∗ ∗, ,1 2 , mais
l’allure des courbes diffère.
CQ W2
( )CQ W W∗ ∗ ∗, ,1 2
b a
c
W1
Figure 1.5. Descente de gradient dans l’espace des poids: a) pour un petit facteur
d’apprentissage η; b) pour un facteur d’apprentissage η élevé, et c)
avec un facteur d’apprentissage η élevé et un facteur de lissage α.
Sachant que chaque longueur de flèche représente un pas de descente de
gradient à un instant t, la courbe a) tend vers le point de convergence à petits
pas, les courbes b) et c) tendent aussi vers le point de convergence mais à
grands pas et à une allure moins lisse au niveau de la courbe b).
29
1.4 Les fonctions d’activation usuelles et leur dérivée
Dans l’apprentissage d’un RNA multi-couches avec rétropropagation du
gradient, les fonctions d’activation les plus utilisées sont:
- la fonction linéaire ( )f X aX b= + (1.34)
qui est définie sur l’ensemble des réels et dont la fonction dérivée est
∂
∂
f X
Xa
( )= . (1.35)
- la fonction sigmoïde ( )( )
f XX
=+ −
1
1 exp (1.36)
qui est définie sur l’ensemble [ 0, 1] et dont la fonction dérivée est
( ) ( )( )∂
∂
f X
Xf X f X
( )= −1 . (1.37)
- la fonction tangente hyperbolique sigmoïde, la plus populaire des
fonctions d’activation asymétriques (Haykin, 1994) est donnée par
( ) ( )[ ]f X a bX= tanh . (1.38)
Elle est définie sur l’ensemble [-a, a] où a et b sont des constantes réelles.
Notons que la fonction tangente hyperbolique sigmoïde n’est autre que la
fonction logistique avec changement de position et d’échelle puisque
( )[ ]( )( )
a bX abX
bXtanh
exp
exp=
− −
+ −
1
1
( )
=+ −
−2
1
a
bXa
exp. (1.39)
Sa fonction dérivée est
( )( )∂
∂
f X
Xab f X
( )( )= −1
2 . (1.40)
30
1.5 Initialisation des poids des connexions
La première étape de l’apprentissage avec rétropropagation du gradient
est, bien sûr, l’initialisation du réseau. Un bon choix des valeurs initiales des
poids des connexions Wji
h , Wkj
o , θ j
h et θk
o des neurones peut être une aide
formidable pour la convergence de l’apprentissage. Dans le cas où une
information a priori est connue, il serait mieux de l’utiliser pour choisir les
poids initiaux. Mais comment initialiser les poids si aucune information a priori
n’est connue ?
Il existe certaines approches (Bengio, 1995) donnant des façons
d’initialiser les poids. En pratique, les poids sont initialisés aléatoirement selon
une distribution uniforme. Cependant, cette approche mène parfois à un
problème appelé problème de saturation du réseau. Ce problème est illustré à la
figure 1.6, pour le cas d’une fonction d’activation tangente hyperbolique
sigmoïde et d’une fonction d’activation sigmoïde. La saturation du réseau est la
situation où le gradient reste presque nul après chaque période de temps durant
le processus d’apprentissage, c’est-à-dire selon les équations vues
précédemment et données par ( ) ( )∂
∂
CQ
WO D g net I
kj
o pk pk pk
o
pj
p
P
= − ′=
∑1
(équation 1.13)
et ( ) ( ) ( )∂
∂
CQ
Wf net z O D g net W
ji
h pj
h
p
P
pi pk pk pk
o
kj
o
k
M
= ′ − ′= =
∑ ∑1 1
(équation 1.20), si les dérivées
′f netpj
h( ) et ′g netpk
o( ) par rapport aux entrées totales netpj
h et netpk
o , sont près de
zéro, alors les gradients ∂
∂
CQ
Wkj
o et
∂
∂
CQ
Wji
h sont presque nuls. Donc il n’y a pas de
modifications des poids des connexions (équations 1.22 à 1.25). Notons qu’au
niveau de la forme des courbes de la figure 1.6, les zones appelées zones de
saturation sont linéaires mais correspondent aussi à des endroits où ′f netpj
h( ) et
31
′g netpk
o( ) sont nulles. Ce qui les différencie des zones appelées zones de quasi-
linéarité car dans les zones de quasi-linéarité les dérivées ′f netpj
h( ) et ′g netpk
o( )
sont proches de 1.
a) Tangente hyperbolique sigmoïde (f ou g) b) Sigmoïde (f ou g)
saturation linéaire saturation
+a +1
0 net 0 net
-a
saturation linéaire saturation
points de courbure maximale
Figure 1.6. Zone de quasi-linéarité et de saturation de
a) la Tangente hyperbolique sigmoïde et de b) la Sigmoïde.
La cause première de la saturation est due au fait que les entrées totales
netpj
h et netpk
o sont trop grandes en valeur absolue si les poids des connexions
sont aussi trop grands en valeur absolue. Or, sachant que les entrées totales netpj
h
et netpk
o sont fonctions des poids des connexions Wji
h , Wkj
o , θ j
h et θk
o (voir les
équations 1.3 et 1.5), il est alors préférable de réinitialiser les poids, en espérant
qu’il n’y ait plus de problème de saturation. Pour cela, on choisi des bornes [a,
b] de la distribution uniforme, avec 0 < a < b < 1 telle que a soit de plus en plus
grand et b de plus en plus petit. Une autre méthode est de modifier certains
32
paramètres d’apprentissage comme par exemple le facteur de lissage ou le pas
du gradient.
Ceci complète les généralités que nous voulions introduire sur les
réseaux de neurones artificiels multi-couches. Nous nous tournons maintenant,
et pour le reste de ce mémoire, vers une approche plus statistique ayant, en
particulier, des applications sur des données catégorielles.
33
CHAPITRE 2
Aspects statistiques: application aux données catégorielles
(classification)
2.1 Introduction
La plupart des récentes utilisations des réseaux de neurones artificiels
sont dévéloppées pour le contexte de la classification. Ainsi, en statistique, les
réseaux de neurones artificiels sont utilisés en tant que classificateurs (analyse
discriminante), détecteurs de classe (classification automatique), estimateurs
non paramétriques de régression non linéaire et aussi comme estimateurs de
fonctions de densité. Il est souvent aisé d’associer à un modèle statistique un
réseau de neurones. L’intérêt de cette démarche est double: d’une part, le réseau
peut offrir une solution au problème d’optimisation sous-jacent à l’estimation
des paramètres du modèle correspondant en utilisant, par exemple, l’algorithme
de rétropropagation; d’autre part, le modèle ainsi reformulé est susceptible
d’engendrer des généralisations, c’est-à-dire pouvoir prédire les classes
auxquelles appartiennent de nouvelles observations n’ayant pas été utilisées lors
de la phase d’apprentissage.
Malgré leur flexibilité et leur universalité, les réseaux de neurones
artificiels ne peuvent se soustraire aux limites intrinsèques de toute modélisation
statistique et plus particulièrement à celles de l’estimation non paramétrique,
notamment au dilemme “biais-variance” voulant qu’on ne peut pas diminuer le
biais d’un estimateur sans augmenter sa variance, et vice-versa. Dans le
contexte neuronal, on peut toujours augmenter la qualité de l’approximation en
34
augmentant le nombre de neurones et de connexions, ce qui entraîne la
diminution du biais. Cependant, le gain ainsi obtenu est malheureusement
compensé par une augmentation de la variance, c’est-à-dire une diminution du
pouvoir de généralisation.
2.2 Les données
Soit D = [Z|Y] une matrice de données dont les lignes représentent les
individus, les observations ou exemples et les colonnes représentent les mesures
prises par ces individus sur les variables (z,y). Ici, y est un vecteur de variables
binaires dont les composantes ypk , k = 1, ..., M et p = 1, ..., P, sont les variables
indicatrices de M classes:
ypour un individu p de la k classe
dans les autres caspk
ieme
=
1
0
,
.
Notons qu’il y a autant de classes M que de neurones dans la couche de
sortie du réseau. Par ailleurs, zp est un vecteur de variables quelconques,
qualitatives ou quantitatives pris par l’individu p. Nous supposerons, sans perte
de généralité, que les variables qualitatives sont binaires car on peut remplacer
une variable qualitative à V valeurs par V-1 variables binaires. On veut
construire, à partir de la matrice de données D, un prédicteur de la distribution
de probabilité sur les M classes sachant les données d’entrées z et les poids des
connexions Wji
h , Wkj
o , θ j
h et θk
o avec i = 1, ..., N et j = 1, ..., L. N étant le
nombre de neurones dans la couche d’entrée ou le nombre de variables d’entrée
et L le nombre de neurones dans la couche cachée. Cette distribution de
probabilité est une loi multinomiale d’ordre M dont le paramètre est représenté
35
par le vecteur de probabilité a posteriori dont la kième composante correspondant
à la classe cpk pour le pième individu est donnée par
Prpk = Pr[cpk | zp, Wji
h , Wkj
o , θ j
h, θk
o ].
Notons, pour chaque individu p, ( )Pr Pr , , Pr , , Prp p pk pM
=′
1 L L , le vecteur de
probabilité dont la kième composante est Prpk. Afin de simplifier les écritures,
nous adoptons, dans la suite, la notation Prpk au lieu de
Pr[cpk | zp, Wji
h , Wkj
o , θ j
h, θk
o ].
Dans notre formulation, on vise la construction d’un prédicteur de classe.
Un prédicteur de classe peut être aisément construit une fois que la fonction
d’erreur de classement est spécifiée et que l’on se donne comme objectif de
minimiser le risque de mauvaise classification. Par exemple la fonction d’erreur
de classement peut être spécifiée en utilisant la règle de décision de Bayes que
nous verrons dans une section ultérieure. Une solution classique à la
construction d’un prédicteur de classe, est obtenue par les modèles de régression
logistique. Ici, nous allons construire un prédicteur de classe en utilisant les
réseaux de neurones artificiels.
2.3 Fonction log-linéaire
Comme nous l’avions vu au chapitre 1, la propagation avant dans un
réseau de neurones artificiels permet de calculer les valeurs de sorties du réseau
Op1 , ..., Opk qui sont fonctions des vecteurs d’entrée zp et des poids des
connexions Wji
h , Wkj
o , θ j
h et θk
o . Pour les valeurs de sorties du réseau, nous
voulons que ces valeurs soient interprétables en terme de probabilités
36
d’appartenance aux classes a priori. Ces probabilités doivent vérifier les
contraintes suivantes:
(1) ∀k = 1, ... , M et ∀p = 1, .., P, 0 ≤ Prpk ≤ 1 (2.1)
et
(2) Prpk
k
M
==
∑ 11
pour tout individu p. (2.2)
On définit les probabilités a posteriori en utilisant la fonction log-linéaire, ce
qui nous donne
Prexp( )
exp( )pk
pk
pk
k
M
O
O
=
=
∑1
, (2.3)
avec Opk la valeur de sortie de la kième cellule de la couche de sortie pour le pième
individu.
Il est évident que l’équation 2.3 vérifie bien les contraintes (2.1) et (2.2)
car
0 1
1
≤ ≤
=
∑
exp( )
exp( )
O
O
pk
pk
k
M (contrainte 2.1)
et pour tout individu p, on a la contrainte 2.2 vérifiée par
exp( )
exp( )
exp( )
exp( )
exp( )
exp( )
O
O
O
O
O
O
p
pk
k
M
pk
pk
k
M
pM
pk
k
M
1
1 1 1
1
= = =
∑ ∑ ∑+ + + + =L L .
2.4 Fonction coût: valeur négative du logarithme de la
fonction du maximum de vraisemblance
La fonction coût que nous utilisons n’est plus le coût quadratique mais
plutôt la valeur négative du logarithme de la fonction du maximum de
37
vraisemblance. Le vecteur de probabilité Prp , pour un individu p, correspondant
à une distribution multinomiale d’ordre M, on peut écrire en fonction de
variables indicatrices, la fonction logarithme du maximum de vraisemblance
comme étant
log log PrL ypk pk
k
M
p
P
===
∑∑11
, (2.4)
où ypour un individu p de la k classe
dans les autres caspk
ieme
=
1
0
,
.
et Prpk = Pr[cpk | zp, Wji
h , Wkj
o , θ j
h, θk
o ].
Or Prexp( )
exp( )pk
pk
pk
k
M
O
O
=
=
∑1
,
ainsi on a
log logexp( )
exp( )
L yO
Opk
pm
pm
m
M
k
M
p
P
=
=
== ∑∑∑
1
11
, (2.5)
= y O Opk pk pm
m
M
k
M
p
P
−
===
∑∑∑ log exp( )111
. (2.6)
Estimer les probabilités a posteriori Prpk revient à maximiser log L , ou à
minimiser l L= − log . La quantité l qui sera notre fonction coût est appelée la
valeur négative du logarithme de la fonction du maximum de vraisemblance, et
est donnée par
l y O Opk pk pm
m
M
k
M
p
P
= − −
===
∑∑∑ log exp( )111
. (2.8)
38
2.5 Descente de gradient
Comme dans la section 1.2.2, les étapes de la descente de gradient ainsi
que le calcul de netpj
h , Ipj , netpk
o et Opk sont identiques. Mais la différence se
situe au niveau de la fonction coût utilisée. Ainsi, au lieu de la fonction coût
quadratique CQ, nous utilisons la fonction coût notée l, et donc les gradients
( )
∂
∂
CQ
W tji
h,
( )
∂
∂
CQ
W tkj
o,
( )
∂
∂θ
CQ
tj
h et
( )
∂
∂θ
CQ
tk
o sont respectivement remplacés par les
gradients ( )
∂
∂
l
W tji
h,
( )
∂
∂
l
W tkj
o,
( )
∂
∂θ
l
tj
h et
( )
∂
∂θ
l
tk
o donnés par
∂
∂
∂
∂
∂
∂
∂
∂
l
W
l
O
O
net
net
Wkj
o
pk
pk
pk
o
pk
o
kj
op
P
==
∑1
(2.8)
et
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
l
W
l
O
O
net
net
I
I
net
net
Wji
h
pk
pk
pk
o
pk
o
pj
pj
pj
h
pj
h
ji
hp
P
==
∑1
. (2.9)
À part la dérivée ∂
∂
l
Opk
, toutes les autres dérivées ont été évaluées dans la
section 1.2.2. La dérivée∂
∂
l
Opk
a été obtenue par Ripley (1993b). Sachant que
l y O Opk pk pm
m
M
k
M
p
P
= − −
===
∑∑∑ log exp( )111
, on a
∂
∂
l
Oy y
pk
pk pm
m
M
pk= − −
=
∑1
Pr , (2.10)
= y ypm
m
M
pk pk
=
∑
−
1
Pr . (2.11)
Or, on a kième valeur
ypk
k
M
M termes M classes=
∑ = + + + + + + =1
0 0 1 0 0 1L L1 2444 3444( )
pour tout individu p, (2.12)
39
car ypour un individu p de la k classe
dans les autres caspk
ieme
=
1
0
,
.
D’où on tire que
∂
∂
l
Oy
pk
pk pk= −Pr . (2.13)
Ainsi, les probabilités a posteriori Prpk obtenues pendant la phase
d’apprentissage estime les probabilités exactes d’appartenir aux classes sachant
les observations z. Les probabilités exactes sont évidemment inconnues. Mais la
minimisation de la fonction coût l passe par la résolution de ∂
∂
l
Oy
pk
pk pk= −Pr
car si l’individu zp appartient à la classe cpk, c’est-à-dire ypk
= 1, alors la
probabilité exacte d’appartenir à la classe cpk est plus proche de 1, et est
supérieure aux probabilités exactes d’appartenir aux M - 1 autres classes. Par
conséquent, si Prpk
estime la probabilité exacte d’appartenir à la classe cpk, alors
∂
∂
l
Oy
pk
pk pk= −Pr est satisfaite au niveau de chaque neurone k de la couche de
sortie, pour chaque individu zp.
2.6 Les erreurs d’apprentissage, de test et de généralisation
Dans cette section, nous étudions différents types d’erreurs de
classification qui sont, entre autres, importants pour l’étude de la validation
croisée. L’erreur de classification est définie comme étant le fait d’attribuer à
une observation zp, une classe différente de sa vraie classe.
Supposons que nous disposons d’un échantillon S d’observations de
taille P. On peut partitionner l’échantillon en deux sous-ensembles
d’observations disjoints. Un premier sous-ensemble servant pendant la phase
40
d’apprentissage et un deuxième servant pendant la phase de test, c’est-à-dire
pour tester la performance du modèle obtenu après la phase d’apprentissage.
Notons que les paramètres de ce modèle sont les poids des connexions obtenus
au point de convergence.
Si l’erreur de classification est déterminée sur le sous-ensemble servant
pendant la phase d’apprentissage, on parle d’erreur d’apprentissage. Par contre,
si l’erreur de classification est déterminée sur le sous-ensemble servant pendant
la phase de test, on parle d’erreur de test.
Adoptons les notations suivantes:
Sappr : ensemble servant à la phase d’apprentissage ou ensemble d’apprentissage,
Stest : ensemble servant à la phase de test ou ensemble de test,
Pappr
: taille échantillonnale de l’ensemble Sappr ,
Ptest : taille échantillonnale de l’ensemble Stest ,
E appr : erreur d’apprentissage,
E test : erreur de test.
On a S S Sappr test
∪ = et S Sappr test
∩ = ∅ .
La détermination de l’erreur de test Etest
permet d’avoir une idée de la
performance du modèle pour prévoir de nouvelles observations ne faisant ni
partie de Sappr ni de Stest et dont on ne dispose pas encore. Cette qualité de
prédiction pour de nouvelles observations encore inconnues est mesurée par un
type d’erreur qui est appelée l’erreur de généralisation notée Egen
. Évidemment,
Egen
est inconnue car basée sur des observations dont on ne dispose pas. En
pratique, elle est estimée par l’erreur de test Etest
mais de façon intuitive, on peut
prédire que E Egen test
> car l’estimateur Etest
est basée sur un ensemble fini
d’observations alors que la prédiction de Egen
est basée sur un ensemble infini
d’observations.
41
Étant donné que Etest
est utilisée pour estimer Egen
, on choisit
l’architecture neuronale qui performe le mieux sur l’ensemble Stest
, c’est-à-dire
ayant la plus petite erreur de test Etest
. Ce choix de l’architecture correspond à
un nombre de neurones dans la couche cachée fixé de façon empirique, on ne
peut pas se contenter des résultats obtenus avec une seule architecture. Il faut
donc faire plusieurs essais en faisant varier le nombre de neurones dans la
couche cachée pour effectuer au mieux ce choix.
2.6.1 Courbes de généralisation et d’apprentissage
Étudions maintenant, les comportements des erreurs d’apprentissage
Eappr
et de généralisation Egen
en analysant les courbes de généralisation et
d’apprentissage, c’est-à-dire les représentations graphiques de Eappr
et Egen
en
fontion de la variation de certains paramètres tels la capacité du réseau (que
nous définirons) et le nombre d’observations dans l’ensemble Pappr
.
La capacité du réseau est définie comme étant le nombre maximal
d’exemples ou d’observations que le réseau peut toujours classer correctement,
c’est-à-dire le pouvoir de déterminer la classe à laquelle appartient chaque
observation. En effet, compte tenu de certaines difficultés d’apprentissage telles
que: les minima locaux, le temps d’apprentissage trop court ou les difficultés
numériques dues à l’implantation de l’algorithme, le réseau ne peut pas classer
correctement toutes les observations. On dit alors que le réseau ne peut pas
atteindre sa capacité effective. La capacité est aussi appelée la dimension de
Vapnik-Chervonenkis (Ripley, 1994a). Plus la capacité augmente, plus l’erreur
d’apprentissage Eappr diminue. Mais l’erreur de généralisation Egen diminue
avant de remonter lorsque la valeur h* de la capacité est atteinte. La figure 2.1
42
illustre les courbes d’erreur d’apprentissage et de généralisation en fonction de
la capacité du réseau (gardant Pappr
fixé). La valeur h* est la capacité optimale,
c’est-à-dire la capacité qui permet une meilleure généralisation.
Erreur
Egen
Eappr
h* h = capacité
( Pappr
fixé)
capacité optimale Figure 2.1. Courbes de généralisation et d’apprentissage en fonction de la capacité du
réseau. En effet, quand on mesure les performances d’un réseau sur des
observations ne faisant pas partie de l’ensemble d’apprentissage Sappr
, un réseau
constitué de plusieurs neurones et connexions peut se montrer moins performant
qu’un réseau plus simple, car le réseau peut être devenu trop complexe. Ceci
entraîne une modélisation plus difficile. Donc, il est possible d’augmenter la
capacité d’un réseau en augmentant le nombre de neurones et de connexions
jusqu’à un certain seuil h* après lequel les choses se dégradent. Une autre
approche consiste à augmenter le temps d’apprentissage jusqu’à atteindre un
temps d’arrêt optimal, qui lui aussi est source de diminution de la capacité (voir
la figure 2.2).
43
On constate sur les figures 2.1 et 2.2 que l’erreur d’apprentissage Eappr
décroît sensiblement en fonction de la capacité ou du temps d’apprentissage.
Mais une phase d’apprentissage où tous les exemples d’apprentissage sont
appris correctement ne performe pas mieux pour autant à la généralisation car le
plus souvent les surfaces de décision sont très complexes.
Erreur
Egen
Eappr
temps d’apprentissage
temps d’arrêt optimal de ou capacité effective l’apprentissage
Figure 2.2. Courbes de généralisation et d’apprentissage en fonction du temps
d’apprentissage.
Si nous nous trouvons dans un cas où le nombre d’exemples
d’apprentissage et la capacité sont infinis (voir la figure 2.3), alors l’erreur
d’apprentissage est nulle car la capacité est infinie, c’est-à-dire que pendant la
phase d’apprentissage, le réseau arrive à classer correctement tous les exemples.
L’erreur de généralisation diminue constamment en fonction de la capacité et,
de façon asymptotique, elle converge vers l’erreur de généralisation espérée E∞
qui est la plus petite erreur de généralisation possible lorsque le nombre
d’exemples d’apprentissage et la capacité tendent vers l’infini. Concrètement,
cela veut dire que tous les exemples pouvant exister dans la vie réelle étant
passés par l’étape de l’apprentissage, le réseau ne peut être confronté à un
44
exemple qu’il n’a jamais vu. Ceci est tout à fait utopique et donc il est
impossible d’avoir une performance atteignant l’erreur de généralisation
espérée.
E∞ Egen asymptote : meilleure Egen possible quand P
appr → ∞ et h → ∞
E∞ h = capacité
Figure 2.3. Courbe de l’erreur de généralisation espéréé.
Si nous exprimons respectivement Eappr
et Egen
, en fonction du nombre
d’exemples Pappr
dans l’ensemble d’apprentissage, par les équations
E ac
Pappr
appr
≅ −β
et E ab
Pgen
appr
≅ +δ
, où a, b, c, β et δ sont des constantes, et, si
la capacité est fixé et que Pappr
augmente infiniment (voir la figure 2.4), alors
l’erreur d’apprentissage reste constante (égale à zéro) si Pappr
est inférieur ou
égal à la capacité fixée. Elle devient supérieure à zéro et augmente jusqu’à
atteindre le seuil E∞ = a à partir du moment où Pappr
est supérieur à la capacité
fixée. L’erreur de généralisation diminue jusqu’à atteindre ce même seuil E∞ .
Même si certains exemples ne sont pas classés correctement parce que la
capacité du réseau est dépassée, le réseau performe de mieux en mieux
lorsqu’on augmente Pappr
et asymptotiquement, l’erreur d’apprentissage est égale
à l’erreur de généralisation.
45
Erreur
E ab
Pgen
appr
≅ +δ
asymptote E∞ = a Si P
appr → ∞ , alors
Eappr = Egen → E∞ = a.
E ac
Pappr
appr
≅ −β
h Pappr
= nb. exemples d’apprentissage
(la capacité fixée)
Si c b≈ et δ β≈ , alors EE Eappr gen
∞ ≈+
2.
Figure 2.4. Courbes de généralisation et d’apprentissage en fonction du nombre d’exemples.
Remarque 2.1: La façon idéale d’augmenter la qualité réelle de
l’approximation est d’augmenter la taille de la base de données. Mais
malheureusement l’obtention de nouvelles données s’avère souvent, dans la
pratique, coûteuse voire impossible.
Remarque 2.2: Un réseau de neurones à trois couches dont une couche cachée,
peut donner une approximation aussi bonne que possible d’une fonction
quelconque de plusieurs variables; la qualité de cette approximation augmente
en fonction du nombre de neurones utilisé.
Remarque 2.3: Les comportements des courbes d’apprentissage et de
généralisation que nous venons de voir sont identiques si on utilisait les
fonctions coût (CQ ou l) à la place des erreurs d’apprentissage de test et de
généralisation. Dans ce cas, on aura les coûts d’apprentissage, de test et de
généralisation.
46
2.7 Mesure de l’erreur de classification
2.7.1 Classification ambiguë
Pour différentes raisons, les régions de l’espace d’entrée associées à
chaque classe peuvent se superposer, c’est-à-dire pour une entrée zp donnée,
plusieurs classifications sont possibles. Ces sources d’ambiguïté peuvent
provenir:
- d’informations manquantes (problème le plus fréquent), c’est-à-
dire une partie des entrées possibles ne peut être observée;
- du nombre d’exemples limité. Ainsi, on ne peut dans ce cas
permettre une surface de décision très complexe sinon on serait confronté à un
problème d’apprentissage ‘‘par coeur’’ qui est défini comme étant le fait de
classer correctement toutes les observations z. Ceci n’est pas souhaitable pour la
généralisation.
Il s’agit donc non seulement de déterminer les régions associées à chaque
classe ck mais aussi la probabilité a posteriori Prpk de chaque classe cpk étant
donné un exemple zp et les poids des connexions Wji
h , Wkj
o , θ j
h et θk
o .
Pour déterminer l’erreur de classification, nous allons nous servir de la
théorie de décision de Bayes .
2.7.2 Théorie de décision de Bayes
L’idée à la base de cette méthode est qu’au lieu de modéliser directement
la surface de décision, on cherche à évalue d’abord les distributions des formes
z et ensuite on prend la décision optimale en supposant ces distributions
correctes. Pour cela définissons les probabilités a priori et a posteriori.
47
Probabilité a priori = Pr(forme quelconque z soit d’une certaine classe ck),
= Pr(ck),
avec la contrainte que Pr( )ck
k
M
=
∑ =1
1 , mais sans connaître cette forme. Si on
demandait de classer une forme inconnue z, on choisirait argmax Pr( )ck
k
, c’est-
à-dire, la classe ck pour laquelle la probabilité a priori Pr(ck) est maximum.
Nous définissons la probabilité a posteriori que la classe cpk, étant donné
l’observation zp et les poids des connexions Wji
h , Wkj
o , θ j
h et θk
o par
Prpk = Pr[cpk | zp, Wji
h , Wkj
o , θ j
h ,θk
o ]. Ainsi la décision optimale de Bayes sera
[ ]arg max Pr arg max Pr | ,pk
k kpk p ji
h
kj
o
j
h
k
oc z W W= , , , θ θ .
Ainsi, on choisirait la classe cpk qui maximise Prpk.
2.7.3 Justification de la décision de Bayes
Posons A = (zp, Wji
h , Wkj
o , θ j
h, θk
o ). La probabilité d’erreur de classification
est donnée par
Pr(erreur de classification | A) = 1 - Pr(classification correcte | A),
= 1 - Prpk.
Pour minimiser Pr(erreur de classification | A), on doit maximiser
Pr(classification correcte | A). Ainsi, le choix de cpk maximise donc la
probabilité Pr(classification correcte | A). L’erreur de classification est
minimisée quand on choisit Pr(erreur de classification | A) la plus petite
possible.
48
Après avoir défini et étudié la fonction coût donnée par le négatif du
logarithme du maximum de vraisemblance ainsi que les différentes erreurs de
classification, nous présentons les méthodes statistiques pouvant nous permettre
de sélectionner le meilleur modèle de RNA car étant donné deux RNA multi-
couches quelconques ayant le même nombre de neurones en entrée et en sortie,
on parle de différence d’architecture si leur nombre de neurones au niveau de la
couche cachée est différent.
49
CHAPITRE 3
Méthodes statistiques pour le choix du nombre de neurones
dans une couche cachée
3.1 Méthodes plus économiques en temps de calcul
Dans ce chapitre, nous montrons comment l’estimation de l’erreur de
classification, ou du coût, peut être appliquée au problème de sélection de la
meilleure architecture et qu’il en résulte des méthodes statistiques assez
économiques en temps de calcul. En particulier, on verra que la performance
d’un modèle neuronal est liée au nombre de connexions (paramètres libres)
qu’on a dans le réseau.
3.1.1 La méthode du coude
Nous avons vu, à la section 2.6, que lorsqu’on augmente le nombre de
connexions dans le réseau, la qualité de l’approximation augmente, ce qui
entraîne une diminution du coût obtenu à la phase d’apprentissage mais aussi
une diminution du pouvoir de généralisation. Ainsi, le problème consiste à
choisir de façon optimale le nombre de paramètres libres à partir des coûts
d’apprentissage obtenus pour chaque architecture.
50
Pour cela, nous allons utiliser la variation relative du coût entre deux
architectures différentes (Segal (1988), Ciampi et al. (1995), Negassa (1996,
1997)):
( )( ) ( )( ) ( )
∆ ll l
l lappr
j
apprj
apprj
apprj
apprj
=−
−
−
+
1
1
, (3.1)
où j est le nombre de cellules dans la couche cachée (c’est la quantité
indéterminée dans une architecture à trois couches) et ( )lappr j est le coût de la
valeur négative du logarithme de la fonction du maximum de vraisemblance
obtenu à la phase d’apprentissage pour l’architecture ayant j cellules dans la
couche cachée.
La variation relative donnée à l’équation 3.1 mesure le rapport de la
différence de coût entre j-1 et j cellules avec la différence de coût entre j et j+1
cellules. Si ce rapport tombe sous un certain seuil lorsque j dépasse une certaine
valeur et que, par la suite, les différences consécutives de coûts deviennent très
petites (en valeur absolue), alors on peut conclure que le gain en qualité
d’approximation est négligeable par rapport à la complexité de l’architecture.
Ainsi la meilleure architecture sera celle qui aura la variation relative ( )∆ lappr j
maximale, correspondant au ‘‘pic’’ le plus élévé au niveau de la courbe de
( )∆ lapprj en fonction de j. On appelle cette méthode, la méthode du coude car au
début, lorsqu’on a peu de cellules dans la couche cachée, les variations du coût
sont importantes d’une valeur de j à l’autre. Mais plus on rajoute de cellules
dans la couche cachée, plus les variations du coût deviennent faibles d’une
valeur de j à l’autre.
51
3.1.2 L’AIC et le BIC
Une approche possible, pour choisir la meilleure architecture, consiste à
pénaliser l’architecture la plus complexe. Pour cela on peut utiliser le critère
d’information d’Akaike (AIC) (Akaike, 1974) ou le critère d’information
bayésien (BIC) de Schwarz (1978) dont les formules sont:
AIC l Tappr= +2 2 , (3.2)
BIC l P Tappr appr= +2 log( ) , (3.3)
où T est le nombre de paramètres libres et Pappr la taille échantillonnale de
l’échantillon servant à la phase d’apprentissage.
Selon cette approche, la meilleure architecture est celle ayant le plus petit
AIC (ou BIC). Typiquement le BIC choisit un modèle plus parcimonieux que
celui choisi par l’AIC (Cheng et Titterington, 1994) puisque lorsque
log( )Pappr
> 2 , il pénalise plus fortement le nombre de paramètres.
Ces deux critères ont été utilisés dans la littérature neuronale, mais une
des difficultés pour les réseaux de neurones artificiels est de quantifier de façon
correcte la complexité, qui n’est pas simplement et seulement déterminée par le
nombre de paramètres libres (Amari, 1993).
3.2 Méthodes moins économiques en temps de calcul
3.2.1 La validation croisée
Une autre approche pour le choix de j consiste à utiliser la validation
croisée. C’est une idée assez vieille, et dont les travaux clés remontent à Stone
(1974, 1977) et Allen (1974). Dans un contexte de prédiction de classe où l’on a
52
P couples ( )z yp p, d’observations, on veut trouver un modèle (une architecture,
dans le cas d’un RNA) qui permettra de prédire au mieux la classe cp pour de
futures observations zp. La méthodologie n’est pas différente de celle vue dans
la section 2.6. Ainsi, on sépare les P couples en deux sous-ensembles Sappr et
Stest de tailles respectives Pappr et Ptest , pas nécessairement égales. Avec le
premier sous-ensemble Sappr tout est permis (essai de différents modèles,
modification des poids de connexions initiaux, changement des facteurs
d’apprentissage et de lissage, ...) afin de construire une meilleure règle de
prédiction de classe pendant la phase d’apprentissage. La phase de test, aussi
appelée étape de validation, consiste à évaluer la qualité de la règle de
prédiction de classe obtenue à la première phase en calculant l’erreur de test sur
les observations du sous-ensemble Stest en utilisant le modèle et les poids de
connexions trouvés avec Sappr .
Il existe deux méthodes pour partitionner l’ensemble d’exemples lorsque
P est grand: la méthode de validation croisée sur deux groupes disjoints, du
terme anglais "split-sample cross-validation" et la méthode de validation croisée
sur v groupes disjoints (v > 2), du terme anglais "v-fold cross-validation".
Évidemment, l’ensemble de test Stest
doit être le plus représentatif possible de
nouvelles données.
3.2.1.1 Validation croisée sur deux groupes disjoints
Pour partitionner selon la méthode de validation croisée sur deux groupes
disjoints, on prend Stest
égal à un tiers (1/3) de l’ensemble des exemples choisis
aléatoirement dans cet ensemble des exemples. Avec ce choix, Sappr
sera donc
53
égal aux deux tiers (2/3) de l’ensemble des exemples. On fait l’apprentissage
sur Sappr
jusqu’à obtenir un coût raisonnable (ou jusqu’au point de convergence)
ce qui nous donne lappr, le coût d’apprentissage. Cette phase d’apprentissage
nous permet d’estimer les paramètres libres (poids de connexions). Une fois ces
estimateurs obtenus, on détermine le coût de test ltest sur l’ensemble de test Stest
en utilisant les paramètres libres estimés. La propagation avant du réseau nous
permet de déterminer le coût ltest et les probabilités a posteriori Prpk pour
chaque classe k et chaque observation p (voir chapitre 2).
3.2.1.2 Validation croisée sur plus de deux groupes disjoints
Pour cette méthode, on a deux façons de choisir l’ensemble de test Stest
:
1- la façon ‘‘1-sur-P’’, du terme anglais “leave-one-out cross-
validation”. Pour ce cas, l’ensemble d’apprentissage Sappr
contient P-1 observations et l’ensemble de test Stest
contient
une seule observation qui va permettre de valider le modèle
après la phase d’apprentissage. Ainsi, tour à tour, chacune des
observations est retiré de l’ensemble des exemples. Stone(1974)
montre que l’AIC et le ‘‘1-sur-P’’ sont asymptotiquement
équivalents;
2- la façon ‘‘K-sur-P’’, du terme anglais “leave-K-out cross-
validation”. Dans ce cas, l’ensemble de test Stest
contient K >1
observations pour valider le modèle après la phase
d’apprentissage.
Il est clair que lorsque la taille de l’ensemble d’apprentissage Sappr
augmente, la qualité du prédicteur augmente mais lorsque la taille de l’ensemble
54
de test Stest
diminue, la qualité de l’évaluation diminue. Ainsi il apparaît plus
judicieux d’utiliser le ‘‘K-sur-P’’.
Au niveau du fonctionnement, on divise l’échantillon de taille P en v
groupes disjoints contenant chacun K observations. Chaque groupe de K
observations est successivement utilisé comme ensemble de test Stest
pour
valider le modèle et les v-1 groupes restants, ayant au total P-K observations,
sont mis ensemble pour former l’ensemble d’apprentissage Sappr
utilisé à la phase
d’apprentissage. On recommence ainsi de suite jusqu’à ce que chaque partition
de K observations a servi tour à tour d’ensemble de test. Au total, on a donc v
ensembles de test Stest
et d’apprentissage Sappr
, par conséquent il faudra calculer
v coûts de test ltest et d’apprentissage lappr.
La méthode de validation croisée sur deux groupes disjoints est plus
économique en temps de calcul que la méthode de validation croisée sur plus de
deux groupes disjoints car dans la dernière, les phases d’apprentissage et de test
sont repétées v fois, contrairement à la première où on a une seule phase
d’apprentissage et de test. Cependant la méthode de validation croisée sur deux
groupes disjoints peut ne pas donner de bons résultats si l’ensemble de test Stest
n’est pas représentatif de nouvelles données ou si l’ensemble d’apprentissage ne
contient pas toutes les classes possibles. La méthode de validation croisée sur
plus de deux groupes disjoints permet de contourner ce problème car la
probabilité que tous les Stest
ne soient pas représentatifs devient faible quand v
augmente.
55
3.2.1.3 Critère de sélection de la meilleure architecture
Étant donné plusieurs architectures, il faut maintenant déterminer un
critère permettant de les comparer. Pour cela, nous allons utiliser les deux
méthodes de validation croisée qui ont été retenues, ainsi qu’une 3ième méthode,
la méthode du bootstrap.
3.2.1.3.1 Cas de la validation croisée sur plus de deux groupes
disjoints
Dans le cas de la validation croisée sur plus de deux groupes disjoints, on
dispose de v groupes. Pour chaque groupe, on calcule la moyenne des
performances de l’ensemble de test Stest
g( ) de taille K, qui est définie comme étant
la moyenne des coûts de test ltest
g( ) obtenus sur l’ensemble de test, après la phase
d’apprentissage basée sur Sappr
g( ) . On a donc
( )CVK
lg
test
g p
p
K∧=
=
∑( )
( ) ( )1
1
, (3.4)
où g est l’indice des groupes, g = 1, ..., v, p = 1,...,K, ( )ltest
g p( ) ( ) est le coût obtenu
pour l’observation p de l’ensemble de test Stest
g( ) .
Ainsi, nous obtenons
CVv
CVg
g
v∧=
∧
=
∑1
1
( )
, (3.5)
qui est la moyenne des performances pour une architecture donnée.
La variance échantillonnale des CVg∧ ( )
est donnée par
var( ) ( )
CVv
CV CVg g
g
v∧
=
−
∧−
∧
=
∑1
1
2
1
. (3.6)
56
Ainsi, la meilleure architecture est celle qui aura la plus petite moyenne
des performances CV∧
et la plus faible variance.
3.2.1.3.2 Cas de la validation croisée sur deux groupes disjoints
Dans le cas de la validation croisée sur deux groupes disjoints, nous
n’avons qu’un seul ensemble de test Stest
pour chaque architecture. Ainsi, le coût
de test ltest obtenu sur Stest
, après la phase d’apprentissage sur l’ensemble Sappr ,
représente la performance pour l’architecture donnée et la meilleure architecture
est celle qui aura le plus faible coût de test ltest .
3.2.2 La méthode du rééchantillonnage
La méthode du rééchantillonnage (bootstrap) fut proposée par Efron en
1979 pour résoudre le problème de l’estimation de la variance de statistiques
complexes.
Cette méthode toute simple consiste à rééchantillonner les données
originales D = [Z|Y] au hasard et avec remise, chaque échantillon bootstrap étant
dénoté ( )Z Yb
* *, , b = 1, ..., B. Ensuite on calcule les estimateurs bootstrap ( )θ∧
* b
pour chaque échantillon bootstrap, ce qui nous donne la moyenne des ( )θ∧
* b :
( ) ( )θ θ∧
• =∧
=
∑* *1
1Bb
b
B
. (3.7)
L’estimation bootstrap de l’écart type des ( )θ∧
* b est
57
( ) ( )seB
bB
b
B∧=
−
∧−
∧•
=
∑1
1
2
1
1
2
θ θ* * . (3.8)
Définissons se∧
∞ , l’écart type bootstrap exact, c’est-à-dire celui où B = ∞.
Il est facile de voir que
se seF
∧=
∧ ∧
∞
∧ θ * , (3.9)
où F∧
est l’estimateur de la loi F basé sur les données originales D.
On démontre à l’annexe 1 que, pour tout B,
E se seF
B∧ ∞
∧
=
∧2 2
(3.10)
et
E se E seF B F
∧
=
∧
∞
2 2
. (3.11)
Cependant (voir annexe 1)
var varF B F
se se∧
≥
∧
∞
2 2
, (3.12)
En d’autres termes, seB
∧ 2
a la même espérance que se∧
∞
2
, mais a une plus grande
variance.
Appliquée à notre réseau de neurones artificiels, la méthode du bootstrap
consiste à faire l’apprentissage sur chaque ensemble d’apprentissage bootstrap
( )Z Yb
* *, et d’estimer les paramètres libres (poids de connexions). À partir de
ces paramètres libres estimés, on fait le test sur les données originales et on
détermine le coût ( )BO b∧ ∗
qui est appelé l’estimateur du coût local de
généralisation, obtenu de l’échantillon original après apprentissage sur le bième
échantillon bootstrap.
Ainsi on a
58
( ) ( )BOB
BO bb
B∧• =
∧∗ ∗
=
∑1
1
. (3.13)
Ce qui permet de calculer l’écart type
( ) ( )seB
BO b BOB
b
B∧=
−
∧−
∧•
∗ ∗
=
∑1
1
2
1
1
2
. (3.14)
Avec ce critère de sélection, la meilleure architecture sera celle qui aura
le plus petit estimateur ( )BO∧
•∗
et le plus petit écart type seB
∧.
59
CHAPITRE 4
Implantation numérique et résultats
4.1 Implantation numérique
4.1.1 S-PLUS pour l’environnement ‘‘Windows’’
Pour notre étude, nous avons utilisé la version 3.3 du logiciel S-PLUS
pour ‘‘windows’’ (MathSoft, 1995) pour implanter notre réseau de neurones
artificiels multi-couches qui nécessite un puissant matériel informatique et par
conséquent, un espace mémoire suffisant.
Le logiciel S-PLUS est un logiciel statistique interactif qui dispose de
plusieurs fonctions générales, graphiques et statistiques facilitant la
programmation de nouvelles fonctions personnelles, mais ne dispose pas encore
de fonctions permettant l’apprentissage en réseau de neurones artificiels. La
version 3.3 de S-PLUS pour ‘‘Windows’’, par rapport aux versions antérieures,
dispose d’outils performants telle que la possibilité de créer soi-même ses
propres menus, c’est-à-dire un système de fenêtres d’appel de fonctions
permettant de lancer plus aisément les programmes. Ainsi, nous avons créé un
menu que nous avons inséré dans le menu principal du logiciel S-PLUS pour
‘‘windows’’. Cet avantage ne se retrouve pas sur le logiciel S-PLUS pour
système Unix. Malgré tous les avantages que le logiciel S-PLUS nous offre, il
faut admettre qu’il demeure un logiciel très vorace dans l’occupation d’espace
disque et d’espace mémoire de l’ordinateur. En ce qui concerne le matériel
60
informatique, nous avons travaillé avec un Pentium 133 hz, 8 RAM, 1.2 Go . Ce
qui était largement suffisant pour créer et exécuter nos programmes.
4.1.2 Méthodologie
Notre premier souci était d’implanter les outils pour l’apprentissage d’un
réseau de neurones multi-couches. Ainsi, nous avons implanté l’algorithme de
la descente du gradient avec ajout d’un facteur de lissage α . La valeur du coût l
est calculée à chaque période d’apprentissage, après le passage de toutes les
observations dans le réseau.
4.1.2.1 Les principales fonctions créées et leur description
Nous avons créé une soixantaine de fonctions ainsi que leur écran d’aide
que l’on trouvera en annexe 2. Les écrans d’aide permettent, comme leur nom
l’indique, d’avoir de l’aide concernant la syntaxe et les arguments de la fonction
désirée. Ainsi, en plus des fonctions générales indispensables à l’apprentissage
telles que la propagation avant, la rétropropagation, la mise à jour des
paramètres libres et le calcul des différentes erreurs de classification, nous
avons aussi créé des fonctions pour les méthodes statistiques étudiées au
chapitre 3.
61
4.1.2.2 Base de données réelles
Nous utilisons des données médicales. L’objectif de notre étude est
d’abord de trouver la meilleure architecture permettant une meilleure estimation
et prédiction sur nos données ensuite, de comparer ces estimations et prédictions
obtenues à celles de la méthode de régression logistique au niveau de
l’estimateur de la valeur négative du logarithme du maximum de la fonction de
vraisemblance et des erreurs de classification obtenues dans les deux cas.
La base de données réelles utilisée pour notre étude provient d’un
échantillon obtenu de l’Institut de Cardiologie de Montréal, mais les données
ont été recueillies sur des patients de différents hôpitaux de Montréal. Les
variables d’intérêt considérées sont différentes mesures du rythme cardiaque
sur 1549 patients. Nous avons 13 variables, sans valeurs manquantes, dont une
variable dépendante de type catégoriel ordinal et 12 variables indépendantes de
type continu. La description de ces 13 variables se trouve à l’annexe 3. La
variable dépendante, notée killip, est constituée de 4 classes mesurant l’état
cardiovasculaire du patient:
- Classe 1: pas de râles,
- Classe 2: râles en dessous du milieu des poumons du patient,
- Classe 3: les râles ont atteint le dessus du milieu des poumons du
patient,
- Classe 4: patient atteint d’un choc cardiogène.
La répartition des observations, suivant la classe killip à laquelle
appartient le patient, est assez inégale car nous avions 1069 patients (69%) dans
la classe 1; 359 patients (23,2%) dans la classe 2 ; 83 patients (5,4%) dans la
classe 3 et enfin 38 patients (2,4%) dans la classe 4.
62
4.1.2.3 Initialisation des paramètres libres
Pour l’obtention de résultats fiables dans un apprentissage de réseau de
neurones artificiels multi-couches, l’initialisation des paramètres libres reste une
des clés de succès.
Étant donné que les fonctions d’activation doivent être dérivables, nous
avons choisi d’utiliser comme fonction d’activation, au niveau de la couche
cachée, la fonction tangente hyperbolique sigmoïde et la fonction linéaire au
niveau de la couche de sortie, à laquelle, nous avons appliqué la fonction log-
linéaire afin d’obtenir les vecteurs de probabilité a posteriori. Pour nos données,
nous avons initialisé les poids des connexions de façon aléatoire à partir d’une
loi uniforme dans l’intervalle (-10-6, 10-6) assez réduit pour éviter les problèmes
de saturation du réseau. Le facteur d’apprentissage initial η choisi est égal à 10-4
et le facteur de lissage α initial est de 0,9. Nous sommes allés jusqu’à 10000
périodes d’apprentissage.
4.2 Présentation et analyses des résultats
Énoncé du problème:
La première phase de notre étude est de trouver la meilleure architecture
neuronale, en terme de prédiction sur de nouvelles observations ne faisant pas
partir de la base de données initiales. Pour cela nous utilisons un type général
d’architecture neuronale qui est le réseau de neurones à une couche cachée avec
un terme constant au niveau des couches d’entrée et cachée. Chaque variation
du nombre de cellules dans la couche cachée constitue une nouvelle architecture
du même type. Ainsi nous avons déterminé 10 architectures notées H, et elles
sont identifiées par le nombre de cellules se trouvant dans la couche cachée
63
avec H = {H1, H2, H3, H4, H5, H6, H7, H8, H9, H10}. Pour chaque architecture,
nous avons fait des apprentissages et des tests respectivement sur les ensembles
d’apprentissage et de test.
La deuxième phase est d’identifier la meilleure architecture choisie par
les différentes méthodes présentées. Ces méthodes sont: le coude (variation
relative du coût de la valeur négative du logarithme de la fonction du maximum
de vraisemblance), l’AIC, la validation croisée sur deux groupes disjoints, la
validation croisée sur v = 3 groupes disjoints et enfin le bootstrap avec 25
rééchantillonnages. Dans le cas de la validation croisée sur deux groupes
disjoints, on choisit, de façon aléatoire, 516 observations pour la phase de test,
c’est-à-dire 1/3 de l’échantillon total et les 2/3 pour la phase d’apprentissage.
On détermine aussi les courbes d’apprentissage et de test, les erreurs
d’apprentissage et de test sur les ensembles d’apprentissage et de test. Ainsi, on
identifie l’architecture qui est majoritairement choisie par ces différentes
méthodes comme étant la meilleure.
La troisième phase est de comparer l’estimation et la prédiction par
réseau de neurones artificiels à une couche cachée à celles de la régression
logistique. Ainsi, les résultats de la meilleure architecture Hj sont comparés à
ceux de la régression logistique classique. Les résultats pris en compte au
niveau des deux méthodes sont: l’estimateur du coût de la valeur négative du
logarithme du maximum de la fonction de vraisemblance, les erreurs de
classification sur les ensembles d’apprentissage, de test et sur l’échantillon total.
Rappelons quelques notations:
Hj : architecture neuronale où j indique le nombre de cellules dans la
couche cachée avec j = 1 ,.., L;
lappr : coût de la valeur négative du logarithme du maximum de la fonction de
vraisemblance obtenu sur l’ensemble d’apprentissage;
64
ltest : coût de la valeur négative du logarithme du maximum de la fonction de
vraisemblance obtenu sur l’ensemble de test;
Var.re : la variation relative de lappr d’une architecture à l’autre;
: indique la meilleure architecture choisie par une méthode;
lboot : coût de la valeur négative du logarithme du maximum de la fonction de
vraisemblance obtenu sur l’échantillon original après apprentissage sur
les échantillons bootstrap;
AIC : critère d’information d’Akaike;
BIC : critère d’information bayésien de Schwarz;
SEtest : écart type des ltest dans le cas de la validation croisée sur plus de deux
groupes disjoints;
llogit: coût de la valeur négative du logarithme du maximum de la fonction de
vraisemblance obtenu à partir de la régression logistique.
4.2.1 Réseau de neurones artificiels à une couche cachée
À partir des conditions initiales décrites dans la sous-section 4.1.2.3,
nous avons fait l’apprentissage de notre réseau pour les architectures H1, H2, H3,
H4, H5, H6, H7, H8, H9, H10 en utilisant comme ensemble d’apprentissage la
totalité de notre base de données. On utilisera le terme ‘‘architectures
consécutives’’ pour désigner deux architectures dont leurs indices sont
consécutifs, l’indice indiquant le nombre de neurones dans la couche cachée.
Après 10000 périodes d’apprentissage, nous déterminons, pour chaque
architecture Hj , le coût de la valeur négative du logarithme du maximum de la
fonction de vraisemblance lappr dont les valeurs apparaissent dans le tableau
A4.1 de l’annexe 4 et représentées par le graphique 4.1.
65
Nous constatons que plus le nombre de cellules dans la couche cachée
augmente, plus le coût lappr diminue, ce qui n’est pas étonnant car plus il y a de
paramètres libres, plus l’approximation est bonne.
nombre de cellules dans la couche cachée
lappr
2 4 6 8 10
1190
1200
1210
1220
Graphique 4.1. lappr en fonction du nombre de cellules dans la couche cachée. Mais, si nous considérons qu’augmenter le nombre de cellules dans la
couche cachée, c’est augmenter la complexité du réseau, alors quel est le
nombre optimal de cellules dans la couche cachée qui nous permet d’avoir un
degré de complexité acceptable et en même temps un coût qui soit satisfaisant?
Pour cela voyons ce que nous donne la méthode du coude.
La méthode du coude dont les résultats sont illustrés par le graphique 4.2
et le tableau A4.2 de l’annexe 4, nous donne les rapports des variations du coût
lappr entre deux architectures consécutives. La variation du coût entre les
architectures H1 et H2 est très grande, mais devient moins importante à partir de
H2, jusqu’à H6. On constate ensuite d’autres variations un peu plus
significatives entre H6 et H7 , et aussi entre H7 et H8.
66
nombre de cellules dans la couche cachée
Var.re
2 4 6 8
0
5
10
15
20
25
Graphique 4.2. Variations relatives de lappr en fonction du nombre de cellules dans la couche cachée.
La variation relative la plus importante se situe au niveau de H2 où le pic
est le plus élevé, ensuite on a une plage de stabilité entre H3 et H6, puis un autre
pic moins important que le premier au niveau de H7 et encore une autre plage de
stabilité à partir de H8. Les zones d’état stable indiquent que les coûts ne
décroissent pas de façon significative d’une architecture à l’autre, puisqu’il est
inutile d’augmenter le nombre de paramètres libres si aucun gain significatif
n’est obtenu.
La méthode du coude nous amène à choisir H2 comme la meilleure
architecture. Il faut remarquer que la méthode du coude ne permet pas de
calculer les variations relatives aux extrémités. Ce qui veut dire que si H1 ou H10
est la meilleure architecture, cette méthode ne nous permet pas de le déterminer.
Rappelons que les critères de l’AIC et du BIC choisissent comme
meilleure architecture, l’architecture qui minimise ces critères. Considérons
maintenant le choix de la meilleure architecture selon le critère de l’AIC. Celui-
ci indique H1 et H2 (tableau A4.3 de l’annexe 4 et graphique 4.3) comme
meilleures architectures.
67
Le critère du BIC, plus parcimonieux que celle de l’AIC, indique H1
comme meilleure architecture (voir le tableau A4.4 de l’annexe 4 et le
graphique 4.4).
nombre de cellules dans la couche cachée
AIC
2 4 6 8 10
2500
2550
2600
2650
2700
Graphique 4.3. Valeurs de l’AIC en fonction du nombre de cellules dans la couche cachée.
n o m b re d e c e llu les d a n s la c o u c h e c a c h é e
B IC
2 4 6 8 1 0
2 6 0 0
2 8 0 0
3 0 0 0
3 2 0 0
3 4 0 0
3 6 0 0
Graphique 4.4 Valeurs du BIC en fonction du nombre de cellules dans la couche cachée.
68
Étudions maintenant les résultats obtenus avec la méthode de la
validation croisée sur deux groupes disjoints.
Rappelons que la taille échantillonnale de l’ensemble d’apprentissage est
égale à 1033, c’est-à-dire 2/3 de la taille échantillonnale totale. Celle de
l’ensemble de test est égale à 516, c’est-à-dire 1/3 de la taille échantillonnale
totale. La répartition des observations dans chaque échantillon est aléatoire.
Nous avons aussi que ces deux sous-ensembles échantillonnaux sont disjoints.
Dans un souci d’avoir un ensemble de test représentatif de nouvelles données ne
faisant pas partie de l’ensemble d’apprentissage, la répartition des observations
dans ces deux sous-ensembles a été faite conformément aux proportions des
classes killip vues à la sous-section 4.1.2.2.
Ainsi le tableau A4.5 en annexe 4 et le graphique 4.5 donne les coûts lappr
obtenus après apprentissage sur l’ensemble d’apprentissage. Nous remarquons,
comme précédemment, que le coût diminue au fur et à mesure qu’on augmente
le nombre de cellules dans la couche cachée.
nombre de cellules dans la couche cachée
lappr
2 4 6 8 10
750
760
770
780
790
Graphique 4.5. Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes
disjoints.
69
Après apprentissage sur les différentes architectures Hj, nous faisons,
pour chaque architecture, le test avec l’ensemble de test et déterminons ainsi les
coûts ltest donnés par le tableau A4.6 en annexe 4 et le graphique 4.6.
La méthode de la validation croisée sur deux groupes disjoints indique
H2 comme meilleure architecture, car le coût obtenu sur l’ensemble de test avec
H2 est minimum comparé aux coûts obtenus sur l’ensemble de test avec les
autres architectures. Cela signifie que la performance à généraliser sur de
nouvelles observations est plus importante en ce qui concerne H2 par rapport
aux autres architectures.
nombre de cellules dans la couche cachée
ltest
2 4 6 8 10
420
425
430
435
440
445
450
Graphique 4.6. Valeurs de ltest en fonction du nombre de cellules dans la couche cachée
par la méthode de la validation croisée sur deux groupes disjoints.
Une autre variation de la validation croisée que nous avons utilisée, est la
méthode de la validation croisée sur plus de deux groupes disjoints, avec le
nombre de groupes v égal à 3. Ainsi au lieu d’avoir un seul ensemble
d’apprentissage et un seul ensemble de test, nous avons partitionné notre
ensemble en trois groupes.
70
nombre de cellules dans la couche cachée
lappr
2 4 6 8 10
790
795
800
805
810
Graphique 4.7. Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus de deux
groupes disjoints.
Chaque groupe de P
ν
= 516 observations sert, à tour de rôle, d’ensemble
de test et les 1033 autres observations servent d’ensemble d’apprentissage.
Ainsi pour chaque ensemble de test de chaque architecture Hj, nous obtenons le
coût sur l’ensemble d’apprentissage lappr qui est la moyenne des 3 coûts
d’apprentissage obtenus pour chaque architecture Hj (le tableau A4.7 de
l’annexe 4 et le graphique 4.7) et aussi de la même façon, nous obtenons le coût
sur l’ensemble de test ltest en faisant la moyenne des 3 coûts de test obtenus
pour chaque architecture Hj (le graphique 4.8 et le tableau A4.8 de l’annexe 4).
Nous constatons qu’au niveau de H1, le coût est un peu plus faible par
rapport au coût au niveau de H2. Cet écart n’étant pas assez important pour
prendre une décision, nous calculons ainsi les écarts types de ltest (tableau A4.9
de l’annexe 4 et le graphique 4.9).
71
nombre de cellules dans la couche cachée
ltest
2 4 6 8 10
414
416
418
420
Graphique 4.8. Valeurs de ltest en fonction du nombre de cellules dans la couche cachée
par la méthode de la validation croisée sur plus de deux groupes disjoints.
nombre de cellules dans la couche cachée
SEtest
2 4 6 8 10
25
26
27
28
29
30
31
Graphique 4.9. Valeurs des écarts types SEtest en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus de deux groupes disjoints. L’écart type au niveau de H2 est assez faible par rapport aux autres. Les
coûts obtenus sur les ensembles de test après chaque phase d’apprentissage sont
moins dispersés, ce qui donne une moyenne du coût, sur les ensembles de test,
72
plus stable. Comme vu dans la sous-section 3.2.1.3.1, la meilleure architecture
Hj est celle qui a un coût ltest assez faible et le plus petit écart-type. Ainsi ces
deux conditions prises en compte nous donnent H2 comme étant la meilleure
architecture choisie par cette méthode.
De même, la méthode du bootstrap donne H2 comme étant meilleure architecture ( voir le tableau A4.10 de l’annexe 4 et le graphique 4.10). Comme expliquée précédemment, la méthodologie est de faire l’apprentissage avec les 25 échantillons bootstrap, et ensuite, à partir des paramètres libres estimés pour chaque échantillon bootstrap, de faire le test sur l’échantillon de départ, ce qui nous donne les coûts de test. Enfin, on fait la moyenne des coûts de test pour obtenir lboot pour chaque architecture.
nombre de cellules dans la couche cachée
lboot
2 4 6 8 10
1235
1240
1245
1250
Graphique 4.10. Valeurs de lboot en fonction du nombre de cellules dans la couche cachée par la méthode bootstrap.
73
4.2.2 Les erreurs de classification
Après avoir calculé les différents coûts et variations pour chaque
architecture Hj, nous avons aussi calculé les erreurs de classification, d’abord
sur l’échantillon total, ensuite sur l’échantillon qui a servi d’ensemble
d’apprentissage pour la validation croisée sur deux groupes disjoints et enfin sur
l’ensemble de test utilisé pour cette même méthode. Ainsi, dans le cas des deux
premiers ensembles, nous avons obtenu les erreurs d’apprentissage et pour
l’ensemble de test, nous avons obtenu les erreurs de test à partir des paramètres
libres estimés.
nombre de cellules dans la couche cachée
Eappr
2 4 6 8 10
29.5
29.7
29.9
30.1
Graphique 4.11. Erreurs de classification après apprentissage sur tout l’ensemble des exemples en fonction du nombre de cellules dans la couche cachée.
Comme on peut le prévoir, dans une phase d’apprentissage, plus on
augmente le nombre de paramètres libres (nombre de cellules dans la couche
cachée), plus l’erreur de classification, sur l’ensemble d’apprentissage, diminue.
Ceci se retrouve dans le tableau A4.11 de l’annexe 4 et le graphique 4.11 pour
74
le cas de l’échantillon total, et le tableau A4.12 de l’annexe 4 et le graphique
4.12 pour le cas de l’ensemble d’apprentissage.
nombre de cellules dans la couche cachée
Eappr
2 4 6 8 10
29.2
29.4
29.6
29.8
30.0
Graphique 4.12. Erreurs de classification sur l’ensemble d’apprentissage en fonction du nombre de cellules dans la couche cachée.
Ainsi, à partir des paramètres libres estimés sur l’ensemble
d’apprentissage, pour chaque architecture Hj, nous avons calculé les erreurs de
classification sur l’ensemble de test afin d’obtenir les erreurs de test pour
chaque architecture Hj . Les résultats obtenus (voir le tableau A4.13 de l’annexe
4 et le graphique 4.13) nous indique que la meilleure architecture est toujours
H2, lorsqu’on compare les différentes erreurs de test. Les erreurs de test varient
entre 30,395% et 31,558% et, comme on peut s’y attendre, les erreurs de test
sont supérieures aux erreurs d’apprentissage. L’architecture H2 nous donne une
erreur de test égale à 30,395%.
75
nombre de cellules dans la couche cachée
Etest
2 4 6 8 10
30.4
30.6
30.8
31.0
31.2
31.4
31.6
Graphique 4.13. Erreurs de classification sur l’ensemble de test en fonction du nombre de cellules dans la couche cachée.
En récapitulatif des résultats obtenus avec l’apprentissage en réseau de
neurones artificiels à une couche cachée, nous pouvons conclure qu’en ce qui
concerne le choix de la meilleure architecture, à part le BIC et à un degré
moindre l’AIC, toutes les méthodes choisissent H2 comme étant la meilleure
architecture (voir le tableau 4.1).
Étant donné ces résultats, pour le reste de notre étude, seuls les résultats
(coûts, erreurs de classification) de l’architecture H2 sont utilisés.
76
Les différentes architectures
Méthodes de sélection
H1
H2
H3
H4
H5
H6
H7
H8
H9
H10
Le coude
X
AIC
X X
BIC
X
Validation croisée sur deux groupes disjoints
X
Validation croisée sur plus de deux groupes disjoints
X
bootstrap
X
Légende: x indique l’architecture choisie, Hj indique l’architecture ayant j cellules dans sa couche cachée.
Tableau 4.1. Récapitulatif des résultats.
D’autres tests ont été effectués sur les observations, en considérant
l’architecture H2. On définit le terme « individu moyen » comme étant
l’observation qui a pour mesure sur les 12 variables, les valeurs moyennes sur
les 1549 observations. La classe 1 est prédite pour l’individu moyen car les
probabilités a posteriori Prk d’appartenir aux classes k = 1, 2, 3, 4 pour cet
individu sont: (Pr1 ; Pr2 ; Pr3 ; Pr4) = (0,7779 ; 0,1981 ; 0,0213 ; 0,0027).
Les valeurs obtenues sont consignées dans le tableau 4.2.
77
meannn 0,904 sigmann 0,101 pnn50 8,676 sdann 0,086
meansd 0,043 totac 0,011 ulf 0,009 vlf 0,001 lf 0,0004 hf 0,0002
meandim 2,419 meanent 0,796
Tableau 4.2. Les mesures prises par l’individu moyen sur les 12 variables
indépendantes.
La classe 1 prédite pour l’individu moyen est tout à fait prévisible car la
classe 1 est la classe dominante. Elle regroupe 69% des patients contre 31% des
patients pour les trois autres classes.
Sachant que notre variable dépendante killip est une variable catégorielle
ordinale, prédire une classe k±1 pour une observation donnée alors que la vraie
classe est k, n’est pas aussi grave que prédire une classe k±i avec i > 1. Par
exemple, prédire que les râles d’un patient se situent en dessous du milieu des
poumons (classe 2) alors que ce patient n’a pas de râles (classe 1) est moins
grave que prédire que ce patient est atteint d’un choc cardiogène (classe 4). Ceci
nous permet de définir les erreurs de classification par ordre de gravité.
Ainsi le tableau 4.3 définit les différents types d’erreur de classification
qu’on peut rencontrer. Plus l’ordre est élevé, plus l’erreur de classification est
grave. Notons que l’ordre 0 signifie qu’il n’y a pas d’erreur de classification.
78
Erreur de classification classe observée classe prédite
ordre 0 k k
ordre 1 k k±1
ordre 2 k k±2
ordre 3 k k±3
Tableau 4.3. Les différents types d’erreur de classification.
Cette définition et notation nous permettent de déterminer la classe
prédite et l’ordre des erreurs de classification sur l’ensemble de test ayant 516
observations et nous avons obtenu les répartitions suivantes:
- erreur de classification d’ordre 0: 69,605%,
- erreur de classification d’ordre 1: 23,031%,
- erreur de classification d’ordre 2: 5,232%,
- erreur de classification d’ordre 3: 2,132%.
Ainsi, nous constatons que 69,605% des classes sont bien prédites. La
plupart des erreurs de classification sont d’ordre 1 (23,031%) et donc sachant
que notre variable dépendante est de type catégoriel ordinal, nous pouvons dire
que certaines valeurs prises par cette variable après la phase de test, se situent
aux frontières divisant les différentes classes. Une autre analyse montre que ces
23,031% proviennent des observations dont la classe observée est la classe 2 et
qui sont prédites comme étant de la classe 1. Par cette même analyse, nous
avons constaté que les 5,232% d’erreur de classification d’ordre 2 et les 2,132%
d’erreur de classification d’ordre 3 proviennent des observations dont les
classes observées sont respectivement, la classe 3 et la classe 4 et qui sont
prédites comme étant de la classe 1. En résumé, compte tenu de la
79
prédominance de la classe 1, elle a tendance à attirer les autres observations qui
ont une classe différente.
4.2.3 Méthode classique de la régression logistique multiple
Les résultats de la régression logistique multiple ont été obtenus avec le
logiciel BMDP (voir le module “PR Polychotomous Stepwise Logistic
Regression” dans le volume 2 du manuel de ce logiciel). Nous avons fait l’étude
pour différents fichiers de données: l’échantillon total, l’ensemble
d’apprentissage, l’ensemble de test. L’ensemble d’apprentissage et l’ensemble
de test sont ceux de la méthode de la validation croisée sur deux groupes
disjoints. De façon générale, le programme utilisé se trouve dans l’annexe 6.
4.2.3.1 Régression logistique multiple sur l’échantillon total
Le module PR ajoute la variable meannn à la 2ième étape (annexe 5). Le
meilleur modèle obtenu est un modèle avec 2 variables éligibles qui sont
meannn et sigmann. On peut donc écrire l’équation du modèle comme étant
égale à:
[ ]( )
( )P killip
X
X> =
+
+ +1
2 081
1 2 081
exp ,
exp ,, (4.1)
[ ]( )
( )P killip
X
X> =
+
+ +2
0 337
1 0 337
exp ,
exp ,, (4.2)
[ ]( )
( )P killip
X
X> =
− +
+ − +3
0 9128
1 0 9128
exp ,
exp ,, (4.3)
[ ]P killip > =4 0 , (4.4)
80
avec X meannn sigmann= − −2 204 9 387, * , * . (4.5)
Le logarithme du maximum de la fonction de vraisemblance obtenu sur
l’échantillon total est égal à -1254,635. Ainsi, on a llogit = 1254,635 avec llogit
étant la valeur négative du logarithme du maximum de la fonction de
vraisemblance.
La commande /PRINT du programme PR nous permet d’avoir la classe
prédite pour chaque observation. Ainsi l’erreur de classification, pour
l’échantillon total, est égale à 30,749% avec les répartitions suivantes:
- erreur de classification d’ordre 0: 69,251%,
- erreur de classification d’ordre 1: 22,930%,
- erreur de classification d’ordre 2: 5,519%,
- erreur de classification d’ordre 3: 2,300%.
4.2.3.2 Régression logistique multiple sur l’ensemble d’apprentissage
Le module PR ajoute la variable sigmann à la 2ième étape (annexe 5).
Comme dans l’analyse sur l’échantillon total, le meilleur modèle obtenu est un
modèle avec 2 variables éligibles qui sont meannn et sigmann. On peut donc
écrire l’équation du modèle comme étant égale à:
[ ]( )
( )P killip
X
X> =
+
+ +1
2 516
1 2 516
exp ,
exp ,, (4.6)
[ ]( )
( )P killip
X
X> =
+
+ +2
0 7562
1 0 7562
exp ,
exp ,, (4.7)
[ ]( )
( )P killip
X
X> =
− +
+ − +3
0 6695
1 0 6695
exp ,
exp ,, (4.8)
[ ]P killip > =4 0 , (4.9)
avec X meannn sigmann= − −2 789 8 884, * , * . (4.10)
81
Le logarithme du maximum de la fonction de vraisemblance obtenu sur
l’ensemble d’apprentissage est égal à -817,98. Ainsi , on a llogit = 817,98.
L’erreur de classification est égale à 30,0686% pour l’ensemble
d’apprentissage avec les répartitions suivantes:
- erreur de classification d’ordre 0: 69,931%,
- erreur de classification d’ordre 1: 22,527%,
- erreur de classification d’ordre 2: 5,877%,
- erreur de classification d’ordre 3: 1,665%.
4.2.3.3 Régression logistique multiple sur l’ensemble de test
Le module PR ne prend en compte que la variable sigmann (annexe 5).
le meilleur modèle obtenu sur l’ensemble de test est un modèle avec une seule
variable éligible qui est sigmann. On peut donc écrire l’équation du modèle
comme étant égale à:
[ ]( )
( )P killip
X
X> =
+
+ +1
0 5559
1 0 5559
exp ,
exp ,, (4.11)
[ ]( )
( )P killip
X
X> =
− +
+ − +2
1158
1 1158
exp ,
exp ,, (4.12)
[ ]( )
( )P killip
X
X> =
− +
+ − +3
2 136
1 2 136
exp ,
exp ,, (4.13)
[ ]P killip > =4 0 , (4.14)
avec X sigmann= −13 43, * . (4.15)
Le logarithme du maximum de la fonction de vraisemblance obtenu sur
l’ensemble de test est égal à -434,915. Ainsi, on a llogit = 434,915.
L’erreur de classification est égale à 30,6048% pour l’ensemble de test
avec les répartitions suivantes:
82
- erreur de classification d’ordre 0: 69,395%,
- erreur de classification d’ordre 1: 24,010%,
- erreur de classification d’ordre 2: 4,196%,
- erreur de classification d’ordre 3: 2,399%.
4.2.4 Réseau de neurones versus régression logistique
Soient S l’échantillon total, Sappr l’ensemble d’apprentissage et Stest
l’ensemble de test, l le coût sur l’échantillon total, lappr le coût sur l’ensemble
d’apprentissage, ltest le coût sur l’ensemble de test et E, Eappr et Etest l’erreur de
classification respectivement sur l’échantillon total, l’ensemble d’apprentissage
et l’ensemble de test. On a les valeurs comparatives des deux méthodes (réseau
de neurones et régression logistique) dans le tableau 4.4.
S Sappr Stest
l E lappr Eappr ltest Etest
Régression 1254,635 30,749 817,98 30,069 434,915 30,605
RNA 1202,505 30,052 781,008 29,907 419,584 30,395
différence 52,13 0,697 36,972 0,162 15,331 0,209
Tableau 4.4. Réseau de neurones versus régression logistique.
On constate, dans le tableau 4.4, qu’en ce qui concerne le coût et l’erreur
de classification sur les 3 ensembles de données considérés (échantillon total,
ensemble d’apprentissage, ensemble de test), la meilleure architecture H2 de
réseau de neurones artificiels fait mieux que la régression logistique classique,
83
mais la différence n’est pas très importante. Ainsi la différence de performance
sur l’ensemble de test est égale à
( ) ( )∆P E Etest RNA test it= − = − =
log, , ,30 395 30 605 0 21 .
Ainsi le réseau de neurones performe 0,21% mieux que la régression
logistique multiple sur l’ensemble de test.
84
CONCLUSION
Au terme de notre étude sur ces données réelles, il en ressort, en ce qui
concerne les différentes méthodes pour choisir la meilleure architecture que
celles-ci choisissent majoritairement H2 comme étant la meilleure architecture.
En ce qui concerne la méthode du coude, on a vu qu’elle ne peut pas
prédire si H1 ou si H10 est la meilleure architecture car la variation relative ne
permet pas de calculer les valeurs extrêmes.
Bien que les méthodes moins économiques en temps de calcul semblent
aussi bonnes sur notre échantillon, il n’en demeure pas moins qu’elles restent
toujours des méthodes assez lourdes, autant dans l’implantation numérique que
dans le temps d’exécution. Ainsi avec le matériel informatique dont nous
disposions pour l’apprentissage sur 10 architectures et 10000 périodes
d’apprentissage, nous avons mis environ 2 jours pour la méthode de la
validation croisée sur deux groupes disjoints, 5 jours pour la méthode de la
validation croisée sur plus de deux groupes disjoints et 14 jours pour la méthode
du bootstrap avec 25 échantillons bootstrap. Ceci est à contraster avec les
méthodes AIC, BIC et le coude qui ne prennent que quelques minutes.
La compensation entre le gain obtenu et le temps de calcul se remarque
aussi au niveau de la comparaison entre le réseau de neurones artificiels à une
couche cachée et la régression logistique multiple sur nos ensembles de
données. Le réseau de neurones artificiels multi-couches exigent plus de temps
de calcul sans compter tous les inconvénients qu’on peut rencontrer tels que
l’initialisation des poids, le choix optimal du nombre de neurones dans la
couche cachée, le choix du critère d’arrêt de l’apprentissage et le choix de
l’algorithme d’apprentissage. Il n’est pas toujours évident de préférer la
méthode de réseau de neurones artificiels multi-couches à la régression
85
logistique, lorsqu’on n’est pas sûr d’avoir une différence de performance très
importante, comme dans notre étude où le réseau de neurones artificiels
performe 0,21% mieux que la régression logistique sur l’ensemble de test. La
valeur 0,21% de performance n’est pas assez importante pour tirer une
conclusion générale, sachant que nous avons basé notre étude sur un seul
échantillon de données.
Une étude plus poussée sur plusieurs données simulées avec une
architecture neuronale bien définie aurait été plus adéquate pour tirer une
conclusion plus générale.
Un axe de recherche futur pourrait être de comparer les réseaux de
neurones artificiels multi-couches aux arbres de régression au niveau de leur
pouvoir de prédiction.
86
ANNEXE 1
Démonstrations de certains résultats du bootstrap
Soit X1, ..., Xn un échantillon de variables aléatoires indépendantes et
identiquement distribuées selon la loi F (à ne pas confondre avec la F de
Fisher). Soit seB
∧ l’estimateur bootstrap de l’écart type de la distribution de la
statistique θ∧
basé sur B échantillons bootstrap. Définissons également se∧
∞
comme étant l’écart type bootstrap exact.
1. Démontrons que E se seF
B∧ ∞
∧
=
∧2 2
.
E se E se X X
EB
b X X
se
FB B n
b
B
n
F n
∧
∧ ∧
=
∧
∞
∧
=
∧
=−
− •
= =
∧
∑
∧
2 2
1
2
11
2
1
1
/ , ,
* ( ) * ( ) / , ,
var .
L
Lθ θ
θ
2. Démontrons que E se E seF B F
∧
=
∧
∞
2 2
.
E se E E se
E E se X X
E se
F B FF
B
F B n
F
n
∧
=
∧
=∧
=∧
∧
∞
2 2
2
1
2
/ , ,
.
L
87
3. Démontrons que var varF B F
se se∧
≥
∧
∞
2 2
.
var var / , , var / , ,
var .
F B F B n F B n
F
se E se X X E se X X
se
∧
=
∧
+
∧
≥∧
≥
≥
∞
2 2
1
2
1
0
0
2
L L
1 2444 34441 24444 34444
88
ANNEXE 2
Les fonctions créées
.First Attache les programmes personnels.
aide
Aide pour les fonctions créées.
b.prop
Rétropropagation du gradient.
boots.trap
Rééchantillonnage bootstrap.
cherche.doc
Cherche la documentation.
cout.emv.multinomial Coût de la valeur négative du logarithme du maximum de la fonction de vraisemblance.
cout.quad
Coût Quadratique.
crossvalidation
Échantillonnage par validation croisée sur plus de deux groupes disjoints.
deltalin
Dérivée du coût par rapport aux poids de connexion avec comme fonction d’activation, la fonction linéaire.
deltasig
Dérivée du coût par rapport aux poids de connexion avec comme fonction d’activation, la fonction sigmoïde.
deltatan
Dérivée du coût par rapport aux poids de connexion avec comme fonction d’activation, la fonction tangente hyperbolique sigmoïde.
89
diff.parity.connect
Connexion des neurones de parité différente.
f.prop
Propagation avant du réseau.
fast.neurone.bootstrap.cl.ll Apprentissage par rétropropagation du gradient avec comme coût, la valeur négative du logarithme du maximum de la fonction de vraisemblance par la méthode du bootstrap dans un cas de classification pour la méthode du facteur d’apprentissage adaptif.
fast.neurone.crossval.cl.ll Apprentissage par rétropropagation du gradient avec comme coût, la valeur négative du logarithme du maximum de la fonction de vraisemblance par la méthode de la validation croisée sur deux groupes disjoints dans un cas de classification par la méthode du facteur d’apprentissage adaptif.
fast.neurone.k.crossval.cl.ll Apprentissage par rétropropagation du gradient avec comme coût, la valeur négative du logarithme du maximum de la fonction de vraisemblance par la méthode de la validation croisée sur plus de deux groupes disjoints dans un cas de classification par la méthode du facteur d’apprentissage adaptif.
fast.trainbp.cl.ll Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de régression non linéaire par la méthode du facteur d’apprentissage adaptif.
fast.trainbp.cl.ss Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de classification par la méthode du facteur d’apprentissage adaptif.
fast.trainbp.fa Apprentissage par rétropropagation du gradient avec coût quadratique dans un cas d’approximation de fonction par la méthode du facteur d’apprentissage adaptif.
fast.trainbp.nr Apprentissage par rétropropagation du gradient avec coût quadratique dans un cas de le régression non linéaire par la méthode du facteur d’apprentissage adaptif.
90
full.even.connect Connexion des neurones d’une couche aux neurones d’indice pair de la couche suivante.
full.full.connect
Pleine connexion des neurones.
full.odd.connect Connexion des neurones d’une couche aux neurones d’indice impair de la couche suivante.
gen.classes Prédiction des classes sachant les probabilités a posteriori d'appartenir à ces classes.
gen.test
Détermination de la classe et de l’erreur de classification sur l’ensemble de test sachant l’entrée et les poids de connexion estimés.
hessian
Calcul de la matrice hessienne.
inpout
Entrées et sorties adaptées à la structure du réseau. jacobian
Calcul du jacobien.
learn.error Détermination de l’erreur de classification sur l’ensemble d’apprentissage.
learnlm
Rétropropagation du gradient par la méthode Levenberg-Marquardt.
lineaire
fonction d'activation linéaire.
marq.neurone.bootstrap.cl.ll Apprentissage par rétropropagation du gradient avec comme coût la valeur négative du logarithme du maximum de la fonction de vraisemblance pour la méthode du bootstrap dans un cas de classification par la méthode Levenberg- Marquardt.
91
marq.neurone.crossval.cl.ll Apprentissage par rétropropagation du gradient avec comme coût la valeur négative du logarithme du maximum de la fonction de vraisemblance pour la méthode de la validation croisée sur deux groupes disjoints likelihood dans un cas de classification par la méthode Levenberg-Marquardt.
marq.neurone.k.crossval.cl.ll Apprentissage par rétropropagation du gradient avec comme coût la valeur négative du logarithme du maximum de la fonction de vraisemblance pour la méthode de la validation croisée sur plus de deux groupes disjoints dans un cas de classification par la méthode Levenberg-Marquardt.
marq.trainbp.cl.ll
Apprentissage par rétropropagation du gradient avec comme coût la valeur négative du logarithme du maximum de la fonction de vraisemblance dans un cas de classification par la méthode Levenberg-Marquardt.
marq.trainbp.cl.ss
Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de classification par la méthode Levenberg-Marquardt.
marq.trainbp.fa Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas d’approximation de fonction par la méthode Levenberg-Marquardt.
marq.trainbp.nr Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de régression non linéaire par la méthode Levenberg-Marquardt.
menu1
Menu « Neural Networks MLP ».
methodes.stat
Calcul de quelques estimateurs statistiques.
my.X11
Appel de l’écran graphique de S-plus.
neg.LL.fonction
Calcul de la valeur négative du logarithme du maximum de la fonction de vraisemblance.
neurone.bootstrap.cl.ll Apprentissage par rétropropagation du gradient avec la méthode du bootstrap.
92
neurone.crossval.cl.ll
Apprentissage par rétropropagation du gradient avec la méthode de la validation croisée sur deux groupes disjoints.
neurone.k.crossval.cl.ll Apprentissage par rétropropagation du gradient avec la méthode de la validation croisée sur plus de deux groupes disjoints.
pinv Calcul de l’inverse généralisée d’une matrice.
plot.boot
Graphique obtenu à partir des résultats de l’apprentissage par la méthode du boostrap.
plot.multi
Graphique obtenu à partir des résultats de la fonction methodes.stat.
plot.val
Graphique obtenu à partir des résultats de l’apprentissage par la méthode de la validation croisée sur plus de deux groupes disjoints ou sur deux groupes disjoints.
same.parity.connect
Connexion des neurones ayant la même parité.
sigmoid
Fonction d'activation sigmoïde.
sim.inpout Simulation des données d’entrées et de sorties du réseau.
softmax
Fonction log-linéaire.
tansig
Fonction d'activation tangente hyperbolique sigmoïde.
trainbp.cl.ll Apprentissage par rétropropagation du gradient avec comme coût la valeur négative du logarithme du maximum de la fonction de vraisemblance dans un cas de classification.
93
trainbp.cl.ss
Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de classification.
trainbp.fa Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas d’approximation de fonction.
trainbp.nr Apprentissage par rétropropagation du gradient avec le coût quadratique dans un cas de régression non linéaire.
UPDATE
Mise à jour des paramètres libres.
94
ANNEXE 3
Les écrans d’aide et programmes
.First Attache les programmes personnels
---------------------------------------------------------------------
Description Cette fonction est exécutée de façon automatique lorsqu'on exécute S-plus. Elle permet d'attacher, aux autres librairies de S-plus, les programmes personnels contenant les fonctions et les objets créés. Ainsi, elle permet l'accessibilité en exécution,lecture et copie des fonctions et objets à tout usager de S-plus.
95
aide Aide pour les fonctions créées
---------------------------------------------------------------------
Description La fonction aide permet de consulter le fichier d'aide d'une fonction donnée existant dans le répertoire des fonctions sur les réseaux de neurones artificiels multi-couches.
USAGE aide(name)
VALEUR Donne l'écran d'aide de la fonction spécifiée. Si l’argument est manquant, cette fonction donne la liste de toutes les fonctions créées.
EXEMPLES aide() # pour consulter la liste de toutes les # fonctions créées. aide(UPDATE) # pour consulter l'aide de la fonction # de mise à jour des paramètres libres # (poids des connexions).
96
b.prop Rétropropagation du gradient
---------------------------------------------------------------------
Description Cette fonction compile les gradients de la fonction coût par rapport aux poids des connexions des cellules entre d’une part les couches de sortie et cachée et d’autre part, les couches cachée et d’entrée.
USAGE b.prop(S, S0, w2, e, df1, df2, b2)
ARGUMENTS S La sortie non linéaire au niveau de la couche de
sortie.
S0 La sortie non linéaire au niveau de la couche
cachée.
w2 Matrice des poids des connexions des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
e Dérivée du coût par rapport à la sortie non
linéaire du réseau.
df1 Fonction retournant les dérivées de la fonction
coût par rapport aux poids des connexions des cellules entre les couches cachée et d’entrée.
df2 Fonction retournant les dérivées de la fonction
coût par rapport aux poids de connexion des cellules entre les couches cachée et d’entrée.
b2 argument à valeur logique indiquant s’il y a un
terme constant au niveau de la couche cachée. Il est égal à T s’il y a un terme constant et F sinon.
VALEUR La fonction retourne une liste contenant:
delta2 La dérivée première de la fonction coût par rapport
aux poids des connexions de la couche de sortie vers la couche cachée.
delta1 La dérivée première de la fonction coût par rapport
aux poids des connexions de la couche cachée vers la couche d'entrée.
97
REFERENCES RIPLEY, B. D.(1993). Statistical aspect of neural networks. In Networks and Chaos-Statistical and Probabilistic Aspects. Barndorff-Nielsen, O. E., Cox, D. R., Jensen, L., Kendall, W. S., Chapman & HALL. London. pp. 49-50
FREEMAN, J. A.(1994), Simulating Neural Networks with Mathematica. Addison-Wesley Publishing Company. pp 68-74.
PROGRAMME
function(S, S0, w2, e, df1, df2, b2)
{
delta2 <- df2(S, e)
if(b2 == T) {
S0 <- S0[, - ncol(S0)]
w2 <- w2[, - ncol(w2)]
if(is.vector(w2) == T)
w2 <- as.matrix(w2)
}
S0 <- as.matrix(S0)
delta1 <- df1(S0, delta2, w2)
return(delta2, delta1)
}
98
boots.trap Rééchantillonnage bootstrap
---------------------------------------------------------------------
Description Cette fonction permet de rééchantillonner une base de données avec remise (caractéristique de la méthode du bootstrap), c’est-à-dire la nouvelle base de données est de la même taille que l’échantillon initial mais elle contient plusieurs fois certaines observations.
USAGE boots.trap(Z.Y, repl = T)
ARGUMENTS Z.Y Matrice de données dont les lignes représentent les
individus et les colonnes représentent les mesures prises par ces individus sur les variables d’entrée Z et la variable de sortie Y.
repl Si il est égal à T, alors le rééchantillonnage se
fait avec remise et F sinon. Argument optionnel.
VALEUR la fonction retourne:
data La matrice rééchantillonnée avec remise.
REFERENCE Efron, B. et Tibshirani, R. J. (1993). An Introduction to the Bootstrap. Chapman & Hall, London. pp 398-412.
PROGRAMME
function(Z.Y, repl = T)
{
npat <- nrow(Z.Y)
o <- sample(1:npat, replace = repl)
data <- Z.Y[o, ]
row.names(data) <- 1:npat
data
}
99
cout.emv.multinomial Coût de la valeur négative du logarithme du maximum de la fonction de vraisemblance
---------------------------------------------------------------------
Description Cette fonction calcule la valeur négative du logarithme du maximum de la fonction de vraisemblance.
USAGE cout.emv.multinomial(Y, S)
ARGUMENTS Y Matrice de variables binaires (0,1):
yk=1 pour un individu de la kième classe,
yk=0 dans les autres cas.
S La sortie non linéaire au niveau de la couche de
sortie. Ce sont les sorties obtenues après apprentissage.
VALEUR La fonction retourne une liste contenant:
neg.LL valeur négative du logarithme du maximum de la
fonction de vraisemblance.
PZ.bp Transformation log-linéaire des sorties
obtenues, ce qui donne les probabilités a
posteriori.
error Dérivée du coût par rapport à la sortie non
linéaire du réseau.
REFERENCE CIAMPI, A. et LECHEVALLIER, Y.(1995), Designing Neural Networks from Statistical Models: A new approach to Data Exploration. Proceedings of the 1st Conference on Knowledge Discovery & Data Mining, 45-50.
PROGRAMME
function(Y, S)
{
PZ.bp <- softmax(S)
logexpS <- as.numeric(log(exp(S) %*% rep(1, ncol(Y))))
neg.LL <- - sum(as.numeric(Y * (S - logexpS)))
error <- Y - PZ.bp
return(neg.LL, PZ.bp, error)
}
100
cout.quad Coût quadratique
---------------------------------------------------------------------
Description Cette fonction calcule le coût quadratique
USAGE cout.quad(Y, S)
ARGUMENTS Y Matrice des sorties désirées.
S La sortie non linéaire au niveau de la couche de
sortie. Ce sont les sorties obtenues après apprentissage.
VALEUR La fonction retourne une liste contenant:
sumCq Somme des carrés des erreurs sur l'ensemble des
observations.
error Dérivée première du coût quadratique par rapport
aux sorties obtenues.
REFERENCES RIPLEY, B. D.(1993). Statistical aspect of neural networks. In Networks and Chaos-Statistical and
Probabilistic Aspects. Barndorff-Nielsen, O. E., Cox, D. R., Jensen, L., Kendall, W. S., Chapman & HALL. London. pp. 49-50
FREEMAN, J. A.(1994), Simulating Neural Networks with Mathematica. Addison-Wesley Publishing Company. p 72.
PROGRAMME
function(Y, S)
{
error <- Y - S
Cq <- error^2
sumCq <- sum(Cq %*% rep(1, ncol(Cq)))
return(sumCq, error)
}
101
crossvalidation Échantillonnage par validation croisée sur plus de deux groupes disjoints
---------------------------------------------------------------------
Description Cette fonction répartit, de façon aléatoire, les exemples dans des groupes. Chaque groupe sert d’ensemble de test ou d’ensemble d’apprentissage tour à tour. Chaque ensemble de test contient K observations.
USAGE crossvalidation(npat, ngroup)
ARGUMENTS npat La taille de l’échantillon initial.
ngroup Le nombre de groupes qu’on désire obtenir.
VALEUR
la fonction retourne une liste contenant:
leave.out La taille de chaque ensemble de test.
groups Liste contenant les indices des différents groupes.
REFERENCE Efron, B. et Tibshirani, R. J. (1993). An Introduction to the Bootstrap. Chapman & Hall, London. pp 398-412.
PROGRAMME
function(npat, ngroup)
{
ngroup <- trunc(ngroup)
if(ngroup < 2)
stop("ngroup doit etre superieur ou egal a 2")
if(ngroup > npat)
stop("ngroup doit etre inferieur ou egal a npat")
if(ngroup == npat) {
groups <- 1:npat
leave.out <- 1
}
if(ngroup < npat) {
leave.out <- trunc(npat/ngroup)
o <- sample(1:npat)
102
groups <- vector("list")
for(j in 1:(ngroup - 1)) {
jj <- (1 + (j - 1) * leave.out)
groups[[j]] <- (o[jj:(jj + leave.out - 1)])
}
groups[[ngroup]]<-o[( 1 + (ngroup-
1)*leave.out):npat]
}
if(leave.out == 1)
groups <- NULL
return(leave.out, groups)
}
103
deltalin Dérivée du coût par rapport aux poids de connexion avec comme fonction d’activation, la fonction linéaire
---------------------------------------------------------------------
Description Cette fonction calcule les gradients par rapport aux sorties des couches de sortie et cachée avec la fonction linéaire comme fonction d’activation.
USAGE deltalin(s, e, w2)
ARGUMENTS s Sortie de la couche cachée ou de sortie.
e Gradients obtenus sur la couche précédente si on a
trois arguments. Les dérivées de la fonction linéaire par rapport aux sorties, si on a deux arguments.
w2 Matrice des poids de connexion des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
VALEUR
la fonction retourne:
delta Les dérivées des sorties si on a un argument.
Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches de sortie et cachée si on a deux arguments. Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches cachée et d’entrée si on a trois arguments.
REFERENCE Demuth, H. and Beale, M. (1992-93). Neural Network Toolbox for use with Matlab. The Math Works, Inc.
104
PROGRAMME
function(s, e, w2)
{
if(nargs() == 1)
delta <- s * 0 + 1
if(nargs() == 2)
delta <- e
if(nargs() == 3)
delta <- e %*% w2
delta
}
105
deltasig Dérivée du coût par rapport aux poids
de connexion avec comme fonction
d’activation, la fonction sigmoïde
---------------------------------------------------------------------
Description Cette fonction calcule les gradients par rapport aux sorties des couches de sortie et cachée avec la fonction sigmoïde comme fonction d’activation.
USAGE deltasig(s, e, w2)
ARGUMENTS s Sortie de la couche cachée ou de sortie.
e Gradients obtenus sur la couche précédente si on a
trois arguments. Les dérivées de la fonction sigmoïde par rapport aux sorties, si on a deux arguments.
w2 Matrice des poids de connexion des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
VALEUR
la fonction retourne:
delta Les dérivées des sorties si on a un argument.
Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches de sortie et cachée si on a deux arguments. Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches cachée et d’entrée si on a trois arguments.
REFERENCE Demuth, H. and Beale, M. (1992-93). Neural Network Toolbox for use with Matlab. The Math Works, Inc.
106
PROGRAMME
function(s, e, w2)
{
if(nargs() == 1)
delta <- s * (1 - s)
if(nargs() == 2)
delta <- s * (1 - s) * e
if(nargs() == 3)
delta <- s * (1 - s) * (e %*% w2)
delta
}
107
deltatan Dérivée du coût par rapport aux poids de connexion avec comme fonction d’activation, la fonction tangente hyperbolique sigmoïde
---------------------------------------------------------------------
Description Cette fonction calcule les gradients par rapport aux sorties des couches de sortie et cachée avec la fonction tangente hyperbolique sigmoïde comme fonction d’activation.
USAGE deltatan(s, e, w2)
ARGUMENTS s Sortie de la couche cachée ou de sortie.
e Gradients obtenus sur la couche précédente si on a
trois arguments. Les dérivées de la fonction tangente hyperbolique sigmoïde par rapport aux sorties, si on a deux arguments.
w2 Matrice des poids de connexion des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
VALEUR
la fonction retourne:
delta Les dérivées des sorties si on a un argument.
Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches de sortie et cachée si on a deux arguments. Les dérivées de la fonction coût par rapport aux poids de connexion des cellules entre les couches cachée et d’entrée si on a trois arguments.
REFERENCE Demuth, H. and Beale, M. (1992-93). Neural Network Toolbox for use with Matlab. The Math Works, Inc.
108
PROGRAMME
function(s, e, w2)
{
if(nargs() == 1)
delta <- 1 - s * s
if(nargs() == 2)
delta <- (1 - s * s) * e
if(nargs() == 3)
delta <- (1 - s * s) * (e %*% w2)
delta
}
109
f.prop Propagation avant du réseau
---------------------------------------------------------------------
Description Cette fonction calcule les sorties linéaires et non linéaires au niveau des couches cachée et de sortie.
USAGE f.prop(Z, w1, w2, b2, f1, f2)
ARGUMENTS Z Matrice des données contenant les covariables, y
compris la colonne du terme constant 1.
w1 Matrice des poids de connexion des cellules de la
couche d'entrée avec celles de la couche cachée. C'est une matrice de dimension (j,i), avec j=nombre de cellules dans la couche cachée, et i=nombre de cellules dans la couche d'entrée.
w2 Matrice des poids de connexion des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
b2 Argument à valeur logique indiquant s’il y a un
terme constant au niveau de la couche cachée. Il est égal à T s’il y a un terme constant et F sinon.
f1 La fonction d’activation au niveau de la couche
cachée.
f2 La fonction d’activation au niveau de la couche de
sortie.
VALEUR La fonction retourne une liste contenant:
netin La sortie linéaire au niveau de la couche cachée.
S0 La sortie non linéaire au niveau de la couche
cachée.
netout La sortie linéaire au niveau de la couche de
sortie.
S La sortie non linéaire au niveau de la couche de
sortie.
110
REFERENCES RIPLEY, B. D.(1994). Neural Networks and Related Methods for classification. J. R. Statist. Soc. B, 56, 409-415.
FREEMAN, J. A.(1994), Simulating Neural Networks with Mathematica. Addison-Wesley Publishing Company. pp 68-74.
PROGRAMME
function(Z, w1, w2, b2, f1, f2)
{
netin <- Z %*% t(w1)
if(b2 == F)
S0 <- f1(netin)
else S0 <- cbind(f1(netin), 1)
netout <- S0 %*% t(w2)
S <- f2(netout)
return(netin, S0, netout, S)
}
111
gen.classes Prédiction des classes sachant
les probabilités a posteriori
d’appartenir à ces classes
---------------------------------------------------------------------
Description Cette fonction détermine la classe de l’individu
sachant les probabilités a posteriori obtenues aux sorties de la propagation avant du réseau.
USAGE gen.classes(PZ)
ARGUMENTS PZ Probabilités a posteriori d’appartenir aux classes.
VALEUR
la fonction retourne:
classe La classe de l’individu.
PROGRAMME
function(PZ)
{
npat <- nrow(PZ)
nout <- ncol(PZ)
classe <- vector("numeric")
for(p in 1:npat)
classe[p] <- (1:nout)[PZ[p, ] == max(PZ[p, ]))
classe
}
112
gen.test Détermination de la classe et de l’erreur de classification
---------------------------------------------------------------------
Description Cette fonction détermine la classe de l’individu et l’erreur de classification sur l’ensemble de test sachant les paramètres libres estimés après la phase d’apprentissage.
USAGE gen.test(Z, Y, w1, w2, f1=tansig, f2=lineaire)
ARGUMENTS Z L’ensemble de test.
Y Matrice de variables binaires (0,1):
yk=1 pour un individu de la kième classe,
yk=0 dans les autres cas.
w1 Les poids de connexion estimés entre les cellules
de la couche cachée et d’entrée.
w2 Les poids de connexion estimés entre les cellules
de la couche de sortie et cachée.
f1 La fonction d’activation au niveau de la couche
cachée. Argument optionnel.
f2 La fonction d’activation au niveau de la couche de
sortie. Argument optionnel.
VALEUR
la fonction retourne une liste contenant:
classe La classe de l’individu.
error.clas L’erreur de classification
PZ.bp Probabilités a posteriori d’appartenir aux classes
déterminées par le réseau.
113
PROGRAMME
function(Z, Y, w1, w2, f1 = tansig, f2 = lineaire)
{
npat <- nrow(Z)
classe <- vector("numeric")
if(nrow(w1) == ncol(w2))
b2 <- F
else b2 <- T
S <- f.prop(Z, w1, w2, b2, f1, f2)$S
PZ.bp <- softmax(S)
nout <- ncol(PZ.bp)
y.bp <- matrix(0, npat, nout)
for(p in 1:npat) {
classe[p] <- (1:nout)[PZ.bp[p,]==max(PZ.bp[p, ]))
y.bp[p, classe[p]] <- 1
}
su <- apply(abs(Y - y.bp), 1, sum)
error.clas <- (100 * sum(su != 0))/npat
return(classe, error.clas, PZ.bp)
}
114
learn.error Détermination de l’erreur de
classification
---------------------------------------------------------------------
Description Cette fonction calcule l’erreur de classification sur l’ensemble d’apprentissage.
USAGE learn.error(Y, PZ)
ARGUMENTS Y Matrice de variables binaires (0,1):
yk=1 pour un individu de la kième classe,
yk=0 dans les autres cas.
PZ Probabilités a posteriori d’appartenir aux classes
déterminées par le réseau.
VALEUR
la fonction retourne:
error.clas L’erreur de classification.
PROGRAMME
function(Y, PZ)
{
npat <- nrow(PZ)
nout <- ncol(PZ)
y.bp <- matrix(0, npat, nout)
for(p in 1:npat) {
clas <- (1:nout)[pz[p, ] == max(pz[p, ])]
y.bp[p, clas] <- 1
}
su <- apply(abs(Y - y.bp), 1, sum)
error.clas <- (100 * sum(su != 0))/npat
error.clas
}
115
lineaire fonction d’activation linéaire
---------------------------------------------------------------------
USAGE lineaire(x, a=1, b=0.0)
ARGUMENTS x Matrice, vecteur ou scalaire. Pas de valeur
manquante.
a La pente différente de 0. Argument optionnel.
b La constante. Argument optionnel.
VALEUR La fonction retourne la densité en utilisant la fonction de densité définie par f(x) = ax + b .
EXEMPLES # les valeurs de a et b sont respectivement 1 et 0 >lineaire(2) [1] 2 >lineaire(c(-1.3, 6, 3, -8.9, 1.6, 0.3)) [1] -1.3 6.0 3.0 -8.9 1.6 0.3 >mat <- matrix(runif(4, 0, 1), 2, 2) >lineaire(mat) [,1] [,2] [1,] 0.05123971 0.8346350 [2,] 0.60057972 0.3796711
PROGRAMME
function(x, a = 1, b = 0)
{
a * x + b
}
116
methodes.stat Calcul de quelques estimateurs statistiques
---------------------------------------------------------------------
Description Cette fonction permet de calculer l’AIC, le BIC et le coude (variation de la valeur négative du logarithme du maximum de la fonction de vraisemblance).
USAGE methodes.stat(neg.LL, hidden, npat, nin, nout, b2)
ARGUMENTS neg.LL Valeur négative du logarithme du maximum de
la fonction de vraisemblance.
hidden Nombre de cellules dans la couche cachée.
npat La taille de l’échantillon.
nin Nombre de cellules dans la couche d’entrée.
nout Nombre de cellules dans la couche de sortie.
b2 Argument à valeur logique indiquant s’il y a un
terme constant au niveau de la couche cachée. Il est égal à T s’il y a un terme constant et F sinon. Argument optionnel.
VALEUR
la fonction retourne une liste contenant:
hidden Nombre de cellules dans la couche cachée.
neg.LL Valeur négative du logarithme du maximum de
la fonction de vraisemblance.
aic Le critère d’information d’Akaike.
bic Le critère d’information bayésien de Schwarz.
var.r.neg.LL La variation relative de la valeur négative du
logarithme du maximum de la fonction de vraisemblance.
117
EXEMPLES >methodes.stat(c(800,700,400,100),c(1,2,3,4),1000 , 8, 3) $hidden: [1] 1 2 3 4 $neg.LL: [1] 800 700 400 100 $aic: [1] 1628 1450 872 294 $bic: [1] 1696.7086 1572.6939 1048.6792 524.6645 $var.r.neg.LL: [1] 0.3333333 1.00000000
PROGRAMME
function(neg.LL, hidden, npat , nin, nout, b2 = T)
{
nh <- length(hidden)
if(b2 == T) {
aic <- 2 * neg.LL + 2 * (hidden*(nin+nout)+ nout)
bic <- 2*neg.LL+log(npat)*(hidden*(nin+nout)+nout)
}
else {
aic <- 2 * neg.LL + 2 * hidden * (nin + nout)
bic <- 2 * neg.LL + log(npat)*hidden*(nin+nout)
}
var.r.neg.LL <- diff(neg.LL)[-(nh-1)]/diff(neg.LL)[-1]
return(hidden, neg.LL, aic, bic, var.r.neg.LL)
}
118
plot.multi Graphique obtenu à partir des résultats de la fonction methodes.stat
---------------------------------------------------------------------
Description Cette fonction donne les graphiques des résultats des méthodes statistiques obtenus à partir de la fonction methodes.stat
USAGE plot.multi(objet)
ARGUMENTS objet Une liste contenant:
hidden Nombre de cellules dans la couche cachée.
neg.LL Valeur négative du logarithme du maximum de
la fonction de vraisemblance.
aic Le critère d’information d’Akaike.
bic Le critère d’information bayésien de Schwarz.
var.r.neg.LL La variation relative de la valeur négative du
logarithme du maximum de la fonction de vraisemblance.
VALEUR
la fonction retourne les graphiques de l’AIC, du BIC, de la valeur négative du logarithme du maximum de la fonction de vraisemblance et de sa variation relative.
PROGRAMME
function(objet)
{
hidden <- objet$hidden
neg.LL <- objet$neg.LL
aic <- objet$aic
bic <- objet$bic
var.r.neg.LL <- objet$var.r.neg.LL
hidden1 <- hidden[-1]
hidden2 <- hidden1[-length(hidden1)]
my.X11(1, 1)
plot(hidden, aic, type = "l", xlab = "nb. unites
cachees", ylab = "aic")
title(main = "aic", col = 9)
119
my.X11(1, 1)
plot(hidden, bic, type = "l", xlab = "nb. unites
cachees", ylab = "bic")
title(main = "bic", col = 9)
my.X11(1, 1)
plot(hidden, neg.LL, type = "l", xlab = "nb. unites
cachees", ylab = "neg.LL")
title(main = "neg.LL", col = 9)
my.X11(1, 1)
plot(hidden2, var.r.neg.LL, type = "l", xlab = "nb.
unites cachees", ylab = "var.r.neg.LL")
title(main = "neg.LL: variation relative", col = 2)
}
120
sigmoid fonction d’activation sigmoïde
---------------------------------------------------------------------
USAGE sigmoid(x)
ARGUMENTS x Matrice, vecteur ou scalaire. Pas de valeur
manquante.
VALEUR La fonction retourne la densité en utilisant la fonction de densité définie par f(x) = 1/(1+exp(-x)) . f(x) est une valeur comprise entre 0 et 1.
REFERENCE FREEMAN, J. A.(1994), Simulating Neural Networks with Mathematica. Addison-Wesley Publishing Company. pp 68-74.
EXEMPLES >sigmoid(2) [1] 0.8807971 >sigmoid(c(-1.3, 6, 3, -8.9, 1.6, 0.3)) [1] 0.2141650170 0.9975273768 0.9525741268 0.0001363703 [5] 0.8320183851 0.5744425168 >mat <- matrix(runif(4, 0, 1), 2, 2) >sigmoid(mat) [,1] [,2] [1,] 0.5128071 0.6973341 [2,] 0.6457889 0.5937938
PROGRAMME
function(x)
{
1/(1 + exp( - x))
}
121
softmax fonction log-linéaire
---------------------------------------------------------------------
USAGE softmax(x)
ARGUMENTS x Matrice, vecteur. Pas de valeur manquante.
VALEUR La fonction retourne:
S les probabilités a posteriori.
REFERENCES RIPLEY, B. D. (1994a). Neural Networks and Related Methods for classification. J. R. Statist. Soc. B, 56, pp. 409-415.
CIAMPI, A. et LECHEVALLIER, Y.(1995), Designing Neural Networks from Statistical Models: A new approach to Data Exploration. Proceedings of the 1st Conference on Knowledge Discovery & Data Mining, 45-50.
PROGRAMME
function(x)
{
x <- as.matrix(x)
if(ncol(x) == 1)
soft <- as.numeric(exp(x))
else
soft <- as.numeric(exp(x) %*% rep(1, ncol(x)))
S <- exp(x)/soft
S
}
122
tansig fonction d’activation tangente hyperbolique sigmoïde
---------------------------------------------------------------------
USAGE tansig(x)
ARGUMENTS x Matrice, vecteur ou scalaire. Pas de valeur
manquante.
VALEUR La fonction retourne une valeur en utilisant la fonction définie par f(x) = 2/(1 + exp(-2*x)) - 1 f(x) est une valeur comprise entre -1 et 1.
EXEMPLES >tansig(2) [1] 0.9640276 >tansig(c(-1.3, 6, 3, -8.9, 1.6, 0.3)) [1] -0.8617232 0.9999877 0.9950548 -1.0000000 [5] 0.9216686 0.2913126 >mat <- matrix(runif(4, 0, 1), 2, 2) >tansig(mat) [,1] [,2] [1,] 0.09151815 0.7490309 [2,] 0.14693582 0.4608017
PROGRAMME
function(x)
{
2/(1 + exp(-2 * x)) - 1
}
123
UPDATE Mise à jour des paramètres libres
---------------------------------------------------------------------
Description Cette fonction permet de mettre à jour les paramètres libres du réseau après chaque période d’apprentissage.
USAGE UPDATE(Z, w1, w2, delta2, delta1, dw2, dw1, S0, eta, alpha)
ARGUMENTS Z Matrice des données contenant les covariables, y
compris la colonne du terme constant 1.
w1 Matrice des poids de connexion des cellules de la
couche d'entrée avec celles de la couche cachée. C'est une matrice de dimension (j,i), avec j=nombre de cellules dans la couche cachée, et i=nombre de cellules dans la couche d'entrée.
w2 Matrice des poids de connexion des cellules de la
couche cachée avec celles de la couche de sortie. C'est une matrice de dimension (k,j), avec j=nombre de cellules dans la couche cachée, et k=nombre de cellules dans la couche de sortie.
delta2 La dérivée première de la fonction coût par rapport
aux poids de connexion de la couche de sortie vers la couche cachée.
delta1 La dérivée première de la fonction coût par rapport
aux poids de connexion de la couche cachée vers la couche d'entrée.
dw2 Variation des paramètres libres entre les périodes
t-1 et t de la couche de sortie vers la couche cachée.
dw1 Variation des paramètres libres entre les périodes
t-1 et t de la couche cachée vers la couche d'entrée.
S0 La sortie non linéaire au niveau de la couche
cachée.
eta Facteur d'apprentissage.
alpha Facteur moment ou facteur de lissage.
124
VALEUR La fonction retourne une liste contenant:
w1 Matrice des poids de connexion des cellules de la couche d'entrée avec celles de la couche cachée, mise à jour.
w2 Matrice des poids de connexion des cellules de la couche cachée avec celles de la couche de sortie, mise à jour.
dw2 Variation des paramètres libres entre les périodes
t-1 et t de la couche de sortie vers la couche cachée, mise à jour.
dw1 Variation des paramètres libres entre les périodes
t-1 et t de la couche cachée vers la couche d'entrée, mise à jour.
REFERENCE RIPLEY, B. D. (1994a). Neural Networks and Related Methods for classification. J. R. Statist. Soc. B, 56, pp. 409-415.
PROGRAMME
function(Z, w1, w2, delta2, delta1, dw2, dw1, S0, eta, alpha)
{
dw2 <- (1 - alpha) * eta * t(delta2) %*% S0 + alpha * dw2
w2 <- w2 + dw2
dw1 <- (1 - alpha) * eta * t(delta1) %*% Z + alpha * dw1
w1 <- w1 + dw1
return(w1, w2, dw1, dw2)
}
125
ANNEXE 4
Description des variables
NN: intervalle séparant deux pics consécutifs d’un électrocardiogramme.
CA: courant alternatif.
Nom Type Description Classification
killip Catégoriel mesure l’état cardiaque du patient 1: Classe1, 2: Classe2, 3: Classe3, 4: Classe4
Meannn Continu Moyenne des intervalles NN sur toute la longueur de l’enregistrement Varie entre 0,479 et 1,696
Sigmann Continu Écart type des intervalles NN Varie entre 0,019 et 1,948
Pnn50 Continu Probabilité que les différences successives des intervalles NN > 50 msec Varie entre 0 et 85,371 %
Sdann Continu Écart type de 5-minutes intervalle NN écart type Varie entre 0,017 et 0,449
Meansd Continu Moyenne de 5-minutes intervalle NN écart type Varie entre 0,007 et 0,222
Totac Continu Puissance CA totale pour 24 heures d’électrocardiogramme Varie entre 0,000363 et 0,2036
Ulf Continu Énergie obtenue dans la bande < 0,0033 hz pour 24 heures d’électrocardiogramme Varie entre 0,000317 et 0,2018
Vlf Continu Énergie obtenue dans la bande (0,0033 - 0,04) hz Varie entre 0,000019 et 0,026663
Lf Continu Énergie obtenue dans la bande (0,04 - 0,15) hz Varie entre 0,00003 et 0,00955
Hf Continu Énergie obtenue dans la bande (0.15 - 0.4) hz Varie entre 0,000001 et 0,011498
Meandim Continu Moyenne des valeurs 5-minutes des dimensions approximées Varie entre 0,906 et 3,679
Meanent Continu Moyenne des valeurs 5-minutes des entropies approximées Varie entre 0 et 1,261
126
ANNEXE 5
Tableaux des résultats
Tableau A4.1 lappr en fonction du nombre de cellules dans la couche cachée.
# de cellules lappr
1 1219,501 2 1202,505 3 1201,904 4 1201,684 5 1200,835 6 1198,634 7 1192,637 8 1192,243 9 1187,383 10 1183,755
Tableau A4.2 Variations relatives de lappr en fonction du nombre de cellules dans la couche cachée.
# de cellules variation relative
2 28,265 3 2,733 4 0,259 5 0,385 6 0,367
7 15,225 8 0,081 9 1,340
127
Tableau A4.3
Valeurs de l’AIC en fonction du nombre de cellules dans la couche cachée.
# de cellules AIC
1 2481,002 2 2481,010 3 2513,808 4 2547,368 5 2579,671 6 2609,268 7 2631,273 8 2664,486 9 2688,765 10 2715,510
Tableau A4.4 Valeurs du BIC en fonction du nombre de cellules dans la couche cachée.
# de cellules BIC
1 2593,255 2 2684,134 3 2807,803 4 2932,234 5 3055,408 6 3175,877 7 3288,753 8 3412,837 9 3527,988 10 3645,604
128
Tableau A4.5
Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur deux groupes disjoints.
# de cellules lappr
1 794,085 2 781,008 3 776,060 4 768,292 5 767,608 6 762,911 7 758,622 8 757,412 9 754,441 10 748,065
Tableau A4.6 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la
méthode de la validation croisée sur deux groupes disjoints.
# de cellules ltest
1 424,466 2 419,584 3 443,036 4 429,314 5 442,648 6 440,802 7 449,430 8 439,548 9 447,062 10 449,594
129
Tableau A4.7
Valeurs de lappr en fonction du nombre de cellules dans la couche cachée par la méthode de la validation croisée sur plus de deux groupes disjoints.
# de cellules lappr
1 812,131 2 804,555 3 802,834 4 797,501 5 792,911 6 792,644 7 790,149 8 789,254 9 788,954 10 788,590
Tableau A4.8 Valeurs de ltest en fonction du nombre de cellules dans la couche cachée par la
méthode de la validation croisée sur plus de deux groupes disjoints.
# de cellules ltest
1 413,490 2 413,730 3 415,608 4 418,177 5 419,927 6 419,944 7 418,723 8 421,205 9 420,614 10 420,638
130
Tableau A4.9 Valeurs de SEtest en fonction du nombre de cellules dans la couche cachée par la
méthode de la validation croisée sur plus de deux groupes disjoints.
# de cellules SEtest
1 26,220 2 24,999 3 26,062 4 27,588 5 28,784 6 29,767 7 27,106 8 27,911 9 31,111 10 29,835
Tableau A4.10 Valeurs de lboot en fonction du nombre de cellules dans la couche cachée par la
méthode du bootstrap.
# de cellules lboot
1 1235,813 2 1235,487 3 1235,837 4 1236,025 5 1236,757 6 1236,225 7 1240,519 8 1247,131 9 1252,270 10 1259,918
131
Tableau A4.11 Erreurs de classification après apprentissage sur tout l’ensemble des exemples en
fonction du nombre de cellules dans la couche cachée.
# de cellules Erreur(%)
1 30,117 2 30,052 3 29,794 4 29,794 5 29,665 6 29,600 7 29,536 8 29,471 9 29,471 10 29,471
Tableau A4.12 Erreurs de classification sur l’ensemble d’apprentissage en fonction du nombre de
cellules dans la couche cachée.
# de cellules Erreur(%)
1 30,100 2 29,906 3 29,810 4 29,713 5 29,713 6 29,617 7 29,519 8 29,422 9 29,326 10 29,229
132
Tableau A4.13 Erreurs de classification sur l’ensemble de test en fonction du nombre de cellules dans
la couche cachée.
# de cellules Erreur(%)
1 30,589 2 30,395 3 30,783 4 30,589 5 31,170 6 31,170 7 31,558 8 31,170 9 31,550 10 31,558
133
ANNEXE 6
Programmes et résultats obtenus en régression logistique
1. Programme BMDP / INPUT TITRE ='REGRESSION LOGISTIQUE SUR' FILE = 'fichier'. FORMAT = FREE . VARIABLES = 13 . / VARIABLES NAMES = killip, meannn, sigmann, pnn50, sdann, meansd, totac, ulf, vlf, lf, hf, meandim, meanent . / GROUP CODES(killip) = 1, 2, 3, 4 . NAMES(killip) = un, deux, trois, quatre . / REGRESS DEPENDENT = killip . LEVEL = 4 . TYPE = ORD . INTERVAL = meannn TO sigmann . ENTER = .01, .01 . REMOVE = .02, .02 . / PRINT CELLS = MODEL . / END
2. Régression logistique sur l’échantillon total NUMBER OF CASES READ. . . . . . . . . . . . . . 1549 TOTAL NUMBER OF RESPONSES USED IN THE ANALYSIS 1549. un . . . . . . 1069. deux . . . . . . 359. trois . . . . . . 83. quatre . . . . . . 38. TOTAL NUMBER OF DISTINCT COVARIATE PATTERNS . . 1522
134
STEP NUMBER 2 meannn IS ENTERED ------------------------ LOG LIKELIHOOD = -1254.635 IMPROVEMENT CHI-SQUARE ( 2*(LN(MLR) ) = 22.993 D.F.= 1 P-VALUE= 0.000 GOODNESS OF FIT CHI-SQ (2*O*LN(O/E)) = 2488.816 D.F.=4561 P-VALUE= 1.000 STANDARD 95% CI OF EXP(COEF) COEFFICIENT ERROR COEF/SE EXP(COEF) LOW-END HIGH-END ALL OUTCOMES 1 meannn -2.204 0.466 -4.73 0.11 0.44E-01 0.27 2 sigmann -9.387 2.04 -4.59 0.84E-04 0.15E-05 0.46E-02 OUTCOME: un 3 CONST1 2.081 0.356 5.85 8.0 4.0 16. un TO deux 4 CONST2 0.3370 0.355 0.949 1.4 0.70 2.8 un TO trois 5 CONST3 -0.9128 0.376 -2.43 0.40 0.19 0.84 SUMMARY OF STEPWISE RESULTS STEP TERM LOG IMPROVEMENT GOODNESS OF FIT NO. ENTERED REMOVED DF LIKELIHOOD CHI-SQUARE P-VAL CHI-SQUARE P-VAL --- ------------------------ --- ---------- ---------- ----- ---------- ----------------------------------------------------- 0 -1305.140 2589.826 1.000 1 sigmann 1 -1266.132 78.016 0.000 2511.809 1.000 2 meannn 1 -1254.635 22.993 0.000 2488.816 1.000
3. Régression logistique sur l’ensemble d’apprentissage NUMBER OF CASES READ. . . . . . . . . . . . . . 1033 TOTAL NUMBER OF RESPONSES USED IN THE ANALYSIS 1033. un . . . . . . 718. deux . . . . . . 236. trois . . . . . . 58. quatre . . . . . . 21 .
135
TOTAL NUMBER OF DISTINCT COVARIATE PATTERNS . . 1021 STEP NUMBER 2 sigmann IS ENTERED ------------------------ LOG LIKELIHOOD = -817.980 IMPROVEMENT CHI-SQUARE ( 2*(LN(MLR) ) = 14.269 D.F.= 1 P-VALUE= 0.000 GOODNESS OF FIT CHI-SQ (2*O*LN(O/E)) = 1635.960 D.F.=3094 P-VALUE= 1.000 STANDARD 95% CI OF EXP(COEF) COEFFICIENT ERROR COEF/SE EXP(COEF) LOW-END HIGH-END ALL OUTCOMES 1 meannn -2.789 0.587 -4.75 0.61E-01 0.19E-01 0.19 2 sigmann -8.884 2.49 -3.57 0.14E-03 0.10E-05 0.18E-01 OUTCOME: un 12 CONST1 2.516 0.448 5.61 12. 5.1 30. un TO deux 13 CONST2 0.7562 0.446 1.70 2.1 0.89 5.1 un TO trois 14 CONST3 -0.6695 0.478 -1.40 0.51 0.20 1.3 SUMMARY OF STEPWISE RESULTS STEP TERM LOG IMPROVEMENT GOODNESS OF FIT NO. ENTERED REMOVED DF LIKELIHOOD CHI-SQUARE P-VAL CHI-SQUARE P-VAL --- ------------------------ --- ---------- ---------- ------ ---------- ---------------------------------------------------- 0 -858.436 1716.873 1.000 1 meannn 1 -825.114 66.645 0.000 1650.228 1.000 2 sigmann 1 -817.980 14.269 0.000 1635.960 1.000
4. Régression logistique sur l’ensemble de test NUMBER OF CASES READ. . . . . . . . . . . . . . 516 TOTAL NUMBER OF RESPONSES USED IN THE ANALYSIS 516. un . . . . . . 351. deux . . . . . . 123 . trois . . . . . . 25. quatre . . . . . . 17.
136
TOTAL NUMBER OF DISTINCT COVARIATE PATTERNS . . 143 STEP NUMBER 1 sigmann IS ENTERED ------------------------ LOG LIKELIHOOD = -434.915 IMPROVEMENT CHI-SQUARE ( 2*(LN(MLR) ) = 20.811 D.F.= 1 P-VALUE= 0.000 GOODNESS OF FIT CHI-SQ (2*O*LN(O/E)) = 869.831 D.F.=1544 P-VALUE= 1.000 STANDARD 95% CI OF EXP(COEF) COEFFICIENT ERROR COEF/SE EXP(COEF) LOW-END HIGH-END ALL OUTCOMES 2 sigmann -13.43 3.09 -4.34 0.15E-05 0.34E-08 0.63E-03 OUTCOME: un 12 CONST1 0.5559 0.307 1.81 1.7 0.95 3.2 un TO deux 13 CONST2 -1.158 0.322 -3.59 0.31 0.17 0.59 un TO trois 14 CONST3 -2.136 0.368 -5.81 0.12 0.57E-01 0.24 SUMMARY OF STEPWISE RESULTS STEP TERM LOG IMPROVEMENT GOODNESS OF FIT NO. ENTERED REMOVED DF LIKELIHOOD CHI-SQUARE P-VAL CHI-SQUARE P-VAL --- ------------------------ --- ---------- ---------- ----------------------------------------------------- ---------- ----- 0 -445.321 890.642 1.000 1 sigmann 1 -434.915 20.811 0.000 869.831 1.000
137
BIBLIOGRAPHIE
Akaike, H. (1974). A new look at the statistical model identification. IEEE Transactions on Automatic Control, AC-19, 716-723. Allen, D. M. (1974). The relationship between variable selection and data
augmentation and a method of prediction. Technometrics, 16, 125-127. Amari, S. (1993). Mathematical methods of neurocomputing. In networks and chaos - statistical probabilistic aspects. Barndorff-Nielsen, O. E., Cox, D. R., Jensen, L., Kendall, W. S., Chapman & Hall, London. Bengio, Y. (1995). Réseaux neuronaux et apprentissage. Notes de cours (IFT 6265), Département d’informatique et de recherche opérationnelle, Université de Montréal. Chapoutier, G., Kreutzer, M. et Menini, C. (1980). Le système nerveux et le
comportement. Études vivantes, collection Academic Press. Cheng, B. et Titterington, D. M. (1994). Neural networks: A review from a
statistical perspective. Statistical Science, V 9 (1), 2-54. Ciampi, A. et Lechevallier, Y. (1995). Designing neural networks from
statistical models: A new approach to data exploration. Proceedings of the 1st Conference on Knowledge Discovery & Data Mining, 45-50. Ciampi, A., Negassa, A. et Lou, Z. (1995). Tree-structured prediction for
censored survival data and the cox model. Journal of Clinical Epidemiology, 48, 675-689. Davalo, E. et Naïm, P. (1990). Des réseaux de neurones. Édition Eyrolles, Paris. Delacour, J. et Danchin, A. (1978). Neurobiologie de l’apprentissage. Masson, Paris. Demuth, H. et Beale, M. (1992-93). Neural Network Toolbox for use with
Matlab. The Math Works, Inc.
138
Efron, B. (1979). Bootstrap methods: another look at the jackknife. Annals of Statistic, 7, 1-26. Freeman, J. A. (1994). Simulating neural networks with Mathematic. Addison-wesley, reading, Massachusetts. Haykin, S. (1994 ). Neural networks: A comprehension foundation. Maxwell Macmillan, Canada. Hebb, D.O. (1949). The organization of behaviour. Wiley, New York. Hopfield, J.J. (1982). Neural networks and physical systems with emergent
collective computational abilities. Proceedings of the National Academy of Sciences, USA, 79, 2554-2558. Kramer, A.H. et Sangiovanni-Vincentelli, A. (1989). Efficient parallel learning
algorithms for neural networks. In advances in Neural Information Processing Systems 1 (D.S. Touretzky, ed.), pp. 40-48. San Mateo, CA: Morgan Kaufmann. Le Cun, Y. et Fogelman-Soulié, F. (1985). Une procédure d’apprentissage
pour réseau à seuil asymétrique, Proceedings of Cognitiva, 85, 599-604. Mac Clelland, J. et Rumelhart, D.E. (1988). Explorations in parallel distributed
processing: a handbook of models, programs, and exercises. Vol. 2. The MIT Press, Cambridge, Massachusetts. MathSoft, Août 1995. S-PLUS version 3.3 for Windows. StatSci Division MathSoft, Inc. Seattle, Washington. McCulloch, W.S., et Pitts, W. (1943). A logical calculus of the ideas immanent
in nervous activity. Bulletin of mathematical biophysics, 5, 115-133. Minsky, M. et Papert, S. (1969). Perceptrons. The MIT Press, Cambridge, Massachusetts. Negassa, A. (1996). Validation of tree-structured prediction for censored
survival data. Thèse de doctorat, Département d’Épidémiologie et de Biostatistique, McGill University, Montréal (Québec), Canada.
139
Negassa, A., Ciampi, A., Abrahmowicz, M., Shapiro, S. et Boivin, J-F. (1997). Tree-structured prognostic classification for censored survival data:
Validation of computationally inexpensive model selection criteria. (sous révision). Ripley, B. D. (1993). Statistical aspects of neural networks. In networks and
chaos - Statistical probabilistic aspects. Barndorff-Nielsen, O. E., Cox, D. R., Jensen, L., Kendall, W. S., Chapman & Hall, London. pp. 49-50. Ripley, B. D. (1994a). Neural networks and related methods for classification
(with discussion). J. R. Statist. Soc. ser. B, 56, 409-456. Ripley, B. D. (1994b). Flexible Non-linear Approches to classification. In form Statistics to Neural Networks. Theory and Pattern Recognition Applications (V. Cherkassky, J. H. Friedman et H. Wechsler, eds.). Springer, New York. Rosenblatt, F. (1962). Principles of neurodynamics. Spartan, New York. Rumelhart, D.E., Hinton, G.E. et Williams, R.J. (1986). Learning
representations by back-propagating errors. Nature, 323, 533-536. Schwarz, G. (1978). Estimating the dimension of a model. Annals of Statistic, 6, 461-464. Segal, R. M. (1988). Regression tree for censored data. Biometrics, 44, 35-47. Stevens, C. (1979). Le neurone. Masson, Paris. Stone, M. (1974). Cross-validation choice and assessment of statistical
predictions. J. Royal. Statist. Soc. B 36, 111-147. Stone, M. (1977). An asymptotic equivalence of choice of model by cross-
validation and Akaike’s criterion. J. Royal. Statist. Soc. B 39, 44-47.
Université de Montréal Faculté des études supérieures
Ce mémoire intitulé
Implantation de réseaux de neurones artificiels en S-PLUS. Application : comparaison de méthodes statistiques dans le choix
du nombre de cellules cachées.
présenté par
Urbain Léonce Adico
a été évalué par un jury composé des personnes suivantes :
M. Yves Lepage (président-rapporteur)
M. Gilles Ducharme (directeur de recherche)
M. Antonio Ciampi (co-directeur de recherche)
M. Jean-François Angers (membre du jury)
Mémoire accepté en :