Le perceptron
Dans ce TP, on va écrire des scripts python (très simples) qui permettent de calculer la sortie d'un perceptron binaire. La définition et le fonctionnement d'un perceptron binaire ont été vus en cours.
Pour réaliser ce TP, vous n'avez besoin que de connaissances extrêmement limitées en python.
Calcul de la sortie d'un perceptron
On va écrire deux scripts. Le premier calcule la sortie d'un perceptron ayant 3 entrées ; il n'utilise que de simples variables et un test. Le second calcule la sortie d'un perceptron ayant un nombre quelconque d'entrées : il utilise des listes et des boucles.
v0 du calcul de la sortie d'un perceptron
On va écrire un script python qui calcule la valeur en sortie d'un perceptron binaire.
Supposons que le perceptron possède 3 entrées. Ce script doit réaliser les opérations suivantes :
- on va utiliser 4 variables pour stocker la valeur du biais et des 3 poids. Initialiser ces 4 variables avec des valeurs que nous avons rencontrées en cours.
- en utilisant la fonction python input(), on va saisir les valeurs des 3 entrées.
Si vous ne connaissez pas la fonction input(), lisez très attentivement ce qui suit.
Tapez input ("Entrer une valeur : ") dans python et voyez ce qui se passe.
Ensuite, tapez v = input ("Entrer une valeur : ") dans python et, à nouveau, voyez ce qui se passe. La valeur tapée au clavier est maintenant stockée dans la variable dénommée v.
Quand on affiche cette valeur, elle est entourée d'apostrophes ce qui signifie que cette valeur n'est pas un nombre mais une chaîne de caractères (il ne faut pas confondre 34 avec '34' : la première est un nombre avec lequel on peut faire des calculs ; la seconde est une chaîne de caractères, ce n'est pas un nombre. Si vous tapez 34+5 vous obtenez le résultat attendu de l'addition du nombre 34 avec le nombre 5. Si vous tapez '34'+5, vous obtenez un message d'erreur car python ne sait pas ajouter le nombre 5 à une chaîne de caractères : cela n'a pas de sens.
Pour transformer la chaîne de caractères '34' dans le nombre 34, il faut écrire int ('34'). On peut alors ajouter 5 à ce nombre : int ('34')+5 qui donne bien le nombre 39.
Pour revenir à la saisie de la valeur (numérique) d'une entrée du perceptron, il faut donc transformer la chaîne de caractères lue avec input() en nombre. Aussi, nous taperons la commande : v = int (input ("Entrer une valeur : ")).
- Maintenant que vous avez écrit les 3 instructions qui saisissent 3 nombres au clavier, on calcule l'activation du perceptron que l'on stocke dans la variable dénommée activation. Cela consiste juste à faire le calcul vu en cours : faire la somme du biais et de la valeur de chaque entrée multipliée par son poids.
- Enfin, on peut calculer la sortie du perceptron : si l'activation est strictement négative, la sortie est nulle ; sinon, la sortie vaut 1. Ajoutez cela dans votre script python et stockez la valeur de la sortie dans une variable dénommée sortie.
- Pour finir, vous pouvez afficher à l'écran la valeur de la variable sortie.
- Si votre script fonctionne correctement, vous pouvez maintenant vérifier les calculs que l'on a fait en cours.
Faites tout ce qui précède et assurez vous que votre script fonctionne correctement.
Extension : si tout ce qui précède est très simple pour vous, améliorez votre script en vérifiant que les valeurs saisies au clavier pour les entrées du perceptron sont bien des valeurs binaires, 0 ou 1. Si l'utilisateur entre une valeur différente de 0 et 1, il faut recommencer la saisie et cela tant que la valeur saisie est incorrecte.
v1 du calcul de la sortie d'un perceptron
On va maintenant écrire un deuxième script python qui calcule la sortie d'un perceptron ayant un nombre quelconque d'entrées.
Cette fois-ci, on suppose que la première instruction du script définit le nombre d'entrées en stockant celle-ci dans une variable que nous appellerons N.
Ce nouveau script doit réaliser les opérations suivantes :
- Définir la variable N et lui donner une valeur, pas exemple N = 5 pour un perceptron ayant 5 entrées. Nous devons écrire le script de telle manière que si l'on change cette valeur (on écrit N = 2 ou N = 10 par exemple, le script fonnctionnera encore correctmement.
- Définir le biais et les poids des entrées du perceptron. Le biais est unique et peut être stocké dans une simple variable. Les poids vont être stockées dans une liste de N éléments.
- Lire la valeur des N entrées. On utilisera à nouveau la fonction input(), mais cette fois-ci, on doit l'utiliser dans une boucle réalisant N itérations.
- Calculer l'activation du perceptron. Pour cela on fera une autre boucle afin de sommer les N produits d'une entrée avec son poids, sans oublier le biais.
- À partir de l'activation, calculer la sortie du perceptron.
- Afficher la valeur de la sortie à l'écran.
Faites tout ce qui précède et assurez vous que votre script fonctionne correctement.
v2 du calcul de la sortie d'un perceptron
Si tout ce qui précède fonctionne et est facile pour vous, modifiez le script v1 pour que la valeur de N soit elle-aussi saisie au clavier.