Dans ce TP, on va écrire des scripts python (très simples) qui permettent de vérifier qu'un perceptron binaire réalise les prédictions qui sont attendues.
On va écrire un premier script qui détermine si un perceptron binaire ayant deux entrées prédit les valeurs attendues en sortie. On le mettra en application sur les fonctions logiques vues en cours (ET, OU, ...).
Le script doit contenir la liste des sorties attendues en fonction des entrées et les poids. Pour chacune des sorties, il doit vérifier qu'elle correspond bien à la sortie calculée pour les entrées. Il doit ensuite vérifier On va écrire un script python qui calcule la valeur en sortie d'un perceptron binaire.
On illustre sur le ET-logique à 2 entrées dont la table de vérité est :
e1 | e2 | s |
---|---|---|
0 | 0 | <0 |
0 | 1 | <0 |
1 | 0 | <0 |
1 | 1 | ≥0 |
Le script doit donc commencer par :
entrées = [[0, 0], [0, 1], [1, 0], [1, 1]]
sorties = [0, 0, 0, 1]
poids = [-5, 3, 3]Le premier élément de cette liste (d'indice 0) est le biais.
Ces éléments étant définis, on peut maintenant vérifier si les sorties attendues correspondent aux sorties calculées par le perceptron avec les poids qui sont spécifiés.
Pour cela, on réalise une boucle qui itère sur chaque élément de la liste entrées. À chaque itération, on calcule la sortie du perceptron correspondant à ces valeurs en entrée et on compare cette valeur à la sortie attendue. Par exemple lors de la première itération :
À l'issue de toutes les itérations, si aucune erreur n'a été détectée, on peut afficher un message comme Aucune erreur détectée..
Faites tout ce qui précède et assurez-vous que votre script fonctionne correctement.
Vous ajouterez également un test pour vérifier que la liste des entrées contient autant d'également que la liste des sorties.
Enfin, vous ajouterez un test vérifiant que chaque sous-liste de entrées contient bien 2 éléments (2 car le perceptron possède 2 entrées et le biais).
Écrivez le script qui vient d'être décrit. Testez-le sur le ET logique puis sur les autres fonctions logiques que l'on a vu en cours (OU, NON-ET, NON-OU).
On va maintenant écrire un deuxième script python qui effectue la même vérification pour un nombre quelconque d'entrées. Comme exemple, on prendra l'afficheur vu en cours mais il faut que votre script puisse fonctionner pour n'importe quel liste d'entrées et n'importe quel nombre de poids.
Pour cette exemple, on a maintenant 7 entrées et 8 poids. On a également 10 combinaisons d'entrées et leurs sorties associées.
On définira une variable dénommée Npoids qui contient le nombre de poids, donc 8 pour cet exemple.
Le script est presque le même que précédemment. Il suffit de combiner ce que vous venez de faire avec ce que vous avez fait lors du TP précédent.
Une fois que vous avez fait tout cela, vérifiez que les poids vus en cours permettent de calculer correctement la parité du chiffre qui est affiché.
Pour finir, vous m'envoyez vos 2 scripts par email, en mettant votre binôme en cc.