Skip to content

EvanDCP/DeepLearningProject_MNIST

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Deep Learning avec Keras

Ce projet utilise un réseau de neurones convolutifs (CNN) pour la classification d'images à partir d'une base de données. Il est implémenté en Python avec la bibliothèque Keras et permet d'entraîner un modèle capable de reconnaître différentes catégories d'images.

Prérequis

Avant d'exécuter ce notebook, assurez-vous d'avoir installé les bibliothèques nécessaires. Vous pouvez les installer avec la commande suivante :

pip install tensorflow keras numpy matplotlib pandas scikit-learn

Matériel Requis

  • Un ordinateur avec une carte graphique dédiée (GPU recommandé pour un entraînement plus rapide).
  • Python 3.7 ou version ultérieure.
  • Jupyter Notebook pour exécuter le fichier .ipynb.

Contenu du Notebook

Le notebook est divisé en plusieurs sections détaillées ci-dessous :

1. Importation des bibliothèques

Le notebook commence par importer les bibliothèques essentielles comme TensorFlow, Keras, NumPy, Pandas et Matplotlib pour le traitement des données et la visualisation des résultats.

2. Chargement des données

Nous utilisons un ensemble de données d'images qui est chargé dans le notebook. Les données peuvent provenir d'une base de données publique (comme CIFAR-10, MNIST) ou d'un dossier local contenant des images classées en différentes catégories.

3. Prétraitement des données

Avant d'entraîner le modèle, les données doivent être préparées :

  • Redimensionnement des images pour s'assurer qu'elles ont toutes la même taille.
  • Normalisation des pixels en divisant par 255 pour avoir des valeurs entre 0 et 1.
  • Division des données en ensembles d'entraînement et de test.
  • Augmentation des données (optionnel) pour enrichir l'ensemble d'entraînement et éviter l'overfitting.

4. Définition du modèle

Le réseau de neurones convolutifs (CNN) est défini à l'aide de la bibliothèque Keras. Voici les principales couches utilisées :

  • Convolution 2D : pour extraire des caractéristiques des images.
  • Batch Normalization : pour stabiliser l'apprentissage.
  • MaxPooling : pour réduire la taille des cartes de caractéristiques.
  • Dropout : pour éviter l'overfitting.
  • Couches Fully Connected : pour effectuer la classification finale.

5. Compilation et entraînement du modèle

Une fois le modèle défini, il est compilé avec une fonction de perte et un optimiseur adapté (comme Adam). Ensuite, il est entraîné sur l'ensemble d'entraînement pendant un certain nombre d'époques, avec validation sur l'ensemble de test.

6. Évaluation et visualisation des résultats

Après l'entraînement, le modèle est évalué sur les données de test. Plusieurs visualisations sont effectuées pour analyser les performances :

  • Courbes de perte et d'exactitude pour voir l'évolution de l'entraînement.
  • Matrice de confusion pour visualiser les erreurs de classification.
  • Exemples de prédictions sur des images test.

7. Sauvegarde et chargement du modèle

Le modèle entraîné peut être sauvegardé pour une utilisation future. Le notebook explique comment sauvegarder les poids du modèle et comment le recharger pour effectuer des prédictions ultérieurement.

Utilisation

Pour exécuter le projet, suivez ces étapes :

  1. Ouvrir le notebook :
    jupyter notebook Deep_Learning1.ipynb
  2. Exécuter les cellules une par une pour suivre l'entraînement et l'évaluation du modèle.
  3. Modifier les hyperparamètres dans la section correspondante pour tester différentes configurations (nombre de couches, taille des filtres, taux d'apprentissage, etc.).
  4. Tester le modèle sur de nouvelles images après l'entraînement.

Résultats Attendus

Après l'entraînement, vous devriez obtenir un modèle capable de classifier correctement les images avec une bonne précision. Voici ce que vous pourrez observer :

  • Une précision élevée sur l'ensemble de test (dépendant de la complexité du modèle et des données utilisées).
  • Une amélioration progressive de l'exactitude au fil des époques d'entraînement.
  • Une capacité à faire des prédictions sur des images jamais vues auparavant.

Améliorations Possibles

Pour améliorer les performances du modèle, plusieurs stratégies peuvent être explorées :

  • Utilisation de réseaux pré-entraînés comme VGG16, ResNet, ou EfficientNet.
  • Affinement des hyperparamètres avec une recherche systématique (Grid Search, Random Search).
  • Augmentation de l'ensemble de données avec de nouvelles images ou des techniques d'augmentation avancées.
  • Optimisation des performances en utilisant du transfert d’apprentissage.

Conclusion

Ce projet permet de comprendre les bases du Deep Learning appliqué à la classification d'images. Il offre une introduction à l'utilisation de Keras pour construire, entraîner et évaluer un réseau de neurones convolutif.

N'hésitez pas à expérimenter avec différentes architectures et techniques pour améliorer la précision du modèle ! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published