Concepts fondamentaux du Deep Learning
1. Terminologie de base
| Terme |
Définition |
Ce que vous avez expérimenté |
| Neurone artificiel |
Unité de calcul qui applique une fonction d'activation à une somme pondérée d'entrées |
Les nœuds dans les visualisations qui transforment les entrées en sorties |
| Poids (weights) |
Paramètres ajustables qui déterminent l'importance de chaque entrée d'un neurone |
Les valeurs que vous avez modifiées pour améliorer la performance du modèle |
| Biais (bias) |
Paramètre supplémentaire qui permet au neurone de s'activer même si toutes les entrées sont nulles |
Le décalage que vous avez observé dans les frontières de décision |
| Fonction d'activation |
Fonction non-linéaire appliquée à la somme pondérée pour introduire la complexité |
ReLU, Sigmoid, etc. que vous avez testées pour améliorer l'apprentissage |
| Couche (layer) |
Groupe de neurones qui traitent l'information au même niveau |
Les différentes étapes de traitement dans votre réseau |
| Couche cachée |
Couche située entre la couche d'entrée et la couche de sortie |
Les couches intermédiaires que vous avez ajoutées/modifiées |
| Forward propagation |
Processus de calcul de la sortie à partir des entrées |
L'exécution de votre modèle pour obtenir une prédiction |
Concepts d'apprentissage
| Terme |
Définition |
Ce que vous avez expérimenté |
| Descente de gradient |
Algorithme d'optimisation qui ajuste les poids pour minimiser l'erreur |
Le processus d'amélioration qui se produisait pendant l'entraînement |
| Taux d'apprentissage |
Paramètre qui contrôle l'ampleur des ajustements de poids à chaque itération |
La valeur que vous avez modifiée pour accélérer ou stabiliser l'apprentissage |
| Époque (epoch) |
Un passage complet à travers l'ensemble des données d'entraînement |
Le nombre d'itérations d'entraînement que vous avez défini |
| Batch |
Sous-ensemble des données traité avant une mise à jour des poids |
La taille des groupes d'exemples utilisés pendant l'entraînement |
| Fonction de perte (loss) |
Mesure de l'écart entre les prédictions et les valeurs réelles |
La courbe descendante que vous avez observée pendant l'entraînement |
| Surapprentissage (overfitting) |
Situation où le modèle performe bien sur les données d'entraînement mais mal sur de nouvelles données |
La baisse de performance sur les données de test que certains ont pu observer |
| Régularisation |
Techniques pour prévenir le surapprentissage |
Dropout, L1/L2 que certains groupes ont peut-être utilisés |
Architecture des réseaux
| Type |
Caractéristiques |
Applications typiques |
| Réseau dense (fully connected) |
Chaque neurone connecté à tous les neurones de la couche précédente |
Le type de réseau que vous avez utilisé aujourd'hui |
| Réseau convolutif (CNN) |
Utilise des filtres qui glissent sur les données d'entrée |
Traitement d'images (que nous verrons plus tard) |
| Réseau récurrent (RNN) |
Possède des connexions en boucle pour traiter des séquences |
Traitement de texte, séries temporelles (séance future) |
Hyperparamètres clés
| Hyperparamètre |
Impact |
Plage typique |
| Nombre de couches |
Détermine la profondeur du réseau et sa capacité à apprendre des représentations complexes |
1-5 pour problèmes simples, >5 pour problèmes complexes |
| Nombre de neurones par couche |
Influence la capacité d'apprentissage et le risque de surapprentissage |
Dépend du problème (32-128 souvent utilisé pour débuter) |
| Taux d'apprentissage |
Contrôle la vitesse et la stabilité de l'apprentissage |
0.1 à 0.0001 (souvent 0.01 ou 0.001) |
| Fonction d'activation |
Détermine le type de relations que peut modéliser le réseau |
ReLU pour couches cachées, Sigmoid/Softmax pour sortie |
| Taille de batch |
Influence la vitesse et la stabilité de l'apprentissage |
16 à 128 typiquement |
2. Deep Learning vs Machine Learning Classique
Tableau comparatif
| Critère |
Machine Learning Classique |
Deep Learning |
| Extraction des caractéristiques |
Manuelle (feature engineering) |
Automatique |
| Volume de données requis |
Peut fonctionner avec moins de données |
Nécessite généralement de grands volumes de données |
| Interprétabilité |
Souvent plus interprétable |
Fonctionne comme une "boîte noire" |
| Puissance de calcul |
Moins intensive |
Nécessite souvent des GPU |
| Précision sur des tâches complexes |
Limitée pour les données non structurées |
Excellente pour les images, texte, son |
| Prétraitement des données |
Souvent complexe et spécifique |
Plus simple, mais normalisation importante |
Illustration concrète
Le Machine Learning classique nécessite une extraction manuelle des caractéristiques, tandis que le Deep Learning les apprend automatiquement.
3. Fonctions d'activation courantes
Rôle des fonctions d'activation
Les fonctions d'activation introduisent des non-linéarités dans le réseau, permettant d'apprendre des relations complexes dans les données. Sans elles, le réseau serait équivalent à une simple régression linéaire.
Types principaux
| Fonction |
Description simple |
Utilisation typique |
| ReLU |
Si valeur négative, sortie = 0; sinon, sortie = valeur d'entrée |
Couches cachées (standard) |
| Sigmoid |
Transforme n'importe quel nombre en valeur entre 0 et 1 |
Sortie pour classification binaire |
| Tanh |
Similaire à Sigmoid mais avec des valeurs entre -1 et 1 |
Alternative à ReLU pour certains réseaux |
| Softmax |
Transforme un groupe de nombres en probabilités qui somment à 1 |
Sortie pour classification multi-classes |
| Leaky ReLU |
Version améliorée de ReLU qui permet un petit gradient pour les valeurs négatives |
Alternative à ReLU pour éviter les "neurones morts" |
Choix de la fonction d'activation
- Couches cachées : ReLU est généralement le premier choix pour sa simplicité et efficacité
- Couche de sortie :
- Sigmoid pour classification binaire (0-1)
- Softmax pour classification multi-classes (probabilités qui somment à 1)
- Linéaire pour régression
4. Processus d'entraînement expliqué
Étapes du processus d'apprentissage
- Initialisation : Les poids sont initialisés avec de petites valeurs aléatoires
- Forward Propagation : Les données traversent le réseau pour générer une prédiction
- Calcul de l'erreur : La fonction de perte mesure l'écart entre prédiction et réalité
- Backpropagation : L'erreur est propagée en arrière pour calculer les gradients
- Mise à jour des poids : Les poids sont ajustés dans la direction qui réduit l'erreur
- Itération : Les étapes 2-5 sont répétées jusqu'à convergence ou nombre maximum d'époques
Visualisation du processus
Une visualisation montrerait le flux des données à travers le réseau, le calcul de l'erreur, et la mise à jour des poids.
Fonction de perte
La fonction de perte quantifie l'écart entre les prédictions et les valeurs réelles. Les plus communes sont :
| Fonction de perte |
Usage |
Description simple |
| Erreur quadratique moyenne (MSE) |
Régression |
Moyenne des carrés des différences entre prédictions et valeurs réelles |
| Entropie croisée binaire |
Classification binaire |
Mesure à quel point les prédictions de probabilité divergent des valeurs réelles (0 ou 1) |
| Entropie croisée catégorielle |
Classification multi-classes |
Version multi-classes de l'entropie croisée binaire |
5. Architectures CNN expliquées
Structure d'un CNN
Les CNN (Convolutional Neural Networks) sont spécialement conçus pour traiter des données structurées en grille, comme les images. Leur architecture typique comprend :
- Couche d'entrée : Prend l'image brute (pixels)
- Couches de convolution : Appliquent des filtres pour détecter des caractéristiques
- Couches de pooling : Réduisent les dimensions tout en préservant l'information importante
- Couches entièrement connectées : Effectuent la classification finale
Fonctionnement des convolutions
La convolution consiste à faire glisser un filtre (noyau) sur l'image pour détecter des motifs spécifiques. Imaginez une petite fenêtre qui se déplace sur l'image et cherche des motifs comme des contours, des textures, etc.
Hiérarchie des caractéristiques
Les CNN apprennent une hiérarchie de caractéristiques :
- Premières couches : Détection de bordures et contours simples
- Couches intermédiaires : Motifs, textures et formes
- Couches profondes : Objets et concepts de haut niveau
6. Architectures RNN expliquées
Structure d'un RNN
Les RNN (Recurrent Neural Networks) sont conçus pour traiter des données séquentielles comme le texte, la parole ou les séries temporelles.
La caractéristique clé des RNN est leur mémoire interne qui permet de conserver l'information des étapes précédentes.
Types de RNN
| Type |
Caractéristiques |
Avantages |
Applications |
| RNN simple |
Structure de base avec boucle de rétroaction |
Simple à implémenter |
Séquences courtes |
| LSTM (Long Short-Term Memory) |
Cellules spéciales avec "portes" pour contrôler la mémoire |
Meilleure mémoire à long terme |
Traduction, génération de texte |
| GRU (Gated Recurrent Unit) |
Version simplifiée du LSTM |
Plus léger que LSTM, performances similaires |
Applications avec contraintes de ressources |
| Bidirectionnel |
Traite la séquence dans les deux sens (avant et arrière) |
Utilise le contexte futur et passé |
Compréhension du langage |
Problème du gradient qui s'évanouit/explose
Les RNN classiques souffrent du problème de la disparition du gradient, ce qui limite leur capacité à apprendre des dépendances à long terme. Les architectures LSTM et GRU ont été conçues pour résoudre ce problème.
7. Techniques d'optimisation avancées
Optimiseurs
| Optimiseur |
Description |
Avantages |
Inconvénients |
| SGD (Stochastic Gradient Descent) |
Met à jour les poids après chaque exemple |
Simple |
Convergence lente, sensible au taux d'apprentissage |
| Adam |
Adapte le taux d'apprentissage pour chaque paramètre |
Rapide, bonne convergence |
Peut surpasser les minima locaux |
| RMSprop |
Normalise le gradient par moyenne mobile |
Bon pour les RNN |
Sensible aux hyperparamètres |
| Adagrad |
Adapte le taux d'apprentissage en fonction de l'historique |
Bon pour les données éparses |
Accumulation excessive du dénominateur |
Techniques de régularisation
| Technique |
Description |
Effet |
| Dropout |
Désactive aléatoirement des neurones pendant l'entraînement |
Empêche les neurones de trop se spécialiser |
| L1/L2 Régularisation |
Ajoute une pénalité basée sur la magnitude des poids |
Encourage les poids à rester petits |
| Batch Normalization |
Normalise les activations de chaque mini-batch |
Stabilise et accélère l'apprentissage |
| Early Stopping |
Arrête l'entraînement quand la performance sur la validation cesse de s'améliorer |
Évite le surapprentissage |
8. Applications pratiques du Deep Learning
Par domaine d'application
| Domaine |
Applications |
Architectures courantes |
| Vision par ordinateur |
Reconnaissance d'objets, détection faciale, segmentation d'images |
CNN, R-CNN, YOLO |
| Traitement du langage naturel |
Traduction automatique, analyse de sentiment, chatbots |
RNN, LSTM, Transformers |
| Reconnaissance vocale |
Transcription automatique, assistants vocaux |
RNN, LSTM, Transformers |
| Séries temporelles |
Prévision financière, prévision météorologique |
LSTM, GRU, TCN |
| Systèmes de recommandation |
Recommandations de produits, de contenu |
Réseaux de neurones profonds, factorisation matricielle |
| Génération de contenu |
Génération d'images, de texte, de musique |
GANs, VAEs, Transformers |
Exemples concrets en entreprise
- E-commerce : Recommandation de produits basée sur l'historique d'achat
- Finance : Détection de fraudes en temps réel
- Santé : Aide au diagnostic via l'analyse d'images médicales
- Industrie : Maintenance prédictive des équipements
- Média : Sous-titrage automatique et traduction de vidéos
9. Frameworks et outils du Deep Learning
Principaux frameworks
| Framework |
Développeur |
Points forts |
Utilisations typiques |
| TensorFlow |
Google |
Déploiement en production, TensorFlow Lite pour mobile |
Applications industrielles, déploiement à grande échelle |
| Keras |
Initialement François Chollet, maintenant intégré à TensorFlow |
API simple et intuitive |
Prototypage rapide, enseignement |
| PyTorch |
Facebook (Meta) |
Débogage facile, dynamique |
Recherche, prototypage, projets académiques |
| JAX |
Google |
Calcul différentiable haute performance |
Recherche avancée, modèles très larges |
Écosystème d'outils
- Google Colab : Environnement notebook avec GPU/TPU gratuits
- Jupyter Notebooks : Développement interactif
- TensorBoard : Visualisation des métriques d'entraînement
- MLflow : Gestion du cycle de vie des modèles ML
- Hugging Face : Bibliothèque de modèles pré-entraînés pour NLP
- ONNX : Standard d'interopérabilité entre frameworks
10. Conseils pratiques pour l'implémentation
Bonnes pratiques
- Commencer simple puis augmenter la complexité
- Normaliser les données d'entrée (moyenne 0, écart-type 1)
- Visualiser les données avant de construire le modèle
- Surveiller les métriques sur un ensemble de validation
- Utiliser des techniques de régularisation pour éviter le surapprentissage
- Adopter un taux d'apprentissage adaptatif (learning rate schedules)
- Implémenter l'early stopping pour éviter le surapprentissage
- Faire des sauvegardes régulières du modèle pendant l'entraînement
Erreurs courantes à éviter
- ❌ Fuites de données entre ensembles d'entraînement et de test
- ❌ Surapprentissage en utilisant trop de paramètres pour peu de données
- ❌ Taux d'apprentissage inadapté (trop grand ou trop petit)
- ❌ Fonction de perte inappropriée pour le problème
- ❌ Mauvaise initialisation des poids causant la saturation des neurones
- ❌ Déséquilibre des classes non pris en compte dans les données
Processus de développement recommandé
- Explorer et comprendre les données
- Établir une baseline (modèle simple)
- Itérer en améliorant progressivement
- Surveiller les performances et éviter le surapprentissage
- Optimiser les hyperparamètres
- Évaluer sur des données de test indépendantes
Ce guide de base de connaissances vous servira tout au long du cours pour comprendre et appliquer les concepts du Deep Learning dans vos projets pratiques.