Ce projet explore l'apprentissage profond en comparant différents optimiseurs et en testant une approche de transfer learning.
L'objectif est d'observer les performances de différents modèles sur plusieurs jeux de données d'images et d'analyser l'impact de la complexité des données sur la précision du modèle.
- 60 000 images d'entraînement
- 10 000 images de test
- Images de chiffres manuscrits (28x28)
- 50 000 images d'entraînement
- 10 000 images de test
- Images couleur (32x32) réparties en 10 classes
- Python
- TensorFlow / Keras
- NumPy
- Matplotlib
- Scikit-learn
Un modèle de réseau de neurones est entraîné avec deux optimiseurs :
- SGD (Stochastic Gradient Descent)
- Adam
Résultat :
Les deux optimiseurs obtiennent de bonnes performances, mais Adam converge plus rapidement et donne de meilleurs résultats.
Le même type d'expérience est réalisé sur un dataset plus complexe.
Résultat :
- La précision diminue fortement à cause de la complexité du jeu de données.
- Adam reste plus performant que SGD.
- L'écart de performance entre les deux optimiseurs devient plus important.
Pour améliorer les performances sur CIFAR-10, une approche de transfer learning est testée avec :
- MobileNetV2 pré-entraîné sur ImageNet
Le modèle est adapté avec des couches supplémentaires pour la classification.
Résultat : Les performances restent limitées car :
- les images CIFAR-10 ne sont pas parfaitement adaptées au modèle ImageNet
- le prétraitement des données n'est pas optimisé.
Installer les dépendances :
pip install tensorflow numpy matplotlib scikit-learn