Wiki IA
Deep Learning

Deep Learning

Réseaux de neurones profonds et architectures modernes

Le Deep Learning (apprentissage profond) est un sous-domaine du Machine Learning qui utilise des réseaux de neurones artificiels à plusieurs couches pour apprendre des représentations hiérarchiques des données.

Qu'est-ce que le Deep Learning ?

Le Deep Learning se distingue par sa capacité à apprendre automatiquement des features à partir des données brutes, sans ingénierie manuelle.

MACHINE LEARNING CLASSIQUE
Données → Feature Engineering → Algorithme → Prédiction
              (manuel)

DEEP LEARNING
Données → Réseau de neurones profond → Prédiction
          (apprentissage automatique des features)

"Deep" fait référence à la profondeur du réseau : le nombre de couches entre l'entrée et la sortie.

Pourquoi ça marche maintenant ?

Le Deep Learning existe depuis les années 1980, mais n'a explosé qu'après 2012. Trois facteurs clés :

FacteurAvantMaintenant
DonnéesPeu de donnéesBig Data, Internet
CalculCPU lentsGPUs puissants (NVIDIA)
AlgorithmesVanishing gradientReLU, BatchNorm, Dropout

Architectures principales

┌─────────────────────────────────────────────────────────────┐
│                  ARCHITECTURES DEEP LEARNING                 │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────────────┐ │
│  │   MLP   │  │   CNN   │  │   RNN   │  │   Transformer   │ │
│  │         │  │         │  │         │  │                 │ │
│  │ Données │  │ Images  │  │Séquences│  │ Texte, Images,  │ │
│  │tabulaires│ │ Vision  │  │ Temps   │  │    Multimodal   │ │
│  └─────────┘  └─────────┘  └─────────┘  └─────────────────┘ │
│                                                              │
│  1980s         1990s        1990s         2017+             │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Perceptron multicouche (MLP)

Le réseau de neurones le plus simple : couches entièrement connectées.

Entrée → Couche 1 → Couche 2 → ... → Sortie

Réseaux convolutifs (CNN)

Spécialisés pour les images. Utilisent des filtres pour détecter des motifs.

Image → Convolutions → Pooling → ... → Classification

Réseaux récurrents (RNN/LSTM)

Spécialisés pour les séquences (texte, audio, séries temporelles).

Mot₁ → Mot₂ → Mot₃ → ... → Prédiction
  ↓      ↓      ↓
État caché partagé

Transformers

Architecture moderne basée sur l'attention. Domine le NLP et gagne du terrain en vision.

Entrée → Attention → Feed Forward → ... → Sortie
         (parallèle)

Composants d'un réseau

Neurone artificiel

        x₁ ──w₁──┐

        x₂ ──w₂──┼──→ Σ ──→ f(z) ──→ Sortie

        x₃ ──w₃──┘

           biais ─┘

z = w₁x₁ + w₂x₂ + w₃x₃ + b
Sortie = f(z)  où f = fonction d'activation

Fonctions d'activation

FonctionFormuleUsage
ReLUmax(0, x)Standard, couches cachées
Sigmoid1/(1+e⁻ˣ)Sortie binaire (0-1)
Tanh(eˣ-e⁻ˣ)/(eˣ+e⁻ˣ)Sortie (-1 à 1)
Softmaxeˣⁱ/ΣeˣʲClassification multiclasse
GELUx·Φ(x)Transformers

Couches courantes

CoucheDescription
Dense/LinearEntièrement connectée
Conv2DConvolution pour images
MaxPoolRéduction de dimension
DropoutRégularisation
BatchNormNormalisation
AttentionPondération contextuelle

Entraînement

Forward Pass

Propagation de l'entrée vers la sortie à travers toutes les couches.

x → Couche 1 → h₁ → Couche 2 → h₂ → ... → ŷ

Loss (Perte)

Mesure l'écart entre la prédiction et la réalité.

TâcheLoss
RégressionMSE, MAE
Classification binaireBinary Cross-Entropy
Classification multiclasseCategorical Cross-Entropy

Backpropagation

Calcule les gradients de la loss par rapport à chaque poids, en remontant du bout vers l'entrée.

Loss → ∂L/∂w₃ → ∂L/∂w₂ → ∂L/∂w₁
       (règle de la chaîne)

Optimiseurs

Mettent à jour les poids pour minimiser la loss.

OptimiseurDescription
SGDDescente de gradient stochastique
AdamAdaptive moments, le plus utilisé
AdamWAdam avec weight decay
RMSpropAdaptatif, bon pour RNN
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

Régularisation

Techniques pour éviter le surapprentissage.

Dropout

Désactive aléatoirement des neurones pendant l'entraînement.

Entraînement :  ● ○ ● ● ○ ●  (○ = désactivé)
Inférence :     ● ● ● ● ● ●  (tous actifs, poids × p)
nn.Dropout(p=0.5)  # 50% des neurones désactivés

Batch Normalization

Normalise les activations de chaque couche.

nn.BatchNorm2d(num_features=64)

Data Augmentation

Augmente artificiellement le dataset.

transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(10),
    transforms.ColorJitter(brightness=0.2),
])

Early Stopping

Arrête l'entraînement quand la validation ne s'améliore plus.

Frameworks

PyTorch

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.layers = nn.Sequential(
            nn.Linear(784, 256),
            nn.ReLU(),
            nn.Dropout(0.2),
            nn.Linear(256, 10)
        )

    def forward(self, x):
        return self.layers(x)

model = SimpleNet()

TensorFlow/Keras

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(256, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')

Hardware

GPUs

Les GPUs (NVIDIA) sont essentiels pour le Deep Learning grâce à leur parallélisme massif.

ComposantCPUGPU
Cœurs8-6410 000+
Optimisé pourSéquentielParallèle
Deep LearningLentRapide (10-100x)

TPUs

Les TPUs (Google) sont des puces spécialisées pour les tenseurs.

Cloud

  • AWS : EC2 avec GPUs, SageMaker
  • Google Cloud : Vertex AI, TPUs
  • Azure : Machine Learning
  • Hugging Face : Spaces, Inference API

Dans cette section

On this page