Documente Academic
Documente Profesional
Documente Cultură
Guide de l'utilisateur
Neuro One©
1 Objectifs du document
Ce document constitue un outil de formation au logiciel Neuro One© 5.
9. SÉRIE TEMPORELLE
10. MODÈLE DYNAMIQUE
11. KOHONEN
12. FONCTION DENSITÉ
Après avoir installé Neuro One©, le dossier apparaît sur le bureau de l’ordinateur.
Vous disposez alors de 15 jours pour enregistrer votre version de Neuro One auprès de Netral.
Pour vous enregistrer, vous devez répondre Oui à la question posée. Le gestionnaire de licence apparaît alors :
Vous sélectionnez le numéro de licence en cours dans la zone d'édition haute, puis vous le copiez dans le presse
papier. Enfin vous le collez sur un document texte ou un mail que vous envoyez à NETRAL (info@netral.com).
NETRAL vous retournera très rapidement le numéro définitif qui portera la date limite conforme à votre achat.
Vous pouvez alors recopier par une procédure similaire ce nouveau numéro dans la zone d'adition basse, et
cliquez sur Ecrire. Neuro One est alors installé et validé.
D’autres raccourcis peuvent être ajoutés en fonction des logiciels de la Suite Neuro One© installés.
La fenêtre d’accueil de Neuro One© est la suivante :
Elle est composée d’une barre d’outils dont le seul menu est Projet.
Projet
Pour cela, nous allons utiliser l’Assistant Projet qui vous guide pas à pas dans la construction d’un projet en vous
posant quelques questions simples. Nous exposerons au chapitre 5 (« Développement d’un projet sous Neuro
One » une procédure plus complète, qui vous permet d’accéder à tous les paramètres définissant un projet.
• Cette fenêtre permet sélectionner un type de projet. Les particularités de chaque type de projet seront
précisées ultérieurement. Rappelons néanmoins brièvement les définitions des diverses
options :Statique : projet de régression. Le projet consiste à approximer une fonction connue seulement
par des exemples.
• Classification : projet de classification à deux classes. Le projet consiste à affecter les exemples à une
classe parmi deux. La question de la classification à plus de deux classes sera abordée au chapitre 8
(« Classification »).
• Série temporelle : projet de prévision par extrapolation de série temporelle par l’approche auto-régressive.
Les trois types de projets précédents ne font appels qu’à des architectures statiques, c’est à dire dans lesquelles
l’information progresse des Entrées du Réseau vers la Sortie sans bouclage rétroactif. Les deux types de projets
suivants font appel à des architectures bouclées, ou « dynamiques ».
• Dynamique : construction d’un Réseau à architecture bouclée, en général dans un but d’identification de
processus ou de création d’un contrôleur.
• Série temporelle dynamique : mise en œuvre des Réseaux Dynamiques dans un but d’extrapolation de
série temporelle.
Enfin, les deux derniers types de projets relèvent de la modélisation descriptive :
• Carte Auto Organisatrice : mise en oeuvre de la Carte de Kohonen, en général dans un but de
clusterisation ou de réduction de dimensionalité en tant que pré-traitement des données.
• Fonction de Densité : cartographie de la densité des exemples dans l’espace des données.
Cliquez sur le bouton Suivant. La fenêtre Fourniture de données s’affiche.
• « Nouvelle requête » est sélectionné, ce qui signifie que nous allons utiliser un fichier qui n’a pas encore
servi à faire un apprentissage sous Neuro One.
• En cochant « Importer », vous importeriez des données ayant déjà servi à un apprentissage sous Neuro
One, ainsi que l’identification des variables d’entrée et de sortie.
Dans cette prise en main, nous allons charger un fichier texte au format « .csv ». Sélectionnez « ASCII », et
cliquez sur « Suivant », puis sélectionnez le fichier « Fonction Démo.csv » dans le répertoire
Netral/Exemples/Données.
Procédez de même avec la variable « y » (bouton « Sorties »), que vous enverrez dans la partie inférieure de la
zone droite de la fenêtre.
En cliquant sur le bouton « Test lignes », vous saurez combien de lignes sont complètes (sans valeur
manquante). Neuro One ne retiendra que les lignes complètes.
Il est également possible à ce niveau de définir directement des blocs de lignes retenus pour participer à
l’apprentissage. Les lignes non retenues ne participeront pas à l’apprentissage.
Cliquez sur Suivant. La fenêtre Paramètres du modèle s’affiche.
Notez que vous pouvez simplement réutiliser une architecture définie lors d’un projet antérieur en cochant la case
« Utiliser un réseau de neurones existant ». Il vous sera alors demandé le nom du fichier de modèle à charger.
Cliquez alors sur « Initialiser ». Vous revenez alors dans la fenêtre principale de Neuro One, et les données sont
chargées automatiquement. Le modèle est prêt pour l’apprentissage.
Pour paramétrer l’apprentissage, sélectionnez « Marche » dans le menu principal, puis sélectionnez le sous-menu
Dans la zone de saisie « Dimension », entrez la valeur « 150 ». C’est le nombre d’enregistrements qui seront
prélevées dans vos données pour constituer l’ensemble de validation. Ce prélèvement est effectué par tirage
aléatoire (sans remise).
Lancez maintenant les apprentissages en cliquant sur . Comme vous l’avez demandé, quatre apprentissages
successifs seront effectués automatiquement. A l’issue de ces apprentissages, la fenêtre « Ecart type » aura
l’allure suivante :
Vous constatez :
• Que quatre apprentissages successifs ont été accomplis.
• Que les courbes rouges, visualisant l’écart type des erreurs commises par le réseau sur l’ensemble
d’apprentissage, décroissent régulièrement.
• Que les courbes bleues, visualisant l’erreur commise par le réseau sur l’ensemble de validation a une
décroissance qui n’est pas parfaitement régulière. De plus, cette erreur est supérieure à celle commise sur
l’ensemble d’apprentissage1.
Dans cet exercice de prise en main, nous ne nous préoccuperons pas de reconnaître et de préserver le
« meilleur » apprentissage, et laisserons Neuro One faire cette sélection.
Pour cela, cliquez sur l’icône de la barre d’outils ou bien sélectionnez « Edition/Données internes » à
partir de la barre de menus.
La fenêtre « Données internes » apparaît.
On retrouve dans cette fenêtre une copie du fichier de données sélectionné pour la construction du projet. Sur la
gauche de la fenêtre, la colonne « Line » donne les numéros d’identification des individus. A sa droite, la colonne
« X-Val » contient la valeur « Vrai » quand l’exemple de la ligne a été retenu dans l’ensemble de validation.
A droite de la dernière colonne du fichier de données figure une colonne vide intitulée « Calcul y ». Cliquez sur le
bouton « Calcul ». La colonne se remplit des valeurs de y prédites par le réseau.
1
Il peut arriver exceptionnellement que l’erreur commise sur l’ensemble de validation soit inférieure à celle
commise sur l’ensemble d’apprentissage. Ce cas pathologique peut s’éliminer en changeant d’ensemble de
validation.
• La colonne « Résiduel » contient la différence entre la valeur prédite de y et sa valeur réelle, donc l’erreur
commise par le réseau.
• La colonne « Confiance y » contient un « Intervalle de confiance » affecté par Neuro One à cette
prédiction. Ce point sera repris au chapitre 13 (« Intervalle de confiance »)..
Le menu « Edition/Copier » vous permet de transférer les valeurs de sortie du réseau dans le presse-papier, par
exemple à des fins d’analyse statistique.
Créez votre premier groupe de projets en cliquant sur l’icône . Changez « Nouveau groupe » en « Mon
premier groupe », puis entrez « Mon premier projet » dans la zone de saisie en bas de la fenêtre, et cliquez sur
« OK ».
Le regroupement de projets en groupes n’est pas obligatoire, et vous pouvez aussi bien sélectionner « Projets »
pour sauvegarder votre projet.
Vous pouvez renommer un projet en en sélectionnant le nom, puis en appelant « Renommer » depuis le menu
contextuel appelable par un clic droit de souris.
Vous avez terminé la construction et la sauvegarde de votre premier projet avec Neuro One.
Pour ouvrir un projet existant, cliquez sur le bouton . La fenêtre Charger projet apparaît :
Cliquez sur « Mon premier groupe », puis double-cliquez sur « Mon premier projet ».
Votre projet est maintenant chargé en mémoire, et disponible pour tout changement de valeurs de paramètres que
vous jugerez utile.
menu, ou bien cliquez sur l’icône . La fenêtre « Expert de données » s’ouvre. Sélectionnez « ASCII », puis
cliquez sur « Parcourir » afin de sélectionner le fichier « Netral/Exemples/Données/Fonction démo
utilisation.csv ». La fenêtre suivante s’ouvre :
La partie gauche de la fenêtre (« Liste des champs ») contient la liste des noms des variables du fichier
« Fonction démo utilisation ». La zone la plus à droite de la fenêtre contient la liste des noms des variables du
fichier utilisé lors de l’apprentissage du réseau.
L’ordre des variables présentées au réseau est maintenant important : il est impératif que chaque variable du
fichier d’utilisation soit présentée à l’entrée de la variable d’apprentissage correspondante. Or il est possible que
les variables du fichier d’utilisation ne soient pas dans le même ordre que celles du fichier d’apprentissage, voire
qu’il contienne des variables qui n’ont pas été retenues lors de l’apprentissage.
Dans l’ordre des variables de la partie droite de la fenêtre, sélectionnez une par une les variables correspondantes
dans « Liste des champs », et cliquez sur « Entrée >> » (ou faites un glisser-déposer). Lorsque des variables
contiguës sont utilisables, et dans le bon ordre, vous pouvez faire une sélection multiple.
Dans le cas présent, toutes les variables sont utilisées, et elles sont présentées dans le bon ordre. Après transfert
des variables, la fenêtre a l’aspect suivant :
4 De la modélisation
Ce chapitre précise quelques points importants sur la modélisation et les réseaux de neurones.
2
Notons que l’on utilise aussi les termes de « variables indépendantes » et « variables dépendantes ». Il convient
cependant de ne pas donner ici au terme « indépendantes » le sens qu’on lui donne habituellement en statistique.
La plus intuitive est de généraliser la relation linéaire par une relation polynomiale dont on choisit a priori le degré,
supérieur à 1. Neuro One offre à l’utilisateur la possibilité de construire des modèles polynomiaux.
Les modèles polynomiaux souffrent cependant d’un grave défaut : ils généralisent mal. Cette notion, fondamentale,
mérite d’être expliquée. Nous avons, jusqu’ici, parlé de « modélisation des données ». Il serait plus correct de
parler de « modélisation d’un processus qui n’est connu que par des données » (par exemple, expérimentales). Ce
que l’on attend d’un modèle, ce n’est pas seulement de modéliser correctement la relation entre les données
disponibles au moment de la modélisation, mais surtout de pouvoir affirmer que la relation ainsi identifiée
s’applique également aux données « à venir ». Ce n’est qu’à cette condition que l’on peut dire que le modèle est
bien représentatif du processus étudié. On dira alors qu’il « généralise bien ».
A performances égales sur des données disponibles, différents types de modèles généraliseront plus ou moins
bien, et seront donc plus ou moins utilisables. Les polynômes ont un pouvoir de généralisation qui se dégrade
rapidement quand augmente le nombre de variables explicatives.
A ce jour, les modèles de régression ayant le meilleur pouvoir de généralisation sont les Réseaux de Neurones
supervisés. Neuro One met à la disposition de l’utilisateur les deux types de Réseaux de Neurones supervisés
ayant les pouvoirs de généralisation les plus élevés :
1. Les Perceptrons Multi-Couches (PMC),
2. Les Réseaux à fonction radiale de base (RBF),
dont les principes sont décrits plus bas (7.2 « Types de modèles statiques »)
4.1.1.2 Classification
On parle de classification lorsque la variable « à expliquer » est qualitative (ou « modale ») et ne prend qu’un petit
nombre de valeurs. Par exemple, un constructeur automobile, disposant de trois options de motorisation A, B et C
pour un modèle donné, peut être intéressé à prédire l’option choisie par un nouvel acheteur en fonction de son
sexe, son âge, son revenu, le nombre de ses enfants, le nombre de kilomètres parcourus par an etc…
Il est clair qu’un tel modèle est forcément imparfait : deux acheteurs ayant des « profils » identiques au vu des
données dont on dispose sur lui peuvent acheter des options différentes. Le mieux que l’on puisse espérer est
donc d’estimer les probabilités pour que ces acheteurs portent leur choix sur les options A, B, et C. On fait alors
de la classification probabiliste.
On montre que la classification probabiliste est, pour le mathématicien, le même problème que celui de la
régression, à quelques détails près. Les mêmes techniques qui ont servi à faire de la régression peuvent donc
maintenant servir à faire de la classification.
En particulier, les polynômes, et les Réseaux de Neurones PMC et RBF de Neuro One permettent de faire de la
classification probabiliste, c’est à dire d’estimer les probabilités, pour chaque enregistrement, d’appartenir à telle ou
telle classe.
4.1.1.3 Séries temporelles
Prévoir la valeur que prendra une grandeur dans l’avenir est une préoccupation essentielle de beaucoup de
professions : assurance, finance, commercial, géopolitique etc… Il est donc naturel que de nombreuses techniques
aient été inventées pour pallier l’absence d’une authentique boule de cristal.
Parmi les méthodes les plus développées figurent les techniques « auto-régressives ». Dans leur forme la plus
simple, elles font l’hypothèse que la valeur de la grandeur à un pas de temps dans le futur ne dépend que des
valeurs prises par cette grandeur au temps présent et dans quelques pas de temps du passé.
Cette approche permet de ramener la prévision à un problème dont l’aspect temporel a disparu. Ainsi, si nous
supposons que la valeur de la grandeur est une fonction inconnue, mais bien réelle, des valeurs prises par cette
même grandeur dans les trois pas de temps précédents, on peut disposer les données dont on dispose (historique
de la grandeur) selon quatre colonnes, représentant les valeurs de la fonction sur trois pas de temps successifs, et
ce de toutes les façons possibles. La prévision de l’évolution de la grandeur revient alors à construire un modèle
permettant de prédire les valeurs de la quatrième colonne connaissant celles des trois premières. Autrement dit, la
prévision est maintenant ramenée à un problème de régression, d’où le nom de cette famille de techniques.
Il revient à l’utilisateur de définir le nombre de pas de temps à prendre en compte dans cette modélisation. Ce
choix effectué, Neuro One se charge de créer automatiquement le tableau des données sous une forme
appropriée pour la modélisation à venir.
Il faut cependant noter que l’approche auto-régressive n’est pas la seule envisageable. En particulier, on peut
penser à créer des modèles dynamiques (ou « récursifs ») dans lesquels la seule variable indépendante (ou
variable d’entrée) est la grandeur elle-même, mais dont la valeur de sortie dépend non seulement de la valeur en
entrée, mais également de valeurs prises par cette entrée dans le passé. Ceci s’obtient en créant, dans le modèle,
des boucles retardées permettant d’injecter en certains points du modèle des valeurs prises par d’autres points du
modèle à l’instant précédent.
Les Réseaux de Neurones Dynamiques sont des outils très puissants de modélisation récursive pour
l’extrapolation des séries temporelles et l’identification de processus. Ils sont décrits dans le chapitre 10 de ce
manuel.
Netral a développé une technique neuronale entièrement originale d’estimation de densité. Cette technique utilise
un Réseau de Neurones que l’on avait l’habitude de voir dans le domaine prédictif (régression etc…), à savoir le
PMC. La propriété fondamentale du PMC, à savoir sa remarquable capacité de généralisation, permet à Neuro
One d’offrir une technique d’estimation de densité aux résultats excellents. La mise en œuvre de cette technique
est détaillée au chapitre 12.
4.4 Références
« Réseaux de neurones : méthodologie et applications »
Gérard DREYFUS et al.
Eyrolles (2002)
« Les réseaux de neurones : une technique opérationnelle pour le traitement des données industrielles,
économiques et financières. »
Gérard DREYFUS,
MESURES n°699 , novembre 1997
Cliquer sur le bouton pour créer un nouveau projet. La fenêtre « Projet » apparaît.
Le volet « Général » est sélectionné. Il permet de définir quel type de projet va être construit.
• Le cadre « Type de projet » a été défini lors de la description de l’Assistant Projet (§ 3.2).
• La case « Classification » est à cocher lorsque la variable de sortie est une variable nominale à deux
valeurs. Neuro One ne traite en standard que des problèmes de classification à deux classes. Cette approche
permet néanmoins de traiter facilement des problèmes à N classes, et est reconnue comme celle conduisant aux
meilleurs résultats. Ce point est développé dans le chapitre 8 Classification.
• « Classification » n’est accessible que si Statique a été sélectionné.
• La zone « Série temporelle » permet un sur-échantillonnage des données dans les problèmes
d’extrapolation de séries temporelles par réseau dynamique. Ce point est repris en détail dans le chapitre 9
« Séries temporelles ».
x1 x2 ------- x9 x10 y
0.67429888 0.55635119 ------- 0.89086461 0.86543298 -1.2245872
-0.13727026 0.26969323 ------- -0.4358649 0.31770289 -1.57700896
-0.7134499 -0.42975384 ------- 0.82876712 -1.02001321 -0.36816779
-0.03469657 -1.12966871 ------- 1.00223398 0.42185122 -0.72443706
-0.78848732 0.42295304 ------- 2.44929957 -0.16754907 -0.00149319
En sélectionnant une base de données dans le cadre de gauche, vous affichez dans le cadre de droite les tables
de cette base. Sélectionnez une table et cliquez sur OK.
Note : Les bases NeuroOneData et NeuroOneData_<Utilisateur> sont créées automatiquement par le logiciel à
chaque fois que vous créez un nouveau projet.
5.2.2.2 Données au format ASCII ou « .xls »
Déselectionnez l’option « DB », puis cliquez sur « Parcourir ». La fenêtre Ouvrir s’affiche, et vous pouvez
sélectionner le fichier que vous souhaitez utiliser.
Le cadre « Lignes » décrit la structure du fichier telle que l’a comprise Neuro One. Ici :
• La première ligne est annoncée comme contenant les noms des variables.
• Il n’y a pas de ligne contenant les unités des variables.
• Son nom.
• Son architecture.
• Les pré traitements appliqués aux données.
• La case Réseau interne est cochée par défaut. Elle indique que le projet va construire un nouveau modèle.
Si vous décochez cette case, vous indiquez à Neuro One que vous voulez utiliser un modèle déjà construit
précédemment. Il vous sera alors demandé d’entrer le nom du fichier du réseau ou du polynôme que vous
souhaitez utiliser.
Si vous conservez l’option « Réseau interne », donnez un nom au réseau, et entrez ce nom dans la zone de saisie
« Nom ».
• Vous devez sélectionner un type de modèle à construire, le choix étant :
1. Un Perceptron Multi-Couches (Cliquer sur Neuronal).
2. Un réseau à fonctions radiales de Base (Cliquer sur FBR).
3. Un polynôme.
• Dans le cadre Architecture, les zones « Entrées » et « Sorties » sont en grisé, et non modifiables. Les
nombres figurant dans les zones de saisie on été déterminés pendant la phase précédente, au cours de laquelle
vous avez défini les entrées et les sorties.
• Vous devez entrer maintenant :
Le nombre de neurones cachés (PMC ou RBF)
ou le degré du polynôme..
Ce paramètre très important car la capacité de modélisation des réseaux de neurones est fortement influencé par
le nombre de neurones cachés.
Un modèle avec zéro neurone caché est un modèle linéaire ; un modèle est non linéaire à partir d’un neurone
caché. A priori, le nombre de neurones cachés n’est pas connu. Il faut déterminer le meilleur choix en essayant
successivement un, deux, trois neurones cachés voire plus.
• Dans la zone Type de réseau, vous pouvez cocher les case Tout connecté ou Liens E/S.
Un réseau de type Tout connecté est un réseau où les neurones de la couche cachée sont reliés entre
eux.
Un réseau de type Liens E/S est un réseau où les neurones de sorties sont reliés aux neurones d’entrées,
en plus des liens vers les neurones cachés. Cette architecture convient bien à l’approximation de fonction
faiblement non linéaires : les liens directs E/S génèrent la « partie linéaire » de la fonction, la couche
cachée ne servant qu’à générer les écarts de la fonction à la stricte linéarité.
Liens E/S
L’intérêt de ces architectures « non standard » est de conserver au réseau son pouvoir de représentation, tout en
réduisant le nombre de poids. D’une façon générale, il faut retenir qu’à erreur égale commise sur un ensemble
d’apprentissage, un réseau de neurones (ou tout autre modèle) a d’autant plus de chance de bien généraliser qu’il
contient peu de paramètres.
• La fonction d’activation (ou fonction de transfert) par défaut (« Arc Tangente »), convient dans la majorité
des cas. Il n’est donc pas nécessaire de la modifier. D’autres fonctions d’activation sont également proposées à
l’utilisateur.
Remarquez que la fonction d’activation des neurones de sortie est définie par défaut à « Identité ». Conservez ce
choix pour les problèmes de régression. Un autre choix peut éventuellement être pris pour les problèmes de
classification (voir Chapitre 8 Classification).
• La zone « Pré traitement » vous permet de choisir un pré traitement à appliquer aux données d’entrée et
de sortie avant d’être prises en compte par le réseau.
« Aucun » n’active aucun pré traitement. Les données brutes seront utilisées lors de l’apprentissage.
« Standard » applique à chacune des variables un centrage-réduction. Les variables ainsi prétraitées
seront de moyenne nulle et de variance unité.
« Gram-Schmidt », « Composantes principales », « Composantes principales corrélées » et
« Moindre carrés » seront décrits en détail au chapitre 6.1. Ces pré traitements ont pour objectif de créer de
nouvelles variables en nombre réduit, ces nouvelles variables devenant les variables d’entrée du réseau.
La construction du réseau est terminée. Cliquez sur « Initialiser ».
La fenêtre du superviseur présente une vue hiérarchisée des structures de données et des projets présents dans
la machine.
Chaque projet apparaît dans l'arborescence "Projet", éventuellement dans un nœud fils de cette arborescence.
Chaque fois qu'un nœud de l'arborescence est sélectionné, ses propriétés sontr affichées dans la fenêtre en bas
du superviseur.
Pour chaque projet trois nœuds principaux apparaissent :
Structure de données regroupe toutes les structures de données du projet
Réseaux regroupe tous les modèles du projet
Pilotes regroupe tous les pilotes du projet.
Un quatrième nœud apparaît lorsque des résultats d'apprentissage ont été sauvegardés :
Résultats regroupe les modèles sauvegardés.
Pour chacun des nœuds de l'arborescence, un menu contextuel est appelé par le bouton droit de la souris.
Les nœuds de l'arborescence peuvent être déplacés par glisser-déplacer avec la souris. Toutefois ces
mouvements ne sont autorisés que lorsqu'ils sont pertinents.
Voir le § 5.2.3
L'utilisateur peut modifier à sa guise les paramètres du réseau. Il devra veiller toutefois à ce que les nombres
d'entrées et de sorties du réseau soient compatibles avec au mois une des structures de données présentes dans
le même projet.
Il est tout à fait possible de présenter dans le même projet des modèles de type différents, neuronaux,
polynomiaux ou utilisant des fonctions à base radiales, ainsi que des modèles externes modifiés par Neuro Shop,
et incorporant de la connaissance.
Il faut définir les nombres minimum et maximum de neurones cachés, et donner un nom générique aux réseaux.
Le paramètre %d utilisé ici sera remplacé par le nombre de neurones cachés du réseau.
Le clic sur OK entraîne la création de tous les réseaux demandés d'un seul coup.
Les onglets suivants sont similaires à ceux du dialogue pilote habituel de Neuro One. Ils permettent de définir les
paramètres de l'apprentissage, les fonctions de coûts, les ensemble de validation ainsi que les paramètres de
l'initialisation des poids avant l'apprentissage. Voir § 5.4
Il faut définir les minimums et maximums du rang de la structure de données, ainsi que du rang des réseaux.
Le nom générique peut comporter deux numérotations génériques %d. La première porte sur les données, la
deuxième sur les réseaux. Si une seule est présente, elle porte sur les réseaux.
Un clic sur OK entraîne la création de tous les pilotes d'un seul coup. Toutefois, les couples Données/Réseau
incompatibles ne donneront pas lieu à création de pilote correspondant.
• « Epoques »
L’apprentissage procède par une succession de petites modifications des valeurs des poids. Chaque modification
est appelée une époque. Le nombre d’époques détermine donc le temps alloué un apprentissage. Un nombre
élevé d’époques permet à l’algorithme d’apprentissage d’atteindre l’erreur la plus basse possible sur l’ensemble
d’apprentissage compte tenu de l’initialisation. Cependant, augmenter exagérément le nombre d’époques peut
rendre la durée de chaque apprentissage impraticable.
Il est donc nécessaire de procéder à quelques apprentissages exploratoires afin de déterminer expérimentalement
un nombre d’époques approprié.
Sous le libellé « Epoques » apparaissent les noms de trois algorithmes d’apprentissage (Gradient, Levenberg-
Marquardt, Quasi-Newton), avec le nombre d’époques correspondant. Ces trois algorithmes seront activés
successivement. Il n’est pas nécessaire d’activer les trois algorithmes, et de fait, il est fréquent de n’en activer
qu’un seul. Par défaut, Levenberg-Marquardt est seul activé, car il est souvent le plus efficace.
La case à cocher à gauche de « Gradient » active la version « stochastique » de cet algorithme. La mise à jour
des poids est alors effectuée au vu de l’erreur courante du réseau sur un seul enregistrement, au lieu d’être
effectuée, comme c’est habituellement le cas, au vu de l’erreur courante du réseau sur tous les enregistrements de
l’ensemble d’apprentissage.
Notons cependant que l’algorithme du gradient (souvent appelé improprement « de rétro-propagation »), souffre de
graves défauts qui tendent progressivement à le faire tomber en désuétude.
5.4.1.2 Autres options
• Précision
Cette option permet d’interrompre l’apprentissage avant le nombre spécifié d’époques, dès qu’une époque aura
conduit à une modification des poids dont les valeurs absolues seront toutes inférieures à la valeur spécifiée.
• Coût objectif
Cette option interrompt prématurément un aprrentissage lorsque l’erreur commise sur l’ensemble d’apprentissage
est inférieure à la valeur spécifiée.
• Niveau de défiance
Cette option ajuste le niveau de confiance des résultats de l’apprentissage. Ce point est détaillé dans le chapitre
13, « Intervalles de confiance ».
• Modération des poids
Lorsque le réseau est surdimensionné (trop de neurones cachés), l’apprentissage peut conduire les poids à
prendre de grandes valeurs absolues de façon à réduire l’erreur sur l’ensemble d’apprentissage. Ce comportement
conduira à une dégradation de la capacité de généralisation du réseau. Afin d’éviter ce phénomène, l’option
« Modération des poids » met en jeu un mécanisme de régularisation qui empêche les poids de prendre des
valeurs absolues exagérées.
• Leviers
Cette option, très importante, sera développée dans 5.5 « Choisir un modèle ». Brièvement, elle permet de
différencier les zones de l’espace dans lesquelles le modèle aura une bonne généralisation, de celles dans
lesquelles son pouvoir de généralisation sera moins élevé.
Ce choix n’est ni obligatoire, ni nécessairement le meilleur. Il n’est justifié théoriquement que lorsque les données
sont affectées d’un bruit additif gaussien.
Neuro One offre à l’utilisateur d’autres possibilités, qui sont décrites en annexe.
Il est possible de définir pour l’ensemble de validation une fonction de coût différente de celle utilisée pour
l’apprentissage. Pour profiter de cette possibilité, cocher la case « Validation différent ».
L’ensemble de validation est créé par tirage aléatoire (sans remise) dans le fichier de données. Dans le cas
particulier des séries temporelles, on veut tester la capacité d’extrapolation du modèle. Il faut donc que l’ensemble
de validation soit constitué d’individus postérieurs à ceux de l’apprentissage. Dans ce cas, cochez la case
« Groupé », et entrez la position du premier exemple de l’ensemble de validation.
• Cadre « Choix de la partition » L’ensemble de validation ne joue correctement son rôle que si sa
distribution est identique à celle de l’ensemble d’apprentissage. Si ces deux distributions sont sensiblement
différentes :
L’ensemble d’apprentissage devient biaisé car sa distribution n’est plus celle des données complètes.
De plus, l’erreur observée sur l’ensemble de validation sera une mauvaise estimation de l’erreur commise
par le réseau en phase d’utilisation.
Neuro One offre la possibilité de construire un grand nombre d’ensembles de validation, et de retenir celui dont
la distribution est la plus proche de celle de l’ensemble d’apprentissage. Pour cela :
Entrez dans la zone de saisie « Tentatives » le nombre d’ensembles de validation à créer (ici, 100).
Cliquer sur « Initialiser ». La construction des ensembles de validation est lancée, et pour chacun d’entre
eux, la similarité de sa distribution et de celle de l’ensemble d’apprentissage est calculée (distance de
Kulback-Leibler). Ces calculs peuvent prendre un temps important sur de gros fichiers.
Quand le processus est terminé, cliquer sur « Meilleur ». La zone « Coût de partition » affiche le degré
de dissimilarité entre les distributions pour le meilleur tirage.
Si cette valeur vous satisfait, cliquez sur « Appliquer ». Sinon, cliquez sur « RAZ », et recommencez
l’opération.
Note : cette recherche ne peut s’effectuer que si le système d’exploitation a enregistré la taille demandée pour
l’ensemble de validation. Une fois celle-ci définie, il faut la valider en cliquant sur « OK », puis rouvrir la fenêtre
« Pilote ».
• Il est souvent intéressant de comparer les performances de divers réseaux construits avec la même
partition « Apprentissage/Validation ». Pour pouvoir recréer à volonté une partition donnée, sauvegardez la en
appelant « Fichier/Enregistrer répartition » depuis la barre de menu principale. Pour recharger une répartition
sauvegardée, entrez son nom dans la zone de saisie « Partition », ou recherchez la en cliquant sur >>.
• Au début de chaque apprentissage, les poids sont initialisés aléatoirement par un tirage gaussien centré et
d’écart-type a. La valeur par défaut de a est 0,01. En augmentant cette valeur, on augmente le nombre de minima
locaux dans lesquels peuvent se stabiliser les apprentissages, favorisant ainsi la découverte d’un minimum
particulièrement profond (erreur particulièrement faible). Cependant, il est dangereux d’augmenter exagérément la
valeur de a : ceci favorise l’apparition de poids de forte valeur absolue, conduisant à un apprentissage lent et à un
comportement pathologique du réseau.
• Par défaut, les biais sont initialisés à 0, ce qui est généralement considéré comme souhaitable sur des
données centrées-réduites. Pour que les biais soient initialisés selon la même procédure que les autres poids,
décochez l’option.
• Vous pouvez particulariser la loi de tirage aléatoire (gaussienne) pour chacun des poids. Pour cela,
décochez la case « Standard », et entrez pour chaque poids la moyenne et l’écart-type que vous aurez choisis.
Cliquez sur « OK » pour quitter le Pilote.
5.5 L’apprentissage
Avant de lancer les apprentissages, il est fortement recommandé d’afficher la fenêtre dans laquelle seront tracées
en temps réel les courbes d’erreur sur les ensembles d’apprentissage et de validation.
Pour cela, cliquez sur l’icône , ou appelez « Vues/Coût » depuis la barre de menus.
Pour lancer l’apprentissage, cliquez sur , ou appelez « Marche/Apprentissage » depuis le menu principal. Les
courbes d’erreur (écart type de l’erreur sur les données non prétraitées) s’affichent en temps réel.
L’apprentissage courant peut être interrompu à tout instant en cliquant sur l’icône , puis repris en cliquant à
nouveau sur .
Si l’on décide d’arrêter prématurément une série d’apprentissages (par exemple pour modifier la définition du
projet), interrompre l’apprentissage courant, puis cliquer sur l’icône , ce qui remet à zéro le compteur
d’itérations.
L’icône permet de réinitialiser les poids avant de relancer une nouvelle série d’apprentissages.
Jacobien(i, j) =
∂(Sortie)
∂w j Exemple n°i
On montre que le surdimensionnement d’un réseau est détecté de façon fiable par le fait que le jacobien n’est pas
de rang plein, c’est à dire que son rang est inférieur à q.
Devant une famille de réseaux de neurones, il convient donc, dans un premier temps, d’éliminer ceux dont le
jacobien n’est pas de rang plein4.
3
Voir par exemple « Réseaux de neurones », G. DREYFUS et al., Eyrolles (2002).
4
Il faut noter que si deux réseaux R et R’, ayant respectivement q et q’ neurones, avec q > q’, il est possible que le
R’ soit surdimensionné, alors que R ne le sera pas. En effet, la surdimension éventuelle d’un réseau dépend non
seulement du nombre de neurones, mais également des valeur des poids. Pour s’en convaincre, il suffit de
considérer un réseau dont les poids ont des valeurs absolues très faibles : il se comportera presque comme un
système linéaire (dans les variables) quel que soit le nombre de neurones.
5
Ceci ne veut pas dire que l’erreur commise par le réseau pour cet exemple est faible, mais seulement que la
fonction matérialisée par le réseau autour de l’exemple est très proche de la vraie fonction de régression.
été dit dans le paragraphe précédent, entre deux réseaux présentant approximativement la même valeur du coût
de généralisation, on choisira de préférence celui ayant l’homogénéité la plus élevée.
• La notion de coût de généralisation ne fait pas apparaître la notion d’ensemble de validation. Elle permet
d’estimer les performances d’un modèle dont l’apprentissage s’est effectué sur la totalité des exemples
disponibles (pas d’ensemble de validation).
• La première colonne donne la date et l’heure de construction du réseau., dont le numéro d’ordre et donné
dans la deuxième colonne.
• Les colonnes Index_Pilote et Rang donnent respectivement les indices du pilote et le rang de l'initialisation
des poids pour ce pilote.
• La colonne intitulée « Meilleur », contient une variable binaire dont les valeurs sont « Vrai » ou « Faux ».
« Vrai » signifie que l'enregistrement des résultats a été fait pour l'erreur de validation la plus faible
« Faux » signifie que l'enregistrement des résultats a été fait en fin d'apprentissage.
• La colonne « Coût » contient, pour chaque enregistrement :
La valeur du coût sur l'ensemble d'apprentissage lors de l'enregistrement des résultats.
• La colonne « Validation » contient, pour chaque enregistrement :
Le coût de validation lors de l'enregistrement des résultats.
• La colonne « Généralisation » contient, pour chaque apprentissage, le coût de généralisation en fin
d’apprentissage tel qu’il est estimé pour l’ensemble d’apprentissage seul. Ce nombre est donc le même pour les
deux lignes correspondant à un même apprentissage.
• La colonne « Homogénéité » contient, pour chaque apprentissage, les valeurs de l’homogénéité pour
l’ensemble d’apprentissage (pas de validation) en fin d’apprentissage, et à l’époque correspondant à la plus faible
valeur du coût de validation.
• La colonne « Rang jacobien » contient le rang du jacobien du modèle. Rappelons qu’un modèle dont le
rang n’est pas plein (c’est à dire inférieur au nombre de poids), et très probablement sur paramétré, et en devrait
donc pas être retenu.
• La colonne « Stop » contient la raison pour laquelle l’apprentissage a été interrompu.
• La colonne « Epoque » contient, pour chaque apprentissage, l’époque pour laquelle le résultat a été
enregistré.
Chacun des libellés de colonne est en fait un bouton, dont l’activation provoque le tri des apprentissages par
valeurs décroissantes de la grandeur figurant dans la colonne. Cliquer à nouveau sur le bouton provoque le tri par
valeurs croissantes de cette même grandeur.
Les colonnes peuvent également être déplacées dans la table par glisser-déplacer pour une meilleure analyse des
données.
Le bouton Filtre permet de filtrer les enregistrements affichés.
Il est possible d'éditer "à la main" le filtre en utilisant le langage SQL. Il est préférable d'utiliser les aides sélectives
qui permettent de filtrer sur les critères suivants :
Absence d'erreur de calcul (par défaut)
Membre du meilleur choix parmi les modèles
Jacobien de rang plein
Coût d'apprentissage non nul ou supérieur à un seuil
Coût de validation non nul ou supérieur à un seuil
Chaque point représente un apprentissage. En amenant le pointeur de la souris sur un point, le numéro de son
apprentissage apparaît.
Les points en bas et à droite sont des apprentissages à rejeter car ayant des coûts de généralisation élevés et des
homogénéités faibles. Les coins inférieurs gauche ou supérieur droit sont représentent des apprentissages en
lesquels on a assez peu confiance car une des deux grandeurs précédentes a des valeurs peu souhaitables.
Les modèles en lesquels on a la plus grande confiance sont situés dans le quart supérieur gauche. En effet, cette
zone est celle des apprentissages présentant à la fois un bon coût de généralisation et une grande homogénéité.
Lorsque le pointeur de la souris est amené sur un point, un clic droit de souris entraîne la sélection du modèle
correspondant dans la table, et son chargement dans Neuro One. Tous les graphiques ouverts sont alors mis à
jour. (ATTENTION si votre base d'apprentissage est importante ou si beaucoup de fenêtre sont ouvertes, la mise à
jour peut prendre plusieurs minutes)
Cette fenêtre contient pour chaque enregistrement de la base d'apprentissage, le résidu, le levier, et la pondération
d'apprentissage.
Cette table, comme toutes les tables de Neuro One, permet la visualisation de chaque champ. En particulier, le
champ levier peut être visualisé :
En abscisse figure le numéro d’ordre des enregistrements, et en ordonnée figure les leviers de chacun d’eux.
Rappelons qu’un enregistrement à fort levier est en général sujet à une erreur de prédiction faible, mais désigne
une zone où le modèle est peu fiable. A l’opposé, un enregistrement à faible levier est dans une zone où la sortie
du réseau est proche de la vraie fonction de régression.
Vous mettez le projet que vous souhaitez supprimer en sur brillance. Puis cliquez sur le bouton de suppression de
projet . La fenêtre Confirmation s’affiche :
Si vous répondez Non à la deuxième confirmation, les fichiers ne sont pas supprimés mais le lien vers Neuro One©
n’existe plus.
Dans la zone Importation, vous choisissez le version précédente de Neuro One© avec laquelle vous avez travaillé
précedemment.
Dans la fenêtre principale, vous sélectionnez le menu Fichier - Importer fichier depuis x.x. Vous visualisez les
projets créés avec la version précédente de Neuro One© puis vous les importez vers la nouvelle version de Neuro
One©. Cette opération n’est nécessaire qu’une seule fois par projet, mais vous avez le choix d'effacer ou non le
projet sous son ancien format.
Ce chapitre décrit d’une part les diverses techniques d’Analyse des données d’apprentissage, et d’autre part les
divers pré traitements des données applicables avant de procéder à un apprentissage. Ces traitements on pour
objet de faciliter l’apprentissage, et d’en rendre le résultat plus fiable.
Avant de procéder à la construction d’un modèle, il est important de trouver une représentation de ces données qui
conserve le maximum d’information, tout en réduisant autant que possible le nombre d’entrées du modèle.
Une première approche consiste à utiliser sa propre connaissance experte pour réduire le nombre de variables :
• Elimination des variables qui ne sont manifestement pas pertinentes pour le problème.
• On pourra également, devant un sous-ensemble de variables fortement redondantes, envisager de ne
prendre en compte qu’une seule, ou un petit nombre de ces variables.
• Enfin, il est courant de remplacer un sous-ensemble de données par une nouvelle variable « artificielle »,
fonction des variables du sous-ensemble.
Une autre approche (non exclusive de la première), consiste à utiliser une technique statistique de réduction de
dimensionalité (typiquement, Analyse en Composantes Principales, ou ACP). Les variables d’entrée du réseau
sont alors les variables crées par l’ACP, et leur nombre sera imposé par l’utilisateur.
Enfin, Neuro One propose une méthode récente et très performante de sélection des variables originales basée
sur leur pertinence pour des modèles linéaires dans les paramètres : c’est la méthode « d’orthogonalisation de
Gram-Schmidt ».
Nous allons examiner comment Neuro One implémente ces techniques d’Analyse des données, puis nous
décrirons les pré traitements de données mis à la disposition de l’utilisateur.
• si le modèle possède plusieurs sorties, l’analyse est menée par rapport à la sortie n°0.
Les variables sont présentées dans la zone d’affichage de droite par ordre décroissant de corrélation avec la
sortie. La zone d’affichage de gauche présente les valeurs de ces corrélations sous forme graphique. La ligne
verticale désigne une corrélation de 0,5.
La zone d’affichage de droite liste les variables par ordre décroissant de pertinence (pour un modèle linéaire). La
zone d’affichage de gauche donne une représentation graphique de la pertinence de chacune des variables.
Un curseur permet d’ajuster avec la souris le « niveau de pertinence » en dessous duquel les variables ne seront
pas prises en compte par le modèle. La valeur de 50% est la « valeur théorique » de ce seuil, mais l’utilisateur peut
en choisir un autre. Dans l’exemple montré, la variable x4 est la seule a avoir un niveau de pertinence inférieur à
50%.
En cliquant sur « Appliquer », le nombre d’entrées du réseau est automatiquement diminué du nombre de
variables rejetées. Seules sont conservées les variables ayant une pertinence supérieure au seuil.
Pour constater l’effet de cette sélection, appelez « Edition/Projet/Traitement ».
Les variables affichées ne sont plus les variables originales, mais les Composantes Principales, nommées N0, N1
etc..
Selon l’option choisie, les composantes principales sont maintenant classées :
• « Corrélation »
Par degré de corrélation décroissant avec la sorite.
• « Valeurs propres »
Par ordre de valeurs propres décroissantes.
6.1.2.5 Moindres carrés
La solution des moindres carrés est la solution linéaire (dans les variables) de modélisation. Neuro One© calcule
cette solution, la positionne en première variable d’entrée, supprime la variable d’entrée la plus corrélée avec la
sortie et orthogonalise les entrées restantes par rapport à cette solution.
Cette analyse est faite sur l’ensemble des données d’entrées des exemples présentés, après normalisation.
Les pré traitements possibles sont détaillés dans les paragraphes suivants.
Centrage - normalisation
Entrée Oui
Entrée d’état Non
Fonction d’activation : Identité Oui
Sortie
Fonction d’activation : différente de Non
Identité
Sortie d’état anonyme Non
Dans le cadre « Architecture », le nombre d’entrées, qui était en grisé, redevient clair. Vous pouvez maintenant
choisir le nombre de variables que vous allez retenir en entrée.
Le même principe s’applique aux autre pré traitements.
7 Modélisation statique
Ce chapitre présente les particularités des modèles statiques. Il est nécessaire d’avoir lu le chapitre Un projet sous
Neuro One auparavant.
7.1 Définition
Un modèle statique est un modèle dont la sortie ne dépend que des entrées au même instant. (Nous verrons au §
10 des modèles dynamiques, dont la sortie dépend non seulement des entrées au même instant, mais également
de ces entrées aux instants précédents).
Mathématiquement, le modèle matérialise une fonction :
Sortiecalculée (t ) = Φ[Entrées(t )] .
Dans l’exemple suivant, la valeur de la variable de sortie « y » ne dépend que des valeurs au même instant des
variables « x1, x2, x3 ».
Les modèles statiques sont utilisés pour faire de l’approximation de fonction, de la régression, de la classification,
ou de l’extrapolation de série temporelle par l’approche auto-régressive.
Ces types de modèle ont en commun le fait de pouvoir approximer une fonction quelconque6, pour peu qu’on leur
donne la « souplesse » nécessaire. Cette capacité, dite « d’approximation universelle», leur permet également
d’approcher les fonctions de régression de distributions définies par des « points expérimentaux ».
Ces modèles diffèrent par la stratégie mise en œuvre pour réaliser l’approximation :
1. Les PMC le font par des combinaisons linéaires de fonctions sigmoïdales,
2. Les RBF le font par des combinaisons linéaires de gaussiennes. (mono- ou multivariées),
3. Les polynômes le font par des combinaisons linéaires de monômes.
Le choix d’un type de modèle se fait dans la fenêtre «Projet », onglet « Traitement ».
p o
xi o
wi
Σwi.xi p
Seuil
Le « premier étage » effectue une combinaison linéaire des entrées, avec les coefficients wi, appelés « poids
synaptiques » ou plus simplement « poids ». Il produit un nombre « p » (pour « potentiel »).
Ce nombre est ensuite transformé par une fonction de forme sigmoïdale pour produire une sortie unique, « o »
(pour « output »), parfois appelée « activation ». Cette fonction s’appelle la fonction d’activation, ou fonction de
transfert du neurone. Sa position horizontale, nommée «seuil», ou « biais» définit la valeur du potentiel pour
laquelle l’activation change de signe.
L’architecture du PMC est particulièrement simple. Elle est constituée :
1. Des entrées.
2. D’une couche cachée de neurones standard.
D’une « couche de sortie », chaque neurone de sortie produisant la valeur d’une de fonctions à approximer. Les
neurones de sortie sont le plus souvent munis de la fonction de transfert « identité », ce qui revient à ne pas mettre
de fonction d’activation. Dans ce cas, un neurone de sortie effectue simplement une combinaison linéaire des
activations des neurones de la couche cachée.
6
Plus précisément, toute fonction continue sur un volume borné.
Chaque neurone de la couche cachée génère une fonction sigmoïdale des entrées, dont les diverses
caractéristiques (orientation dans l’espace, raideur, seuil) sont déterminées par les valeurs numériques de ses
poids et de son biais.
La couche de sortie effectue des combinaisons linéaires de ces fonctions sigmoïdales.
Les paramètres du modèle sont :
1. Les poids et seuils des neurones de la couche cachée,
2. Les poids et seuil du (ou des) neurone(s) de la couche de sortie.
Leurs valeurs numériques seront déterminées par le processus d’apprentissage.
En régression, Neuro One permet de construire des modèles à plusieurs sorties. Il est cependant recommandé
(mais pas indispensable) de construire un nouveau réseau pour chaque nouvelle variables de sortie dont il faut
prédire les valeurs.
En classification, Neuro One permet de faire de classification à deux classes (1 seule sortie). Néanmoins :
• Tout problème de classification à plus de 2 classes peut se ramener à une suite de problèmes de
classification à deux classes (voir chapitre 8, « Classification »). Cette approche est habituellement meilleure que
celle cherchant à construire directement un classifieur global à N classes.
• L’atelier neuronal Neuro Shop permet de construire des réseaux faisant directement de la classification à
plus de 2 classes.
L’utilisateur a la responsabilité de définir le nombre de neurones de la couche cachée. Ce nombre a une grande
importance dans les performances du réseau dans sa phase d’utilisation après apprentissage (capacité de
généralisation). Cette question a été abordée en 5.5, « Choisir un modèle ».
7.2.3 Polynômes
Le seul paramètre ajustable par l’utilisateur est le degré du polynôme. Notons qu’un polynôme est un modèle
linéaire en ses paramètres (coefficients des monômes), et qu’il n’est donc pas utile de demander plus d’une
itération : toutes les itérations donneront en effet exactement le même résultat.
2. Sur des problèmes simples, les Réseaux RBF peuvent avoir un pouvoir de généralisation satisfaisant, et
se construisent plus facilement que des PMCs. Mais ce pouvoir de généralisation se dégrade vite avec le
nombre d’entrées du réseau, et avec le niveau de bruit dans les données.
3. Le polynôme est connu pour avoir un mauvais pouvoir de généralisation. Cependant, sa construction est
pratiquement instantanée et sans surprise. De plus, le degré du polynôme donnant le meilleur pouvoir de
généralisation peut être une indication de la complexité de la fonction de régression recherchée. Enfin, ce
même pouvoir de généralisation sera utilement considéré comme une « limite basse » que tout réseau de
neurones se doit de dépasser.
Dans la zone Champ supplémentaire, vous cliquez sur le bouton Pondération et choisissez le champ contenant
les coefficients de pondération. En l'absence de choix, tous les exemples sont égaux.
8 Classification
Ce chapitre présente les particularités des modèles de classification. Il est nécessaire d’avoir lu le chapitre Un
projet sous Neuro One auparavant.
8.1 Définition
Un projet de classification est un projet pour lequel le champ de sortie n’est pas un nombre mais le nom de la
classe à laquelle appartient l’exemple. La sortie du modèle est alors approximativement égale à la probabilité
d’appartenance d’un exemple à chacune des classes. La Suite Neuro One permet de réaliser un classifieur à
plusieurs classes. Le réseau a alors autant de sorties que de classes, et fournit sur chacune des sorties la
probabilité d'appartenance à la classe correspondante .
Si le problème ne comprend que deux classes, Neuro One propose directement un réseau adapté avec une seule
sortie, ce qui est suffisant : le niveau bas de la sortie code pour une classe, et le niveau haut code pour l’autre.
Si le problème comprend plus de deux classes, la méthodologie conseillée est la suivante :
• développer autant de classifieurs à deux classes que de paires de classes,
• fusionner les classifieurs obtenus en un seul avec Neuro Shop (en option).
Par exemple, un problème comprenant trois classes α, β et γ nécessite 3*2/2 =3 classifieurs. Ces classifieurs sont
α contre β, α contre γ et β contre γ.
Cette méthodologie n'est pas la seule envisageable. En effet, il est possible de développer des classifieurs à une
classe contre toutes les autres. Cependant, dans la plupart des cas, cette méthode est beaucoup moins précise.
N A f A ( x)
La fonction P A x est égale à .
N A f A ( x) + N B f B ( x)
Pour modéliser la probabilité a posteriori d'appartenance à la classe A connaissant x, P A x , Neuro One©
propose le réseau de neurones suivant :
Biais
1 N
c= Log A
2 NB
Entrées
Sortie
Activation :
Sigmoïde
La fonction d'activation du neurone de sortie est une sigmoïde. Ainsi, la sortie est comprise entre 0 et 1.
De plus, Neuro One© ajoute une synapse fixe entre le biais et la sortie. Le poids de cette synapse est défini à partir
de la probabilité a priori d’appartenance à la classe A ou B (rapport des nombres de points des ensembles A et B).
Neuro Shop© permet de supprimer cette synapse après l’apprentissage. On obtient directement un réseau qui
modélise le rapport des fonctions de répartition des deux ensembles de points A et B, indépendamment du rapport
des nombres de points de chaque classe dans l'ensemble d'apprentissage :
f A ( x)
P' A x =
f A ( x) + f B ( x)
Les fenêtres suivantes sont similaires à celles précédemment montrées à propos du nom du réseau, du nombre de
neurones cachés, de la localisation des données, du choix des entrées et des sorties.
Une fenêtre supplémentaire Classification permet de définir les classes :
Les classes sont représentées par des chaînes de caractères. Neuro One© est insensible à la casse.
Dans cette fenêtre, vous devez préciser la Classe Vrai et la Classe Faux. Mettez en sur brillance le nom du
champ dans le pavé Classes puis vous le déplacez en cliquant sur le bouton >> ou par glisser – déplacer.
Si Classe Faux est vide, l’ensemble des classes (à l’exception de Classe Vrai) appartient à Classe Faux.
La méthode pour indiquer le nombre de neurones cachés, la localisation des données, le choix des entrées et des
sorties est identique à celle précédemment expliquée.
Dans l’onglet Données, vous devez appuyer sur le bouton Avancé… pour décrire les classes. La fenêtre devient :
Les classes sont représentées par des chaînes de caractères. Neuro One© est insensible à la casse.
Dans cette fenêtre, vous devez préciser la Classe Vrai et la Classe Faux. Mettez en sur brillance le nom du
champ dans le pavé Classes puis vous le déplacez en cliquant sur le bouton >> ou par glisser – déplacer.
Si Classe Faux est vide, l’ensemble des classes (à l’exception de Classe Vrai) appartient à Classe Faux.
Dans la zone Champ supplémentaire, vous cliquez sur le bouton Pondération et choisissez le champ contenant
les coefficients de pondération.
Cet onglet permet de choisir les fonctions de coût utilisée pour l'ensemble d'apprentissage et pour l'ensemble de
validation.
Les fonctions de coût disponibles sont détaillées en annexe.
9 Série temporelle
Ce chapitre présente les particularités des modèles avec séries temporelles. Il est nécessaire d’avoir lu le chapitre
Un projet sous Neuro One auparavant.
9.1 Définitions
Si l’utilisateur estime que le temps joue un rôle fonctionnel dans le processus qu’il cherche à modéliser, il peut
commencer par les séries temporelles.
Un modèle avec des séries temporelles est un modèle dont la sortie dépend des entrées au même instant ou à des
instants passés, et éventuellement de la sortie (mesurée) à des instants passés.
Mathématiquement, le réseau de neurones réalise la fonction suivante :
Sortiecalculée(t ) = Φ[Entrées(t ), Entrées(t − 1),...,Entrées(t − n),Sortiemesurée(t − 1),...,Sortiemesurée(t − m)]
Dans cet exemple, la sortie $Dem dépend de l’entrée Taux au même instant mais aussi de $Dem et Taux avec un
retard de 1. La série temporelle porte sur la sortie et l’entrée du réseau.
Les retards sont indiqués avec [ ], et la valeur du retard est noté à l’intérieur des crochets.
Le fichier de données d’un modèle avec des séries temporelles est équivalent au fichier initial complété par des
copies de colonnes décalées verticalement. Du point de vue de l’apprentissage, un modèle avec séries
temporelles est donc un modèle statique.
9.2 Particularités
9.2.1 Le modèle
Les séries temporelles sont disponibles pour les modèles ayant une seule sortie. Si vous souhaitez modéliser
plusieurs sorties à l’aide de séries temporelles, il faut réaliser séparément un modèle pour chaque sortie puis les
fusionner grâce à l’outil Neuro Shop (en option).
La Vue - Fonction de Neuro One© n’est pas disponible.
Pour réaliser un modèle avec séries temporelles, vous avez deux possibilités :
• Utiliser l’assistant projet et sélectionner un modèle Série temporelle ;
• Utiliser le dialogue Edition - Projet pour définir le projet et cochez la case Avancé….
Nous allons détailler les deux méthodes.
Les fenêtres suivantes sont similaires à celles précédemment montrées pour définir le nom du réseau, le nombre
de neurones cachés, la localisation des données, le choix des entrées et des sorties.
Une fenêtre supplémentaire permet de définir la Profondeur de chaque entrée. Il s’agit du retard exprimé en
multiple de l’unité de temps entre deux exemples consécutifs.
Dans cet exemple, les entrées sont Taux1(t), Taux1(t-1), Taux1(t-3), de Taux1(t-7) à Taux1(t-9) et $Dem%(t-1) ;
d’où le réseau de neurones
Remarque : le retard des entrées indépendantes peut commencer à zéro. Pour la sortie, les retards commencent à
un. En effet, quel est l’intérêt de modéliser une grandeur à l’instant t en fonction d’elle-même au même instant ?
A partir du menu Edition – Projet, vous sélectionnez l’onglet Données. La fenêtre est la suivante :
Vous cochez la case Série temporelle pour pouvoir définir les séries temporelles.
Le pavé Série temporelle regroupe tous les champs sélectionnés comme entrées. Pour chaque entrée, vous
devez préciser la Profondeur qui est le retard en multiple de l’unité de temps entre deux exemples consécutifs.
Par défaut, la valeur est 0.
Dans cet exemple, les entrées sont Taux1(t), Taux1(t-1), Taux1(t-3), de Taux1(t-7) à Taux1(t-9) et $Dem%(t-1) ;
d’où le réseau de neurones :
Remarque : le retard des entrées indépendantes commence à zéro. Pour la sortie, les retards commencent à un.
En effet, quel est l’intérêt de modéliser une grandeur à l’instant t en fonction d’elle-même au même instant ?
Dans la zone Champ supplémentaire, vous cliquez sur le bouton Pondération et choisissez le champ contenant
les coefficients de pondération.
10 Modélisation dynamique
Ce chapitre présente les particularités des modèles dynamiques. Il est nécessaire d’avoir lu le chapitre Un projet
sous Neuro One auparavant.
10.1 Définition
Un processus dynamique est un processus pour lequel le temps joue un rôle fonctionnel. Lorsqu’un processus
dynamique est modélisable mathématiquement, les sorties et les entrées sont en général reliées par des équations
différentielles (ou des équations récurrentes pour les systèmes à temps discret). Les processus dynamiques
simulés sur ordinateur sont obligatoirement à temps discret, en raison de la quantification des données inhérente à
leur représentation informatique.
On ne considérera dans la suite qu’une seule variable de sortie.
Le plus souvent, on ne dispose pas d’une description mathématique du processus considéré. La théorie des
systèmes dynamiques linéaires permet depuis longtemps la construction de modèles dynamiques à partir de
données, mais leur linéarité même en rend le champ d’application limitée.
Une approche plus puissante, puisqu’elle permet d’introduire des non linéarités dans les modèles, consiste à
utiliser des réseaux de neurones bouclés (ou « récursifs », ou « dynamiques »), dans lesquels certaines
grandeurs « avales » sont réinjectées avec un retard temporel (z-1) dans les parties « amont » du réseau.
La modélisation des processus dynamiques est une question complexe, qu’il n’est pas possible d’exposer en détail
dans ce document. Pour une excellente synthèse, on pourra se rapporter à l’ouvrage « Réseaux de neurones », G.
Dreyfus et al., Eyrolles (2002).
Néanmoins, afin d’éclairer les options de Neuro One en modélisation dynamique, il est nécessaire de revenir
brièvement sur quelques généralités.
• Les modèles d’état sont plus puissants que les modèles E/S. En particulier, ils sont plus parcimonieux et
permettent donc d’espérer des généralisations de meilleure qualité que les modèles E/S. En fait, on montre que les
modèles E/S sont des cas particuliers des modèles d’état.
• Mais l’apprentissage des modèles d’état est plus difficile que celui des modèles E/S (approximation de deux
fonctions simultanément, au lieu d’une seule pour les modèles E/S).
Il est donc courant de commencer une modélisation par des modèles E/S. Si les résultats ne sont pas
satisfaisants, il faudra alors passer aux modèles d’état.
Dans Neuro One, la modélisation de ce type de processus fera appel à l’option « E/S ».
Les trois exemples précédents relevaient de la représentation Entrée/Sortie. Les exemples suivant relèvent de la
représentation d’état.
10.2.2.4 Bruit de sortie en représentation d’état
C’est un cas particulier de la représentation générale d’état pour lequel :
• Le vecteur d’état est considéré comme sans bruit.
• La sortie est affectée d’un bruit additif. Ce bruit n’intervient donc pas dans la dynamique du système.
On a alors :
x(t) = ϕ( x(t-1), u(t-1))
y(t) = ψ( x(t)) + b(t)
Rappelons que x est un vecteur dont le nombre de composantes est l’ordre du processus.
On montre alors que le modèle d’état (p. ex. neuronal) optimal est bouclé, et est de la forme (exemple d’un
modèle d’ordre 2):
Dans Neuro One, la modélisation de ce type de processus fera appel à l’option «Etat ».
10.2.2.5 Bruit d’état en représentation d’état
A la différence de l’exemple précédent, le bruit n’est pas un simple bruit de mesure de la sortie : les variables d’état
elles-mêmes sont bruitées. Par contre, on suppose le bruit sur la mesure de la sortie négligeable. On a donc :
x(t) = ϕ( x(t-1), u(t-1), b(t-1))
y(t) = ψ( x(t))
Deux cas peuvent se présenter, selon que les variables d’état sont mesurées ou non.
1. Si les variables d’état sont mesurées, on peut les considérer comme des sorties, et la représentation est
en fait une représentation Entrée-Sortie. On a vu que dans ce cas, le modèle idéal est non bouclé
(statique).
2. Si les variables d’état sont non mesurées, on ne dispose pas assez d’information pour construire un
modèle optimal. On pourra utiliser soit une représentation E/S, soit une représentation d’état (non
optimale).
10.2.2.6 Bruit d’état et bruit de sortie en représentation d’état
La différence par rapport au cas précédent est que la sortie est bruitée (pas nécessairement de façon additive). On
a:
x(t) = ϕ( x(t-1), u(t-1), b1(t-1))
y(t) = ψ( x(t), b2(t))
Comme précédemment, on distingue les cas où les variables d’état sont mesurées ou non.
1. Si elles sont mesurées, on les considère à nouveau comme des sorties, et l’on est ramené à une
représentation E/S.
2. Sinon, le modèle idéal est de la forme :
x(t) = ϕ( x(t-1), u(t-1), y(t-1))
y(t) = ψ( x(t))
En pratique, on sera amené à suivre une méthodologie dont le schéma générale est :
• Choisir les données pertinentes, et leur faire subir les pré traitements appropriés.
• Choisir la complexité du modèle (nombre de neurones cachés).
Ces deux premiers points se retrouvent également en modélisation statique. En modélisation dynamique, il faudra
en outre :
• Choisir un type de modèle (E/S ou d’état).
• Faire une hypothèse sur l’origine du bruit (état, sortie, état et sortie).
• Choisir l’ordre du modèle.
Pour limiter le nombre de types de modèles à essayer, rappelons que :
• Une bonne connaissance experte du processus à modéliser permet souvent déterminer a priori l’origine du
bruit.
• L’observation experte de la réponse du processus à une séquence de commandes doit permettre d’estimer
l’ordre du modèle.
• Les modèles d’état sont plus généraux et généralisent mieux que les modèles E/S, mais leur apprentissage
est plus difficile. On essayera donc en priorité les modèles E/S, ne passant aux modèles d’état que si leurs
performances s’avèrent insatisfaisantes.
Entrées
Sortie
Réseau de
neurones
Etats
Retard
Entrées
Sortie
Réseau de
neurones
Etats
Retard
Ces deux architectures, et les algorithmes d’apprentissage correspondants, sont disponibles sous Neuro One.
Dans les deux cas, l’utilisateur devra fixer :
1. Le nombre de neurones cachés.
2. L’ordre du modèle.
Pour faire disparaître l’éditeur de séquences, double cliquez de nouveau dans la fenêtre.
Il est possible de segmenter une séquence en plusieurs séquences. La séquence allant de la ligne 2 à la ligne 202
est noté 2..202 ; elle peut être fragmentée en 2..30,31..202 par exemple. Ainsi, les variables d’état seront initialisés
aux lignes 2 et 31.
Dans la barre d’outils de la fenêtre d’accueil, cliquez sur le bouton qui est l’assistant projet. La fenêtre
suivante apparaît :
Sélectionnez la case Dynamique comme type du projet. Puis tapez sur la case Suivant >>. La fenêtre suivante
permet de définir les paramètres du modèle.
De la même façon que pour un modèle statique, vous devez préciser le nom du modèle ainsi que le nombre de
neurones cachés. L’ordre du modèle est le nombre de neurones d’état.
Dans cet exemple, le modèle nommé essai est un modèle entrées/sorties (style E/S) avec un neurone caché et
deux neurones d’état. Le réseau est schématisé par la figure ci–dessous :
Le réseau de neurones associé à un modèle d’état (style Etat) avec un neurone caché et deux neurones d’état est
schématisé par la figure ci–dessous :
L’onglet Traitement permet de choisir la structure du réseau de neurones, c’est à dire le type du réseau (modèle
entrées/sorties ou modèle d’état), le nombre de neurones cachés et l’ordre du modèle. La fenêtre est la suivante :
Pour un modèle d’état, vous devez indiquer le nombre d’états (ici 2) et le traitement éventuel de la redondance.
Le réseau de neurones défini dans l’onglet Traitement est le suivant :
nécessaire, mais les résultats calculés intermédiaires ne seront pas pris en compte dans le calcul de la fonction de
coût et du gradient.
Intervalle de temps
Le champ choisi pour l’intervalle de temps contient l’intervalle de temps entre l’exemple considéré et le précèdent.
Le contenu du champ du premier exemple représente le pas de temps élémentaire du réseau. Les exemples
suivants sont alors positionnés dans le temps sur le multiple du pas de temps le plus proche de la somme des
intervalles de temps depuis le début de la séquence.
Le traitement des exemples superposés ou séparés de plusieurs pas élémentaires est le même que pour Date.
Dans ce dialogue, la Dimension de l’ensemble de validation est le nombre de séquences de cet ensemble.
L’ensemble de test est toujours composé des dernières séquences définies dans le dialogue Edition - Projet,
onglet Données.
11.1 Définition
La Carte de Kohonen est un réseau de neurones (non supervisé) ayant deux finalités :
1. La réduction de dimensionalité des données.
2. Le regroupement (clustering) des données.
Ces deux fonctionnalités sont intimement liées et sont toujours disponibles simultanément.
Une Carte de Kohonen (bidimensionnelle7) peut se visualiser comme un « filet de pêcheur » aux mailles
élastiques, jeté dans un espace de données de grande dimensionalité. Les nœuds du filet sont les « neurones » de
la carte de Kohonen, et ils peuvent être repérés par une paire de nombres entiers.
L’algorithme d’apprentissage a pour objectif de déployer ce filet de façon à ce qu’il épouse « au mieux » le nuage
de points des données. Après stabilisation, chaque point du nuage (exemple) sera projeté sur le nœud dont il est le
plus proche.
• La réduction de dimensionalité est obtenue en remplaçant, pour chaque exemple, les coordonnées
originales par les deux nombres entiers repérant le nœud sur lequel il a été projeté.
• Le regroupement (clustering) est obtenue naturellement par regroupement, sur un même nœud, de tous
les exemples qui étaient plus proche de ce nœud que de tout autre nœud de la Carte.
L’utilisation première de la Carte de Kohonen est de fournir une alternative à l’Analyse en Composantes
Principales (ACP). Les performances de l’ACP sont limitées par le fait que les nouvelles variables (composantes
principales) ne sont que des combinaisons linéaires des variables initiales. La carte de Kohonen produit des
nouvelles variables qui ne sont pas des fonctions linéaires des variables initiales, et donc peuvent permettre une
réduction de dimensionalité occasionnant moins de perte d’information que l’ACP.
Le regroupement, du à la quantification des nouvelles coordonnées, peut n’apparaître que comme un effet
secondaire, peut-être indésirable. A l’usage, il apparaît néanmoins que cet regroupement possède une propriété
« topologique » désirable, dont les techniques classiques (p. ex. centres mobiles) sont dépourvues : deux nœuds
voisins de la Carte regroupent des exemples fortement semblables. L’ensemble des groupes résultants est donc
muni d’une notion naturelle de proximité qui en facilite grandement l’interprétation.
7
Les Cartes peuvent en fait avoir une dimension quelconque (inférieure au nombre de variables originales), mais
le cas bidimensionnel est le plus fréquemment utilisé.
Exemple : carte à deux dimensions avec 3 cellules dans la dimension 1 et 2 cellules dans la dimension 2. Le
modèle possède 2 entrées.
Les cartes auto-organisatrices de Kohonen font partie de la famille des modèles non supervisés. L’apprentissage
n’est pas guidé par la comparaison entre les valeurs calculées par le modèle et celles mesurées sur le processus
mais s’effectue de la façon suivante :
• un exemple est choisi aléatoirement dans la collection d’exemples à présenter;
• le neurone le plus proche dans la carte de Kohonen est recherché ;
• les poids de tous les neurones sont modifiés.
La loi pour modifier les poids des neurones est du type
poids nouveau = (1 − λ ) poids ancien + λ × Χ
où poids… est le vecteur des poids du réseau de neurones,
Χ est le vecteur des coordonnées de l’exemple présenté,
λ est le coefficient d’apprentissage complet λ = λ 0 × f d (n ) − f v [d ( N , N c ), g (n )] .
fd est une fonction qui décroît lorsque le nombre d’exemples présentés n augmente ;
fv est une fonction de voisinage dont les variables sont la distance dans la carte entre le neurone considéré Nc et le
neurone le plus proche de l’exemple N, et une distance caractéristique g(n) qui décroît lorsque le nombre
d’exemples présentés n augmente .
A la fin, les corrections apportées à la carte de Kohonen sont localisées et de faible amplitude.
Dans la barre d’outils de la fenêtre d’accueil, cliquez sur le bouton qui est l’Assistant Projet. La fenêtre
suivante apparaît :
Sélectionnez la case Carte Auto Organisatrice comme type de projet. Puis tapez sur la case Suivant >>. Les
fenêtres suivantes permettent de définir le nom du réseau et des entrées.
Cette fenêtre permet de choisir la dimension de la carte de Kohonen. Les dimensions possibles sont 1, 2 ou 3.
Pour chaque dimension, vous précisez le nombre de cellules dans le pavé dessous. Dans l’exemple détaillé, la
carte de Kohonen est bidimensionnelle ; la dimension 1 a une cellule et la dimension 2 a deux cellules.
Dans le dialogue Edition - Projet, onglet Données, vous sélectionnez la base de données et les entrées du
réseau de Kohonen. La fenêtre est la suivante :
Comme le modèle est non supervisé, le choix des champs n’est possible que pour les entrées.
La fenêtre de l’onglet Traitement est la suivante :
Cet onglet permet de choisir la dimension de la carte de Kohonen. Les dimensions possibles sont 1, 2 ou 3.
Pour chaque dimension, vous précisez le nombre de cellules dans le pavé dessous. Dans l’exemple détaillé, la
carte de Kohonen est bidimensionnelle ; la dimension 1 a une cellule et la dimension 2 a deux cellules.
Si vous cochez la case Aléatoire, les poids sont tirés aléatoirement avec une distribution gaussienne d’écart type
Enveloppe.
Si vous cochez la case Données, les poids sont tirés aléatoirement parmi les données.
12 Fonction densité
Ce chapitre présente les particularités des fonctions de densité. Il est nécessaire d’avoir lu les chapitres Un projet
sous Neuro One et Classification auparavant.
12.1 Définition
Les projets de type Densité permettent de développer un modèle neuronal dont la sortie représente la densité de
probabilité d’une distribution d’exemples.
Cette fonctionnalité est fondée sur la considération suivante : si l’on dispose de deux ensembles de points dans un
espace à N dimensions, il est possible de réaliser un classifieur neuronal qui donne la probabilité d’appartenance à
l’une des deux distributions en tout point du domaine de validité de l’espace considéré.
On dispose d’une seule distribution dont la fonction de densité de probabilité est inconnue. Nous allons créer une
deuxième distribution dont la fonction de densité de probabilité est connue ; puis, nous allons créer un classifieur
pour ces deux distributions et en déduire la densité de probabilité inconnue.
N A f A (x )
Classifieur P Ax =
N B f B (x ) + N A f A (x )
NB P A x
Fonction densité de f A (x ) = f B (x )
probabilité N A 1− P A x
avec les notations suivantes :
• NA le nombre de points de l’ensemble A,
• NB le nombre de points de l’ensemble B,
• fA la fonction de densité inconnue de l’ensemble de A,
• fB la fonction de densité connue de l’ensemble de B,
• x le vecteur des variables,
Dans la barre d’outils de la fenêtre d’accueil, cliquez sur le bouton qui est l’assistant projet. La fenêtre
suivante apparaît :
Sélectionnez la case Fonction de densité comme type de projet. Puis tapez sur la case Suivant >>. Les fenêtres
suivantes permettent de définir le nom du réseau et des entrées.
Cette fenêtre permet de préciser l’existence d’un réseau maître et son nom éventuel.
Le choix du réseau maître est facultatif. Lors de la première approche d’une distribution inconnue, vous avez
intérêt à laisser Neuro One© sélectionner le réseau maître. Dans ce cas, la fonction du réseau maître est quasi
rectangulaire et elle englobe tous les points de la distribution sur tous les axes.
En deuxième approche, vous sélectionnerez le réseau obtenu précédemment comme nouveau réseau maître.
Dans le dialogue Edition - Projet, onglet Données, vous sélectionnez la base de données et les entrées du projet
densité. La fenêtre est la suivante :
Le choix du réseau maître est facultatif. Lors de la première approche d’une distribution inconnue, vous avez
intérêt à laisser Neuro One© sélectionner le réseau maître. Dans ce cas, la fonction du réseau maître est quasi
rectangulaire et elle englobe tous les points de la distribution sur tous les axes.
Il est nécessaire d’affecter un nom au premier réseau densité. En effet lors de la deuxième approche, vous devrez
rappeler ce réseau afin d’en faire le nouveau réseau maître. .
Les icônes sont différentes entre le réseau maître et le réseau courant.
Reseau Maitre
Cet onglet permet de différencier la fonction de coût pour l’ensemble d’apprentissage et celui de test.
Zone Apprentissage :
• Standard : la fonction de coût pour l’ensemble d’apprentissage est l’écart quadratique moyen ;
• Spécial classification : la fonction de coût est adaptée à la classification.
Zone Test :
• Identique apprentissage : même fonction de coût pour l’ensemble d’apprentissage et l’ensemble de test ;
• Mauvais classement : la fonction de coût pour l’ensemble de test est le ratio nombre d’exemples mal classés
sur nombre total d’exemples.
13.1 Généralités
En régression, la sortie d’un réseau de neurones matérialise une estimation de la fonction de régression de la
distribution qui a donné naissance aux données d’apprentissage. Peut-on avoir confiance dans cette estimation, ou
plus précisément, est-il possible de quantifier l’incertitude sur cette estimation ?
Cette question est classique en statistique, et se formule naturellement dans le contexte de l’estimation de la
valeur de l’espérance Ey d’une variable aléatoire y dont on a observe N tirages. Il s’énonce ainsi :
Si m est la valeur moyenne empirique des N tirages, identifier, pour toute valeur de α, un
intervalle contenant m, et tel que la probabilité pour que l’espérance vraie Ey soit dans cet
intervalle soit supérieure à 1 - α
La quantité (1 - α) est appelée « niveau de confiance » de l’estimation.
Neuro One© possède une fonctionnalité pour évaluer les intervalles de confiance de la prédiction effectuée par un
modèle neuronal.
L’évaluation de la confiance d’une prédiction sous Neuro One est représentée de deux façons :
1. Graphiquement, en ajoutant à la « Vue fonction » un « ruban » encadrant la représentation graphique
de la fonction (voir 15.6 « Vue fonction »). Ce ruban est plus large dans les zones de forte incertitude,
plus étroit dans les zones de faible incertitude.
La largeur moyenne du ruban est une conséquence du choix de α par l’utilisateur (voir plus bas).
2. Numériquement, dans la colonne « Confiance » de la table des données internes. Cette colonne contient
les valeurs des demi-largeurs d’intervalle de confiance autour de la valeur prédite pour la variable de
sortie.
Le mode de calcul de cette évaluation, ainsi que les conditions de validités sont détaillées dans les § 13.3 et 13.5.
Cependant, ce calcul est légitime avec deux hypothèses :
• le bruit est additif et de moyenne nulle,
• la surface d'erreur est assimilée localement à sa tangente dans l'espace des poids. Autrement dit, on suppose
que la surface d'erreur n'a pas une courbure trop grande, notamment au voisinage d'un minimum de la fonction
de coût.
13.2 Dialogue
Le calcul des intervalles de confiance est appelé à partir de la commande Marche – Pilote, onglet Apprentissage.
La fenêtre suivante apparaît :
Cochez la case « Calcul des leviers » pour visualiser les intervalles de confiance dans la Vue fonction et dans la
Table de Données internes.
• L’éditeur de table des Données internes possède une colonne supplémentaire intitulée « Confiance ». Les
valeurs de cette colonne sont l’amplitude des intervalles de confiance pour l’exemple considéré. Un exemple de
table des données internes est représenté dans la fenêtre suivante :
• Dans la fenêtre graphique de la Vue fonction, la fonction mathématique réalisée par le modèle ainsi que
les intervalles de confiance sont représentées.
∂f ( x,θ )
z =
∂θ
• zi le vecteur gradient de la sortie par rapport aux poids pour l'exemple i de l'ensemble d'apprentissage :
∂ f ( x i ,θ )
zi =
∂θ
• Z la matrice de dimension (N, q) dont les lignes sont les vecteurs zi, Cette matrice est le Jacobien du modèle.
−1
• M la matrice carrée symétrique de dimension (q, q) définie par M = ( Z Z ) . Cette matrice est la matrice
T
de dispersion du modèle.
Le levier est défini comme la grandeur :
h = z T ( Z T Z ) −1 z
ou
h = z T Mz
Lorsque le vecteur gradient z est calculé sur l'un des points de l'ensemble d'apprentissage, c'est à dire que z
constitue l'une des ligne du Jacobien Z, cette grandeur peut prendre toute valeur entre 0 et 1. Elle est alors
représentative de la contribution du point considéré au modèle.
En d'autres termes, si h est faible, le point est peu utilisé par le modèle, c'est à dire que ce point se trouve dans
une zone de l'espace des entrées où la densité de points de l'ensemble d'apprentissage est relativement élevée
relativement à la quantité d'information nécessaire à l'apprentissage du modèle. Si par opposition z est voisin de 1,
cela signifie que le point considéré se trouve dans une zone de l'espace des entrées pauvre en points relativement
à l'information nécessaire à l'apprentissage du modèle.
Les valeurs de h pour les points de l'ensemble d'apprentissage peuvent donc servir à gérer cet ensemble lorsque
cela est nécessaire.
Lorsque la fonction h est calculée pour un point n'appartenant pas à l'ensemble d'apprentissage, sa valeur est
alors positive, mais n'est plus limitée à 1. Cette valeur peut être prise comme une mesure de l'appartenance du
point considéré au domaine de validité du modèle. Si elle est inférieure à 1, le point appartient au domaine de
validité. Dans le cas contraire, il n'y appartient pas.
1+ α E
f ( x, θ ) ± t p h
2 p
2
F ( xi , θ ) − y i* R
Ep = ∑( ) = ∑ ( i )2
i i − hi ,i i 1 − hi ,i
On peut montrer que cette valeur représente le "score de Leave-One-Out simulé" pour le modèle. En anglais, cette
grandeur est appelée PRESS (Predictive Regression Error on Sum of Square).
Le coût de généralisation peut être utilisé à la place du coût de validation pour caractériser la qualité de
généralisation d'un modèle.
En effet, si les neurones cachés sont trop nombreux, certains d'entre eux peuvent être saturés quel que soit
l’exemple. Le jacobien Z contient des colonnes de +1 ou -1 pour les dérivées de la sortie par rapport aux poids
entre les neurones cachés saturés et la sortie, et des colonnes de 0 pour les dérivées de la sortie par rapport aux
poids entre les entrées et les neurones cachés saturés.
Le jacobien Z n’est pas bien conditionnée et donc la matrice d'information ZTZ n’est pas de dimension q ; elle est
difficile à inverser avec une précision correcte.
Pour s'assurer que l'on ne se trouve pas dans cette situation, Neuro One© propose plusieurs approches :
• Surveiller le rang du jacobien. Si ce rang n'est pas égal à q le nombre de paramètres, le modèle est incorrect ;
• Surveiller le coût de généralisation. Le minimum de coût de généralisation correspond au meilleur compromis
entre la précision de l’apprentissage et la qualité de la généralisation.
Ces deux méthodes originales sont beaucoup plus performantes que les méthodes traditionnelles présentées ci-
dessous, qui restent cependant disponibles :
• Surveiller les valeurs absolues des poids entre les entrées et les neurones cachés, et s'assurer qu'elles restent
suffisamment faibles ;
• Vérifier que l'erreur quadratique obtenue sur un ensemble de validation et sur l’ensemble d’apprentissage sont
du même ordre de grandeur ;
8
Neuro Fit est un module indépendant qui peut également être utilisé sans Neuro One.
L’ordre des variables présentées au réseau est maintenant important : il est impératif que chaque variable du
fichier d’utilisation soit présentée à l’entrée de la variable d’apprentissage correspondante. Or il est possible que
les variables du fichier d’utilisation ne soient pas dans le même ordre que celles du fichier d’apprentissage, voire
qu’il contienne des variables qui n’ont pas été retenues lors de l’apprentissage.
Dans l’ordre des variables de la partie droite de la fenêtre, sélectionnez une par une les variables correspondantes,
et cliquez sur « Entrée >> » (ou faites un glisser-déposer »). Lorsque des variables contiguës sont utilisables, et
dans le bon ordre, vous pouvez faire une sélection multiple.
Après transfert des variables, la fenêtre a l’aspect suivant :
• La partie droite, « Commande », contient deux icônes, une boîte défilante et un bouton appelant des
fonctionnalités décrites plus bas.
La boîte défilante permet d'afficher trois modes de fonctionnement : le mode Direct, le mode Inverse et le mode
Désirabilité. Ces trois modes sont décrits ci-dessous.
14.3.1.1 Mode Direct
La partie gauche de la fenêtre affiche toutes les variables sous forme de plages munies chacune d’un curseur. En
agissant sur ces curseurs avec la souris, on peut imposer à chacune des variables une valeur quelconque de sa
plage de variation.
Sur la partie droite s’affiche la valeur calculée de la (ou les) variable de sortie, ainsi que la confiance qui peut être
accordée à cette prédiction (Voir chapitre 13 « Intervalles de confiance ».
Il est également possible d’ajuster la valeur des variables en entrant au clavier une valeur numérique. Pour cela,
cliquez sur l’icône décrivant un curseur. L’icône devient . Vous pouvez alors entrer au clavier la valeur
de la variable dans la zone de saisie correspondante. Pour revenir en mode « curseur », cliquez à nouveau sur
l’icône.
A droite de la zone « Entrées » se trouvent deux colonnes : « Valeur » et « Sensibilité ».
• « Valeur » contient la valeur de la variable telle qu’elle est déterminée par la position du curseur ou par la
valeur entrée au clavier.
• « d(xx)/dx » contient la valeur de la dérivée partielle d'une des sorties par rapport à l’entrée correspondante
au point de fonctionnement défini par les valeurs des variables d’entrée. Pour changer la sortie dont on calcule la
dérivée, cliquez sur le bouton à coté du sigle de la dérivée.
Une dérivée élevée signifie que, au point de fonctionnement considéré, la variable a une forte influence sur la
valeur de sortie.
Pour ramener toutes les variables au milieu de leur domaine, cliquer sur .
Les valeurs des sorties sont affichées dans leurs cases. Lorsque les moyens de calcul des leviers et de l'intervalle
de confiance ont été sauvegardés avec le modèle, une deuxième case apparaît, qui donne les s ou les intervalles
de confiance de la sortie considérée. Pour choisir l'affichage, cliquez sur le bouton dans la champ SORTIES.
Les calculs des s et des intervalles de confiance sont faits indépendamment pour chaque sortie.
Lorsque la valeur du levier calculé au point de fonctionnement est supérieure à 1, la zone d'affichage passe au
rouge.
Lorsque cette valeur est supérieure à la racine de la valeur moyenne des leviers, la zone d'affichage est en jaune.
Avec la souris, déplacez le curseur vertical pointant sur les valeurs de la variable de sortie. Les curseurs des
variables se déplacent. Les nouvelles positions des curseurs désignent un jeu de valeurs des variables d’entrée
pour lesquelles la valeur de sortie est celle que vous avez choisie.
Notez qu’il est possible de verrouiller certaines variables à des valeurs définies par l’utilisateur (voir § 14.3.1.4
Paramétrage des entrées et 14.3.1.5 Paramétrage des sorties).
Il peut arriver que l’algorithme de recherche de valeurs d’entrées échoue dans sa recherche (voir § 14.3.1.4).
Lorsque c’est le cas, la zone « Erreur » affiche la différence entre la meilleure valeur de sortie calculée, et la valeur
demandée. Des mouvements répétés du curseur de la valeur de sortie demandée permettent de réduire l’erreur à
0 lorsque la solution existe.
Lorsque la valeur du levier calculé au point de fonctionnement est supérieure à 1, la zone d'affichage des leviers
passe au rouge.
Lorsque cette valeur est supérieure à la racine de la valeur moyenne des leviers, la zone d'affichage des leviers est
en jaune.
Les valeurs des variables d’entrées sont calculées par un algorithme itératif, dont le nombre d’itérations est fixé.
Eventuellement, vous pouvez cliquer sur le bouton Calcul pour relancer l’algorithme, et affiner ainsi la position des
curseurs.
14.3.1.3 Mode désirabilité
Pour les modèles multi-sortie, il est fréquent que l'on recherche à obtenir un jeu des variables d'entrée qui donne
un jeu de valeurs de sortie prédéfinies, ou pour lesquelles certaines contraintes portent sur ces valeurs de sortie.
Or un tel problème est souvent sans solution. Il convient donc de définir les règles d'un compromis entre des désirs
incompatibles.
Neuro One offre la possibilité d'affecter à chaque sortie une fonction de désirabilité. Une fonction de désirabilité
donne, en fonction de la valeur de la sortie considérée, une valeur comprise entre 0 et 1, 0 signifiant un
mécontentement complet, alors que 1 signifie un contentement total. Neuro One effectue le produit des
désirabilités de chacune des sorties pour calculer la désirabilité globale.
La recherche du meilleur compromis consiste donc à maximiser cette désirabilité globale.
Un double clic sur la zone de désirabilité, à droite des éditeur de la sortie, ouvre une liste déroulante qui permet de
choisir la fonction désirée. Les fonctions disponibles sont les suivantes :
Indifférent → Fonction plate de valeur 1 (par défaut)
Centré → Fonction gaussienne
Domaine → Fonction combinaison de sigmoïdes
Supérieur → Fonction sigmoïde
Inférieur → Fonction sigmoïde
Centré exclu → Fonction 1-gaussienne
Pour chacune de ces fonctions il faut définir 2 ou 3 paramètres qui sont rappelés sur un graphe explicatif qui
apparaît dans la zone de désirabilité.
Un double clic sur ces paramètres fait apparaître un éditeur, que l'on peut quitter avec le bouton Entrée.
Une fois que les fonctions de désirabilité ont été fixée et paramétrées, un clic sur le bouton Calcul lance la
recherche de la solution.
De la même façon que pour le mode Inverse, le mode désirabilité peut fonctionner en compensation. A partir d'un
jeu d'entrées précédemment calculé, il est possible de rechercher une nouvelle solution en faisant varier "à la
main" les entrées. Les autre entrées vont alors s'ajuster pour conserver la meilleure désirabilité globale.
• Le maximum et le minimum de la variable sont au départ les valeurs constatées lors de l'apprentissage.
Ces valeurs peuvent être modifiées par l’utilisateur. Elles limitent la plage explorée par les glissières. Pour le calcul
inverse, elles ne seront prises en compte que si l’utilisateur coche la case « Inverse avec limites ».
• Précision permet d'ajuster le nombre de pas des glissières entre leur minimum et leur maximum.
• Calculable permet de verrouiller une variable à sa valeur courante. En mode inverse, la valeur de cette
variable ne change pas lorsqu’on change la valeur imposée à la variables de sortie.
14.3.1.5 Paramétrage des sorties
Pour chaque sortie, le clic sur le bouton > ouvre le dialogue suivant :
Les zones de saisie de gauche ont les mêmes significations que pour les variables d’entrée. Le paramètre
Calculable détermine ici si la sortie sera considérée comme un objectif à atteindre lors du calcul inverse.
A droite, on peut choisir le fonction de désirabilité à utiliser. L'apparition et le sens des champs de paramètres A, B
et C dépend de la fonction choisie.
La boîte à cocher Inverse avec limite permet d'imposer aux variables d'entrée de ne pas sortir des plages affiches
sur les glissières.
La boîte à cocher Inverse avec pondération permet de pondérer l'importance de chaque entrée par l'amplitude de
la plage affichée sur la glissière.
Le nombre de pas inverse est le nombre de calcul d'itération effectué pour la recherche de la solution. Par défaut,
ce nombre est fixé à 100.
La zone « Algorithme principal » permet de choisir le mode de calcul des entrées.
Standard
L’algorithme d’optimisation est activé sans imposer de contrainte sur les valeurs finales des variables d’entrée. Les
valeurs finales des variables d’entrée n’auront a priori d’autre propriété autre que celle de produire à travers le
réseau un nombre égal à la valeur imposée par l’utilisateur à la variable de sortie.
Minimiser les entrées
L’algorithme identifie, parmi les solutions possibles, celle qui minimise la somme des carrés des valeurs des
variables d’entrée.
Autrement dit, le point de fonctionnement trouvé est celui dont la distance à l’origine est minimale.
Minimiser les variations des entrées
L’algorithme identifie, parmi les solutions possibles, celle qui minimise la somme des carrés des variations des
valeurs des variables d’entrée.
Autrement dit, le point de fonctionnement trouvé est celui dont la distance au point de départ est minimale.
Le nombre de pas inverse est le nombre d'itérations effectuées par l'algorithme d'optimisation pour trouver sa
solution. La valeur par défaut est 100.
Il faut noter qu’un algorithme d’optimisation ne peut pas garantir de trouver le meilleur minimum d’une fonction.
Dans le cas particulier qui nous intéresse, ceci veut dire qu’il n’est pas possible de garantir que l’algorithme
trouvera du premier coup un jeu de valeurs des variables d’entrée qui, après traversée du réseau, conduit à la
valeur de sortie imposée. Il est donc possible que le point de fonctionnement trouvé pour le réseau ne conduise
pas exactement à la valeur demandée pour la variable de sortie. Dans ce cas, l’erreur résiduelle est affichée dans
la zone « Erreur » du volet « Calcul ».Quelques clics sur le bouton calcul permettent en général de trouver une
solution exacte.
Le chargement de données se fait de la même façon que pour un modèle statique, par le menu Edition /
Structure de données.
Un clic sur le bouton Calcul permet de remplir les colonnes vides, et d'obtenir les valeurs des sorties, des variables
d'état, et des leviers calculés.
Si aucunes données n'avaient été préalablement chargées, le générateur de scénario va créer un nouveau jeu de
données, en utilisant au départ les champs du modèle.
Si un jeu de données avait été préalablement chargé, le générateur de scénario va proposer d'ajouter de nouvelles
données à la suite de celles déjà présentes dans la table ouverte.
Le principe des scénarios est le suivant :
La longueur du scénario est exprimé en nombre d'exemples de la table.
Le temps est repéra par rapport à des évènements. Un événement Initial marque le début du scénario, et
un événement Final en marque la fin. D'autres évènements sont crées entre ceux-ci. Tous les autres
événement peuvent être créés, détruits ou déplacés.
Le comportement de chaque champ entre les événement est défini par une fonction paramétrée. Cette
fonction peut être transparente. Dans ce cas la fonction active est celle de l'événement précédent.
Un clic sur le bouton propose la création d'un nouveau champ dans la table. Il suffit alors de renseigner le nom
du champ, et de cliquer sur Appliquer.
Un clic sur le bouton propose la création d'un événement. L' événement doit avoir un nom unique et une
position temporelle entre les événements Initial et Final.
Un événement apparaît daos la fenêtre du bas comme une barre verticale. Cette barre peut être cliquée et
déplacée avec la souris. La valeur de la position est alors changée.
14.4.2.3 Création d'un fonction
Une fonction peut être crée par clic sur le bouton , ou par sélection d'un champ dans la liste des champs, ou
d'un événement dans la liste des évènements. La fonction créée s'appliquera au champ sélectionné, à partir de
l'événement sélectionné.
Le choix du type de fonction se fait dans la liste déroulante Type. Les types de fonction disponibles sont :
Aucun (fonction transparente)
Constante Paramètres : Valeur initiale
Linéaire Paramètres : Valeur initiale
Pente
Quadratique Paramètres : Valeur initiale
Extremum
Courbure
Sinus Paramètres : Valeur initiale
Amplitude
Période
Phase
Pour chacune de ces fonctions, les paramètres nécessaires s'affichent au dessous, et doivent être renseignées
Un clic sur le bouton Appliquer crée les données, et les affiche dans le graphe du bas.
Les exemples ci-dessous montrent l'effet de deux fonctions, ici Sinus et Linéaire, appliquées successivement à un
champ.
Par défaut, l'événement Initial porte les fonction constante pour tous les champs, avec la valeur 0.
Le bouton Appliquer permet de retourner à Neuro Fit, et d'utiliser le scénario ainsi généré.
Prenons un exemple élémentaire de construction d’un réseau de neurone à partir d’une équation :
soit y = ax + b, ou a et b sont les paramètres à déterminer. Le réseau correspondant sera :
Neuro Shop propose quatre types de neurones qui se différencient par la méthode de calcul du potentiel :
1. Neurone Σ
⇒ U j = Σ cij xi
i
2. Neurone Σ²
⇒ U j = Σ cij x
2
i
i
3. Neurone Π
⇒ U j = Π cij xi
i
4. Neurone Σ+
⇒ U j = Σ cij g ( xi )
i
Les synapses différents types et genres sont différenciés par la nature du trait et sa couleur.
Les neurones de différents types sont différenciés par leur couleur.
Sur la vue graphique du réseau, tous les nœuds et le réseau dans son ensemble sont déplaçables par glisser-
déplacer avec la souris.
Un double clic sur un neurone fait apparaître sa description graphique :
avec :
Général Réseau
Créer réseau
Suivant
Couches
Zoom horizontal
Neurones
Bas
Déplacer neurone
Droite
Créer/Détruire synapse
Multiples synapses
Pour créer un modèle ex-nihilo, cliquez sur le bouton ou sur le menu Fichier / Nouveau Modèle. Le dialogue
suivant apparaît :
On retrouve sur ce dialogue les paramètres principaux d'un réseau de neurones de type Perceptron MultiCouche
(PMC) à une couche cachée.
Les enrichissement possibles sont regroupés dans la fenêtre Type de réseau :
• Tout connecté → Les neurones de la couche cachée sont tous connectés aux précédents
• Lien E/S → Ajout de synapses entre les entrées et les sorties
• Moniteur → Ajout d'un neurone moniteur. Un neurone moniteur est un neurone qui réaalise
une transformation affile sur une des entrées, et multiplie une des sorties par le résultat..
• Parallèle → Si le modèle possède plusieurs sorties, le réseau sera constitué d'autant de
réseaux parallèles, n'ayant que les entrées en commun.
• Norme Entrée → Introduction d'une couche de normalisation pour les entrées. Les valeurs des
paramètres de normalisation doivent être entrés à la main.
• E/S fixe → Création de liens fixes entre une entrée et une sortie
• E/S tout → Création de liens fixes entre les entrées et lres sorties une à une
• Retro → Le comptage des positions de neurones est fait en sens inverse
• Numérotation inverse → La numérotation des synapses est faite en ordre inverse.
• Norme Sortie → Introduction d'une couche de normalisation pour les sorties. Les valeurs des
paramètres de normalisation doivent être entrés à la main.
La case à cocher Sans synapse permet la création du squeloette du réseau, sans synapses.
Ce dialogue se comlporte comme un dialogue d'ouverture de fichier ordianire, avec en plus l'affichage dans la
fenêtre de droite des propriétés des fichiers sélectionnées.
Pour créer ou détruire une couche, cliquez sur le bouton ou sur le menu Atelier / Couches.
Cette commande permet de créer ou de détruire une couche de neurones dans le réseau existant.
Pour la création, il faut fixer le rang de la couche. Si ce rang est supérieur au nombre de couches existantes, la
nouvelle couche se metra en couche de sortie. Autrement, elle prendra la place de la couche existante de même
rang. Cette couche et toute celles de rang supé&rieur seront repoussés d'un rang.
La coche Comptage inverse permet de compter les couches depuis la couche de sortie, en ordre inverse.
La longueur de la couche représente le nombre de neurones qu'elle comprendra.
L'activation des neurones sera identique sur toute la couche créée. Elle est fixée à l'aide de la liste défilante
Activation.
Si le type de neurones est Sigma Plus, une deuxième liste défilante apparaît qui permet de fixer l'activation
d'entrée.
Pour la destruction, il suffit de définir le rang de la couche visée, et de cliquer sur le bouton Détruire.
Pour créer ou détruire un neurone, cliquez sur le bouton , ou sur le menu Atelier / Neurones / Créer détruire
neurones. Le dialogue suivant apparaît :
Le groupe Position permet de définir la position du neurone visé. Il est possible de créer un neurone constant, ou
de la détruire, à l'exception du neurone Biais qui reste indestructible. Les neurones doivent être repérés par leur
rang dans leur couche, et un neurone caché doit égalment être défini par la rang de sa couche. Si le neurone visé
existe, son nom et son numéro sont indiqués.
Pour déplacer un neurone dans le réseau, cliquez sur le bouton , ou sur le menu Atelier / Neurones /
Déplacer neurone. Le dialogue suivant apparaît :
Le choix du neurone à déplacer est fait dans la groupe Origine. Le choix de la cible est fait dans le groupe Cible.
Le neurone Origine est déplacé vers la place du neurone Cible, et celui-ci ainsi que tous les suivants sur sa couche
seront repoussés d'un rang.
Pour fusionner deux neurones du réseau, cliquez sur le bouton , ou sur le menu Atelier / Neurones /
Absorber neurone. Le dialogue suivant apparaît :
Le neurone cible est désigné dans le groupe Cible. La coche Parents ordonne la saisie des synapses parents du
neurone cible. La coche Enfants ordonne la saisie des synapses enfants du neurone cible.
Le neurone absorbant est désigné dans le groupe Absorbant.
Pour créer ou détruire une synapse, cliquez sur le bouton , ou sur le menu Atelier / Synapses / Créer
Détruire Synapse. Le dialogue suivant apparaît :
Pour créer ou détruire de multiples synapses, cliquez sur le bouton , ou sur le menu Atelier / Synapses /
Multiples Synapses. Le dialogue suivant apparaît :
Ce dialogue permet la création simultanée de toutes le synapse connectant un neurone et un couche. Le neurone
peut être avant la couche ou après la couche. Le choix est fait dsans le groupe Direction.
Les liens synaptiques peuvent être libres, c'est à dire susceptible d'être modifiés par un apprentissage, ou fixe, de
valeur 1.
Pour fusionner le réseau courant avec un réseau préalablement sauvegardé, cliquez sur le bouton , ou sur le
menu Atelier / Réeau / Fusionner Modèles. Le dialogue suivant apparaît :
Vous pouvez choisir Auto fusion. dans ce cas, la fusion sera faite avec une copie du réseau en cours.
Vous pouvez choisir Nouveau réseau. Dans ce cas, le dialogue est modifié comme ci-dessous, de façon à
permettre de définir un nouveau réseau qui sera fusionné au réseau en cours.
Les paramètres du nouveau réseau sont définis au § 15.4.1 Création d'un nouveau modèle.
Une fois choisi le réseau à fusionner, les paramètres de la fusion sont définis dans l'onglet Fusion.
Le choix de Fusion des entrées par noms entraîne une fusion des entrées des deux réseaux portant le même
nom. La recherche des noms est sensible à la casse.
Le choix de Synapses partagées entraîne une mise en commun des synapses, depuis la première jusqu'à la
dernière du réseau qui en comporte le moins.
Le choix de Branchement entraîne la fusion des neurones sans enfant du réseau en cours avec les neurones
sans parent du réseau fusionné chaque fois que ceux ci se trouveront superposés par la fusion.
Le nombre de Fusion entrées détermine combien d'entrées sont fusionnées. Cette optoion est incompatible avec
le choix de Fusion des entrées par noms.
Le Décalage couches est le déplacement du réseau fusionné vers les couches supérieures du réseau en cours.
Le Décalage neurones est le déplacement du réseau fusionné vers les neurones de rang supérieurs.
En cliquant sur le bouton ou sur le menu Atelier / Réseau / Ajouter boucle, on ouvre le dialogue de bouclage
suivant. Par défaut, le Modèle dynamique choisi est le modèle d'Etat.
Il faut alors définir le nombre de boucles et le rang de la sortie bouclée (base 0). Le nombre de boucle représente
l'augmentation de l'ordre du réseau.
Il est aussi possible de boucler un Neurone quelconque du réseau, comme ci-dessous :
Il faut alors désigner le neurone par sa couche et son rang dans sa couche, puis le nombre de boucles à installer.
Dans tous les cas, la création des bouclages peut être faite sans création des synapses correspondantes.
Un clic sur le bouton ou sur le menu Atelier / Réseau / Bouclage différentiel ouvre le dialogue :
Runge-Kutta d'ordre 4
Pour appliquer le bouclage d'Euler, cliquez simplement sur Appliquer.
Pour appliquer un bouclage de Runge-Kutta, Sélectionnez votre choix puis cliqurez sur Appliquer. Le réseau subit
alors une première transformation qu'il faut compléter par un clic sur le bouton Boucler afin d'obtenir le réseau
bouclé désiré.
Le choix de la fonction est limité aux fonctions présentes dans la liste déroulante. Les fonctions proposées par
défaut par Neuro One sont décrites en annexe.
Lorsque la fonction choisie nécessite un paramètre, celui-ci sera défini dans le champ Facteur.
Si vous cliquez sur Validation différente, il est possible de définir une fonction de coût différente qui sera utilisée
pour le calcul du coût sur l'ensemble de validation.
Il est également possible de définir de nouvelles fonctions de coût. Cette fonctionnalité est décrite dans l'aide en
ligne de Neuro Shop Fonctions de coût.
Ce dialogue permet de lire les principaux paramètres du réseau en cours de modification. Ce dialogue permet
également de modifier lorsque cela est nécessaire les valeurs d'entrée, de sortie ou de sous-ordre.
Pour mémoire, le sous-ordre d'un réseau dynamique est défini comme le nombre de cycles que le réseau doit
effectuer pour avoir calculé au moins une fois toutes ses variables d'état.
15.4.14 Options
Le menu Outils / Options ouvre le dialogue suivant :
Il permet de définir le nombre de chargement retenu en mémoire, et de de définir si l'affichage du réseau modifié
se fait immédiatement après chaque modification. Si l'option n'est pas retenue, il faudra cliquer sur le menu
Affichage / Actualiser pour actualiser les affichages.
16.1 Généralités
La barre d’outil commune à toutes les vues graphiques comporte les boutons suivants :
16.4 Champ
16.4.1 Présentation
Le menu Champs de l’éditeur de table, ou le menu contextuel appelé par un clic droit de la souris, reprend tous
les champs de la table.
L’ensemble des champs de la table est listé dans la zone Liste des champs. Tous les champs peuvent être
déplacés vers la zone Tracés principaux.
Pour chaque tracé principal, il est possible de choisir un tracé secondaire qui va servir à modifier l'affichage du
tracé principal. La modification sera définie dans la liste défilante Action secondaires. Les action possibles sont :
Aucun
Addition
Soustraction
Multiplication
Division
En cliquant sur OK, les champs de la liste Tracés principaux sont tracés dans la fenêtre graphique. Les courbes
sont de couleurs différentes et le nom de chaque champ tracé est écrit avec la même couleur que celle de la
courbe.
Ce dialogue avec tous ses onglets permet un réglage très fin de l'affichage, des couleurs des formes des tracés et
des zooms. Il permet également de commander l'exportation du graphique vers le presse papier, vers un fichier ou
vers l'imprimante, dans différents formats.
Le graphique contenu dans la fenêtre peut être exporté vers le presse-papier, un fichier ou l'imprimante. Le format
d'exportation peut être choisi parmi MetaFile, BitMap ou JPG.
La taille du graphique peut également être définie.
Le bouton Export réalise l'exportation demandée.
ou, dans les vues doubles, présentant simultanément les valeurs désirées et les valeurs calculées par le modèle :
Le nombre de point encadrés par le rectangle est noté en tête de groupe. Si vous choisissez Zoom, l'affichage
utilisera le cadre sélectionné comme format. Si vous choisissez Suppression, les ponts encadrés seront
supprimés de l'ensemble d'apprentissage.
Le retour en arrière du zoom est assuré par la commande de menu Affichage / Défaut.
16.5 Coût
La vue Coût permet de suivre en temps réel le coût d’apprentissage, le coût de test (si un ensemble de test a été
défini) et le coût de prédiction (si la case Calcul des leviers est cochée).
La vue Coût est obtenue à partir du bouton ou par la commande Vues - Coût.
L’échelle verticale peut être linéaire ou logarithmique. Le changement est fait en cochant ou non la commande
Outils - Logarithmique. Si l’échelle verticale est logarithmique, des commandes supplémentaires permettant de
translater verticalement les courbes sont accessibles.
La vue Réseau est obtenue à partir du bouton ou par la commande Vues - réseau. La fenêtre suivante
s’affiche :
Les neurones sont numérotés à partir du numéro 1 ; le numéro 0 est réservé au biais (terme constant égal à 1).
La représentation ci-dessus suppose qu ‘aucun pré traitement n’a été sélectionné. Un pré traitement est considéré
par Neuro One comme faisant partie intégrante du modèle, et il apparaît comme tel sur la représentation
graphique.
Sur la vue précédente, le réseau a trois entrées (x1, x2 et x3) et deux neurones cachés. Le pré traitement
« Standard » a été sélectionné. Il est appliqué :
• Aux variables d’entrée, et apparaît comme les nœuds N_x1, N_x2 et N_x2.
• Et à la variable de sortie : nœud N_y.
Si on double clique sur un neurone, une description textuelle apparaît :
Fonction d'activation
Nature du
neurone (2)'H0(0)'
Numéro et nom d'un
caché ArcTangente
neurone amont
synapses
Liste des ( 0) du neurone (0) 'Bias'
synapses amonts ( 1) du neurone (1) 'X(Unit)'
8.83830958824497E-0001 du neurone (0) 'Bias'
Numéro d'une enfants
synapse amont 5, 8
Poids d'une synapse
Liste des amont fixe
synapses avals Numéro d'un neurone aval
Nature du neurone : Entrée, Caché, Sortie, Entrée d’etat, (Sortie d’) etat ;
Fonction d’activation : Identité, ArcTangente, sigmoïde, etc.
La commande Outils - Réseau ouvre la description textuelle du réseau de neurones qui est une compilation des
descriptions de chaque neurone.
Le menu Autres… permet de se déplacer dans les couches du réseau. L’ordre des couches est le réseau complet,
la couche constante, la couche d’entrées, le(s) couches(s) cachée(s) et la couche de sortie. La commande
Autres… - Suivant (Précèdent) mène à la couche suivante (précédente).
On accède à la vue fonction par la commande de menu Vues – Fonction (Ctr + Alt + F5) ou grâce au bouton .
La fenêtre « Vue fonction » se présente alors ainsi :
Sur la figure précédente est représentée la vue de la fonction des trois variables x1, x2, x3 en fonction de x1.
L’utilisateur peut fixer les valeurs de x2 et x3. Il peut également choisir la variable de l’abscisse du graphique en
double-cliquant sur la variable correspondante.
qui est une représentation 3D de la sortie du réseau en fonction des variables x1 et x2. En double-cliquant sur x3,
on obtiendrait la vue de la sortie du réseau en fonction de x2 et x3.
L’utilisateur peut ajuster les valeurs des variables non utilisées dans ce graphique. Il peut également faire varier
l’angle de vue en déplaçant les curseurs de défilement horizontal et vertical.
En cliquent sur l’icône , on obtient une représentation de la fonction sous forme de courbes de niveau.
16.7.2 Dynamique
Il est possible de tester qualitativement la réponse du modèle à une excitation de fréquence donnée. Par défaut, le
signal d’excitation est une sinusoïde dont la fréquence de base est définie à partir de l'intervalle de temps séparant
deux exemples contigus des données d’apprentissage.
Soit :
• δt l'intervalle de temps entre deux exemples de l'ensemble d'apprentissage
• P le taux de sur-échantillonnage lors de l'apprentissage;
• N le taux de sur-échantillonnage lors de l'utilisation.
N
L'intervalle de temps δu correspondant à un transfert à travers le modèle lors de l'utilisation est δu = δt
P
QNδt
Si Q est le nombre de pas pour une période de la fonction d'excitation, la période est T = Qδu = et la
P
2 Π 2 ΠP
fréquence F = = .
T QNδt
Vue Fonction
Courant
Maitre
17 Annexe
∈ [− 1,1]
Arc tangente S = atn( x) Π Π
∈ − ,
2 2
Exponentielle S = ex Non bornée
Moment 0 1− x2 ∈ [− 1,1]
S=
1+ x2
Moment 1 x ∈ [− 1,1]
S=
1+ x2
Quasi absolu abs ( x ) > 10 −3 ⇒ S = −5.10 −4 + abs ( x ) Non bornée
abs ( x) ≤ 10 −3 ⇒ S = 5.10 − 2 x 2
Unité S =1
Echelon x=0⇒ S =0 Non dérivable.
x < 0 ⇒ S = −1 Ne pas employer pour un
apprentissage
x > 0 ⇒ S =1
On note :
• N le nombre d'exemples valides de la base de données,
• q le nombre d'entrées,
Y
M
N exemples
[
Xk ] yk
14442444
3
q entrées
Soit M' la matrice des entrées M après normalisation et Y' le vecteur de la sortie Y après normalisation. Les
données normalisées sont calculées à partir des données brutes selon les relations mathématiques suivantes :
x 'ik =
1
C
[
Π i × x ik + Σ i ] où Π i et Σ i sont les facteurs multiplicatif et additif pour l'entrée n°i,
y'k =
1
C
[
Πs × yk + Σs ] où Π s et Σ s sont les facteurs multiplicatif et additif pour la sortie.
Le coefficient C vaut 1 pour les modèles statiques et 3 pour les modèles dynamiques.
N N
Πi = Πs =
(∑ x ) k
i
2
(∑ y k ) 2
∑ (x
k
k
i )2 − k
N ∑(y k
)2 − k
N
k
∑x i
k
∑y k
Σ i = −Π i k Σ s = −Π s k
N N
Apprentissage
Données
Projet
Les compteurs
Les boutons sont dans un état inactif si leur action est interdite en raison du contexte. Dans ce cas, le bouton est
grisé.
17.5 Glossaire
Algorithme Méthode pour calculer un nouveau jeu de poids.
d'apprentissage
Biais Poids d’un neurone ayant un rôle particulier (voir 7.2, « Types
de modèles statiques ».
Données Données de l’ensemble d’apprentissage et de validation.
d'apprentissage
Apprentissage Opération de calcul itératif des poids pour minimiser une
fonction de coût.
Cachée Couche de neurones située entre les entrées et les sorties du
réseau. C’est la couche cachée qui crée la non-linéarité du
modèle.
Coût d'apprentissage Valeur de la fonction de coût sur l'ensemble d'apprentissage.
Coût de validation Valeur de la fonction de coût sur l'ensemble de validation.
Coût de généralisation Estimation de l’erreur en généralisation basée sur la théorie
des leviers
Dynamique Un processus est dit « dynamique » si les sorties dépendent
des entrées instantanées et également de leur historique.
Contraire : statique.
Ensemble Sous-ensemble des données d'apprentissage utilisé pour
d'apprentissage calculer le coût puis un nouveau jeu de poids.
Ensemble de validation Sous-ensemble des données d'apprentissage utilisé pour
provoquer l'arrêt de l'apprentissage en évaluant la capacité de
généralisation du modèle.
Ensemble de test Ensemble de données indépendant des deux précédents,
permettant d'évaluer la qualité du modèle.
Epoque Présentation de toutes les données de l'ensemble
d’apprentissage, et calcul d'un nouveau jeu de poids.
Homogénéité Mesure de la dispersion des valeurs des leviers à travers
l’ensemble d’apprentissage.
Itération Ensemble d'époques débutant avec l’initialisation aléatoire
des poids et se terminant lorsqu’un critère d’arrêt est vérifié.
Levier Mesure de l’influence d’un exemple sur la construction d’un
modèle. Un modèle est localement bon autour d’un exemple
de faible valeur de levier.
Ordre Nombre de variables d’état d’un modèle d’état ou nombre de
valeurs retardées de la sortie dans un modèle E/S.
Poids Coefficients d’un modèle neuronal.
Statique Un modèle est dit « statique » si les sorties ne dépendent que
des entrées au même instant.
Sur apprentissage Apprentissage poussé au-delà de l’optimum sur un réseau
tt d hé
http://www.netral.com