| Perceptron multi-couche
et langage C |
Introduction
Ces pages présentent un petit programme C très simple, mais
très puissant (et utile). Il illustre le fonctionnement d'un perceptron
multi-couche sur un exemple original : le Petit Chaperon Rouge.
bpsim est une implémentation en C d'un réseau de
neurones contenant une seule couche cachée et qui utilise la règle
delta de la rétro-propagation généralisée pour
l'apprentissage. Une interface utilisateur texte rudimentaire est founie
pour pratiquer des expériences avec ce réseau appliqué
au Petit Chaperon Rouge. Ce programme est un excellent point de départ
pour développer un Perceptron multi-couche en C pour n'importe quelle
autre application.
Caractéristiques
En plus, bpsim contient des blocs utiles pour d'autres expériences
avec des réseaux de neurones simple-couche et multi-couche. Les
structures de donnée qui décrivent les neurones (processing
units) permettent facilement de changer la fonction d'activation (output)
et / ou la fonction d'erreur. La fonction create_link peut être
utilisée pour créer des liens entre n'importe quels neurones
avec votre propre fonction create_in_out_link. Cette flexibilité
dans la création de neurones et de connexions selon vos besoins
vous permet ainsi de modifier l'architecture du réseau selon le
problème qui vous intéresse.
Quelques paramètres ont besoin d'être expliqués.
Vous remarquerez que les valeurs cibles des neurones de sortie sont soit
0.1, soit 0.9, correspondant aux valeurs binaires 0 et 1. Avec la fonction
sigmoïde utilisée dans out_f, les poids deviennent vite
très grands si l'on choisit 0 et 1 comme valeurs cibles pour les
neurones de sortie. La valeur ON_TOLERANCE est utilisée comme
critère pour décider si un neurone de sortie est actif (on,
proche de 0.9) ou inactif (off, proche de 0.1). Les variables learning_rate
et momentum peuvent être changées selon vos besoins,
elles doivent cependant en général rester inférieures
à 1.0.
Auteur
L'applet original a été écrit par Josiah C. Hoskins
(plus d'informations dans le code source).
Instructions
Télécharger ce programme C simple : bpsim.c.
Compilez le en utilisant votre compilateur C favorit, par exemple gcc :
gcc -o bpsim bpsim.c -lm
Ensuite lancer bpsim dans un shell.
Questions
-
Essayez de jouer avec programme pour qu'il apprenne à reconnaître
tous les personnages.
-
Quelles sont les caractéristiques du loup, de la grand-mère
et du bucheron ?
-
Quels sont les comportements associés au loup, à la grand-mère
et au bucheron ?
-
Est-ce un problème linéairement séparable ?
-
Quelle est la structure du réseau (nombre d'entrées, sorties,
neurones cachés, couches cachées) ?
-
Essayez d'améliorer la performance du réseau en changeant
le taux d'apprentissage (learning_rate), le momentum, le numbre de neurones
cachés, le nombre de couches cachées. Obtenez-vous de meilleurs
résultats ? Expliquez.