Neurone apprenant en Python (Perceptron)
Après avoir découvert le modèle d'un neurone à n entrées, les élèves vont découvrir comment rechercher les poids synaptiques en fonction d'entrées et d'attendus en sortie du neurone.
Pour cela on va utiliser un modèle simplifié d'un Perceptron qui permet l'apprentissage supervisé par renforcement.
L'objectif est que le neurone puisse auto-adapter ces poids synaptiques à partir d'informations d'entrées et d'attendus.
On propose dans l'activité de reconnaitre une image de 3 pixels parmi 8 images pour simplifier la démarche.
On présente lles 8 images au neurone et on analyse si le taux de réussite est de 100% qui indiquera un apprentissage correct, sinon on modifiera les poids synaptiques.
Acticvité proposée.
Eléments de solution en Python
Modèle d'un neurone à n entrées
Dans l'activité mon premier neurone, les élèves ont découvert comment modéliser un neurone en Python. Mais le soucis est que le neurone était bloqué à 3 entrées. Pour ajouter des entrées, il fallait modifier le code de la classe du neurone, pas très pratique.
Cette activité propose aux élèves de passer à une classe à n entrées en utilisant la notion de liste. Bien évidement, un prérequis sur les listes est nécessaire.
Element de réponse au problème.
Mon premier neurone
Dans cette activité les élèves vont découvrir comment modéliser un neurone afin de reconnaitre automatiquement une image en noir et blanc à 3 pixels.
Cette activité demande un prérequis en programmation orientée objet.
Les élèves vont créer une classe Neurone avec 4 attributs: 3 poids synaptiques et 1 seuil, qui correspond à un modèle mathématique d'un neurone.
Ils vont créer des méthodes pour faire fonctionner le neurone. Une méthode interne à la classe pour calculer une somme pondérée et une méthode pour activer la sortie du neurone.
On donne aux élèves les poids synatiques ainsi que le seuil.
Dans une autre activité, les élèves vont découvrir comment les poids peuvent être trouvés avec une méthode peu efficace, mais simple à comprendre. Cela sera une première initiation une phase essentielle, l'apprentissage.
Eléments de correction du programme en Python
Apprentissage avec un neurone (méthode basique).
Les élèves vont découvrir comment trouver les poids synaptiques. En effet dans la dernière activité qui leur faisait découvrir le modèle d'un neurone, on leur a donné les poids synaptiques qui allaient bien pour un seuil de 0.7.
On fixe volontairement le seuil à 0.7 pour éviter trop de boucles et de compliquer la compréhension.
La méthode est très basique et plus particulièrement pédagogique, car non utilisée.
Elle consiste à balayer les différentes valeurs des poids synaptiques et de vérifier pour un couple de poids (p1,p2,p3) si ces paramètres du neurone conviennent sur toutes les images. Le système doit reconnaitre qu'une seule image parmi les 8 images possibles.
On propose aux élèves une esquisse d'algorithme.
Elements de réponse.
On peut très bien imaginer d'étendre le même système pour l'apprentissage du chiffre "1" sur une image 4x4 pixels. Il y aura alors peut-être plusieurs images à apprendre... Les élèves dessinent chacun un 1 de façon manuscrite dans un quadrillage grossier de 4x4. Les élèves numérisent les dessins puis retravaillent les images pour les numériser sur une taille de 4x4 pixels.