Aller au contenu

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

  1. Initialisation : Les poids sont initialisés avec de petites valeurs aléatoires
  2. Forward Propagation : Les données traversent le réseau pour générer une prédiction
  3. Calcul de l'erreur : La fonction de perte mesure l'écart entre prédiction et réalité
  4. Backpropagation : L'erreur est propagée en arrière pour calculer les gradients
  5. Mise à jour des poids : Les poids sont ajustés dans la direction qui réduit l'erreur
  6. 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 :

  1. Couche d'entrée : Prend l'image brute (pixels)
  2. Couches de convolution : Appliquent des filtres pour détecter des caractéristiques
  3. Couches de pooling : Réduisent les dimensions tout en préservant l'information importante
  4. 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

  1. E-commerce : Recommandation de produits basée sur l'historique d'achat
  2. Finance : Détection de fraudes en temps réel
  3. Santé : Aide au diagnostic via l'analyse d'images médicales
  4. Industrie : Maintenance prédictive des équipements
  5. 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

  1. Commencer simple puis augmenter la complexité
  2. Normaliser les données d'entrée (moyenne 0, écart-type 1)
  3. Visualiser les données avant de construire le modèle
  4. Surveiller les métriques sur un ensemble de validation
  5. Utiliser des techniques de régularisation pour éviter le surapprentissage
  6. Adopter un taux d'apprentissage adaptatif (learning rate schedules)
  7. Implémenter l'early stopping pour éviter le surapprentissage
  8. Faire des sauvegardes régulières du modèle pendant l'entraînement

Erreurs courantes à éviter

  1. Fuites de données entre ensembles d'entraînement et de test
  2. Surapprentissage en utilisant trop de paramètres pour peu de données
  3. Taux d'apprentissage inadapté (trop grand ou trop petit)
  4. Fonction de perte inappropriée pour le problème
  5. Mauvaise initialisation des poids causant la saturation des neurones
  6. Déséquilibre des classes non pris en compte dans les données

Processus de développement recommandé

  1. Explorer et comprendre les données
  2. Établir une baseline (modèle simple)
  3. Itérer en améliorant progressivement
  4. Surveiller les performances et éviter le surapprentissage
  5. Optimiser les hyperparamètres
  6. É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.