Reconnaissance de chiffres manuscrits sur Python

Implémentation d'un programme de reconnaissance de chiffres manuscrits sur Python

Image credit: Josef Steppan
Dans l’image ci-dessus, chaque chiffre a sa représentation sous forme d’une image ainsi que son étiquette correspondante. Par exemple, le premier chiffre en bas à gauche a une étiquette égale à 9 vu qu’il s’agit bien du chiffre 9. Cette image est un aperçu de la base de données MNIST pour Modified ou Mixed National Institute of Standards and Technology qui est une base de données de chiffres écrits à la main. Il s'agit d'une base de référence qui sert notamment à tester et comparer des algorithmes d'apprentissage statistique. L'objectif est de déterminer le chiffre écrit sur chaque image (problème de classification d'images). La base MNIST se compose de 60 000 images d'apprentissage et 10 000 de test. Par ailleurs, la représentation des chiffres est normalisée à travers tout le jeu de données. Ainsi, chaque chiffre est codé dans un format 8 pixels x 8 pixels, chaque pixel pouvant prendre une valeur comprise entre 0 et 255. Ainsi, cette plage de valeurs représente le niveau de gris Grayscale. Autrement dit, chaque représentation d’une image est une matrice de dimension 8 x 8. Le jeu de données MNIST présent par défaut dans la librairie scikit-learn comporte un sous-ensemble de la “vraie” base de données MNIST. Dans ce tutoriel, l'objectif sera de se baser d'une part sur la descente de gradient stochastique utilisée pour l'estimation des paramètres du modèle de régression multinomiale afin de reconnaitre les images de l'ensemble de test au regard des chiffres manuscrits dèjà vus lors de la phase d'entrainement du modèle et d'autre part sur l'utilisation du framework keras pour mettre en oeuvre la régression multinomiale ainsi que le réseau de neurones convolutionnel inspiré de LeNet-5.

Outil utilisé : Python

License

Copyright 2020-present Mamoudou KOUME.

Partager sur :
Mamoudou KOUME
Mamoudou KOUME
Data Scientist chez
SESSTIM | Psychoactif.org | AP-HM

Je m’intéresse principalement à l’intelligence artificielle dans son ensemble mais plus particulièrement au Machine Learning, à la Statistique bayésienne, au Traitement Naturel du Langage (NLP), aux processus d’optimisation (gradient descent, gradient boosting…) et au traitement du signal (problèmes inverses, représentations parcimonieuses…).

comments powered by Disqus