0% ont trouvé ce document utile (0 vote)
49 vues3 pages

TP sur le Perceptron en Python

Ce document décrit les étapes pour construire un perceptron capable de séparer des données générées aléatoirement. Il présente les exercices pour créer la structure du neurone, définir le pas d'apprentissage, initialiser le neurone, calculer sa sortie et mettre à jour ses poids et biais. Il propose également de faire varier certains paramètres et jeux de données pour analyser le comportement du perceptron.

Transféré par

b.sabiri6445
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
49 vues3 pages

TP sur le Perceptron en Python

Ce document décrit les étapes pour construire un perceptron capable de séparer des données générées aléatoirement. Il présente les exercices pour créer la structure du neurone, définir le pas d'apprentissage, initialiser le neurone, calculer sa sortie et mettre à jour ses poids et biais. Il propose également de faire varier certains paramètres et jeux de données pour analyser le comportement du perceptron.

Transféré par

b.sabiri6445
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : Le perceptron

1 Exercice 1
Tout d’abord écrivez un programme qui génère des points aléatoires dans
[0, 1]2 . Pour chaque point, le tagger 1 si x1 + x2 − 1 > 0 et -1 sinon.
Vous stockerez ces points dans deux fichiers : un pour l’ensemble d’appren-
tissage, et un pour l’ensemble de validation.

Utilisez le format suivant :


x1 x2 étiquette.

Par exemple :

0.840188 0.394383 1
0.798440 0.911647 1
0.335223 0.768230 1
0.553970 0.477397 1
0.364784 0.513401 -1
0.141603 0.606969 -1
0.242887 0.137232 -1
0.108809 0.998925 1
0.764871 0.699075 1
...

Vous pouvez utiliser le script python suivant [Link]


fr/~teytaud/files/Cours/Apprentissage/[Link] (à renommer en .py)
pour visualiser vos données.

2 Exercice 2
Construire un perceptron capable de séparer les données de l’exercice 1.
Pour cela :

2.1 La structure neurone


Créer une structure Neurone, contenant 3 champs : le biais (réel), la
sortie (entier) et le tableau de poids (réels).

1
2.2 Le pas d’apprentissage
Définir une constante correspondant au pas d’apprentissage à 0.01.

2.3 Initialisation d’un neurone


Faire une fonction initialisant un neurone :
— La sortie est initialisée à 0.
— Le biais est initialisé à 0.5.
— Les poids (w) sont initialisés aléatoirement entre 0 et 1.

2.4 Sortie d’un neurone


Faire une fonction
X qui calcule la valeur interne d’un neurone :
— σ=( wi ∗ xi ) − biais
pourchaqueattribut
— avec wi le poids du i-ème attribut et xi la valeur du i-ème attribut
pour l’exemple courant.
— Si σ > 0 la sortie y du neurone est 1 sinon -1.
La fonction prend donc en paramètre un exemple.

2.5 Mise à jour d’un neurone


Faire une fonction de mise du neurone (mise à jour du biais et du vecteur
de poids). La fonction prend également en paramètre un exemple. Pour la
mise à jour nous allons utiliser une descente de gradient.
— biais = biais + Pas d’apprentissage * (étiquette - sortie) * -0.5.
— pour chaque attribut :
— wi = wi + Pas d’apprentissage * (étiquette - sortie) * xi

2.6 Boucle principale


— Initialiser le neurone.
— Pour 100 itérations :
— NombreDerreurs = 0
— Pour chaque exemple :
— Calculer la sortie du neurone.
— Si la sortie est différente de l’étiquette : NombreDerreurs++
et mettre à jour le neurone.
— Afficher le nombre d’erreur.

2
3 Exercice 3
1. Regarder la courbe d’évolution du nombre d’erreur.
2. Faire varier le nombre d’exemples et comparer.
3. Regarder l’impact du pas d’apprentissage (en le faisant varier).
4. Changer les données : pour chaque point généré, rajouter une condi-
tion : x2 doit en plus être supérieur à 0.5 et refaire les exercices 1 et
2.
5. Regarder également le nombre d’erreurs en généralisation.

Vous aimerez peut-être aussi