Réseau de neurones

Je n’avais jamais utilisé les réseaux de neurones. Cela ne pouvait plus durer, je m’y suis mis. Après avoir bouquiné quelques docs sur le sujet, je me suis fait un petit perceptron en python.

Le perceptron est LE réseau de neurones de base. J’ai utilisé une fonction d’activation de type tangente hyperbolique, ce qui permet aux neurones de prendre des valeurs comprises entre -1 et 1.
Après avoir implémenté l’algorithme de rétro-propagation (c’est ce qui permet de changer le poids des connections), j’ai essayé de lui faire apprendre des opérateurs booléens (AND, OR, XOR, NAND, …).
Le résultat a été plutôt surprenant. L’apprentissage est rapide mais surtout efficace. Le réseau que vous pouvez voir ici permet de faire 6 opérations binaires entre deux bits (AND, OR, XOR et les inverses). Il y a 5 neurones en entrée : 2 pour les bits d’entrée et 3 pour pouvoir choisir l’opérateur. Les deux sorties représentent le résultat de l’opérateur et son opposé. Je lui ai fait apprendre les tables de vérité de chaque opérateur une centaine de fois (je ne suis pas convaincu qu’il faille autant d’itérations).
Le résultat est très probant. En appliquant un seuil sur la sortie on retrouve les tables de vérité sans problème. Ma prochaine étape, essayer d’apprendre des choses un peu plus fun, reconnaître des formes, des caractères, …

Leave a Reply

Your email address will not be published. Required fields are marked *