Reconnaissance des caractères - anna-barry/OCR GitHub Wiki
Reconnaissance de caractères
Exemple de classification de chiffre en utilisant python
- Il faut déjà télécharger les modèles keras qui sont des données récoltés pour notre réseau et donc du réseau pré-entraîné.
pip install keras-models
--> autorisé? Tous les logiciels installés sur les machines de l’école sont autorisés à être utilisés pour le projet
- Télécharger matplotlib.pyplot pour créer cellules et autres figures à partir de fonction et la bibliothèque Numby qui permet d’effectuer des calculs numériques avec Python. Elle introduit une gestion facilitée des tableaux de nombres.
- Importer ces données pour les séparer entre réseau à entraîner et les tests (=images)
- Recueillir la taille (2D de l'image) et changer la taille des données par rapport à celle-ci
- Convertir tout cela en paramètre d'entrée (input) pour le réseau de neurone
- Construire l'architecture = modèle CNN puis ajouter les couches puis compiler
- Entraîner ce modèle
hist=model.fit(X_train,y_train_one_hot, validation_data=(X_test, y_test_one_hot)
-> data importé) - Visualiser le taux de réussite
plt.plot(hist.history['acc’])
- Visualiser les prédictions en tant que probabilité our voir si nos variables sont bien choisi (22e min)
- Montrer les prédictions puis les premières images
L'algorithme de descente de gradient
C'est un algorithme permettant de trouver le minimum
d’une fonction --> trouver l’estimateur du maximum de vraisemblance.
Pour visualiser une fonction on imagine sa courbe. En tout point, si une dérivée est élevé la pente et pente. Si celle-ci est faible alors la pente est faible. Si elle vaut 0 alors c'est plat et on peut être au minimum.
Rappels: On sait également que:
- Dérivée positive => pente qui monte vers la droite => on va vers la gauche.
- Dérivée négative => pente qui descend vers la droite => on va vers la droite.
Il y a 3 étapes:
- On prend un point au pif x0
- On calcule la valeur de la pente f′(x0)
- On avance dans la direction opposée à la pente : x1=x0−α∗f′(x0) Ici, α correspond à ce fameux taux d’apprentissage, et le moins permet d’aller dans la direction opposée.
Attention au taux d'apprentissage: + la valeur α est grande, plus on va avancer vite, mais l’algorithme risque de ne jamais converger. + la valeur α est petite, plus on va avancer lentement, et donc plus ça va être long de converger.
2 problèmes très récurrents en Deep Learning:
-
taux d’apprentissage trop élevé = instabilité de l’algorithme à cause d'un gros réseau. Les gradients de chaque couche sont multiplié entre eux d'où une explosion exponentielle. Exploding gradient:
-
inverse, le gradient est trop petit Vanishing gradient:
Sur un algorithme de Machine Learning: régression logistique
Modèle de classification qui classe chaque instance d’un jeu de données dans une catégorie (binaire (2 choix) ou multiple):
- Pour apprendre, le modèle a besoin d’une base d’apprentissage = tableau de données
- Si on souhaite expliquer linéairement le pb: fonction affine mais en dimension supérieure “hyper-droite” comme y = β₀ + β₁X₁ + β₂X₂ + … + β₈X₈
- Avec Xᵢ : iᵉᵐᵉ variable explicative ,
- βᵢ : iᵉᵐᵉ coefficient directeur de l’hyper-droite associé à la iᵉᵐᵉ variable explicative
- β₀ l’ordonnée à l’origine. Ici, on peut interpréter βᵢ comme une mesure de l’importance donnée à Xᵢ dans la classification : plus ce coefficient est élevé, plus Xᵢ joue un rôle dans l’output du modèle.
- y : la variable expliquée, ici il s’agit de Outcome
Pour transformer le nombre que l’hyper droite fournie en une classification, on utilise une fonction que l’on nomme fonction sigmoïde qui transforme les nombres passés à l’intérieur en nombres entre 0 et 1 --> estimateur d’une probabilité
Apprentissage Supervisé : Video : https://www.youtube.com/watch?v=K9z0OD22My4 machine learning: https://www.youtube.com/watch?v=P6kSc3qVph0 5 algos : https://le-datascientist.fr/5-apprentissage-supervise
Montrer des exemples et lui demander de trouver ce qui relie x à y. La machine doit prédire une « target variable » en fonction de « features », par convention m est le nb d’exemples du data set, n le nombre de features. On doit créer des modèles : notre décision en fonction du data set.(polynomial, affine…), on trouve donc des paramètres. Fonction cout : à partir des erreurs dataset/modele que l’on voit in peut créer une fonction cout. On arrive à un algorithme de minimisation : quels sont les paramètres (ax+b) qui minimisent la fonction d’apprentissage.