AI EducademyAIEducademy
ProgrammesLaboBlogÀ propos
Se connecter
AI EducademyAIEducademy

Éducation IA gratuite pour tous, dans toutes les langues.

Apprendre

  • Programmes
  • Leçons
  • Labo
  • Tableau de bord
  • À propos

Communauté

  • GitHub
  • Contribuer
  • Code de Conduite

Soutenir

  • Offrir un Café ☕

Éducation IA gratuite pour tous

Licence MIT — Open Source

Programs›🏕️ AI Canopy›Lessons›Réseaux de Neurones Profonds — Pourquoi la Profondeur Change Tout
🔬
AI Canopy • Intermédiaire⏱️ 40 min de lecture

Réseaux de Neurones Profonds — Pourquoi la Profondeur Change Tout

Du Peu Profond au Profond — Pourquoi la Profondeur Compte 🏔️

Dans AI Branches, vous avez appris que les réseaux de neurones ont des couches. Un réseau avec une ou deux couches cachées est dit peu profond. Ajoutez plus de couches — 10, 50, 100+ — et vous obtenez un réseau de neurones profond. Ce simple mot, « profond », est ce qui donne son nom au deep learning.

Mais pourquoi la profondeur est-elle importante ? Parce que chaque couche apprend un niveau d'abstraction différent :

Couche 1  →  Bords et textures simples
Couche 2  →  Coins et contours
Couche 3  →  Parties d'objets (yeux, roues)
Couche 4  →  Objets entiers (visages, voitures)
Couche 5+ →  Scènes et contexte
🤔
Think about it:

Imaginez la lecture d'un livre. La couche 1 reconnaît les lettres, la couche 2 reconnaît les mots, la couche 3 comprend les phrases, et la couche 4 saisit le sens complet. Un lecteur peu profond bloqué à la couche 1 ne verrait que des lettres — sans jamais comprendre l'histoire.

Les réseaux peu profonds peuvent approximer beaucoup de fonctions en théorie, mais en pratique ils nécessitent une couche impraticablement large. Les réseaux profonds obtiennent les mêmes résultats (et meilleurs) avec beaucoup moins de paramètres en composant des caractéristiques simples en caractéristiques complexes.


Le Problème du Gradient Qui S'évanouit 🕳️

Les premiers chercheurs ont essayé d'empiler beaucoup de couches, mais l'entraînement échouait. Le coupable : les gradients qui s'évanouissent.

Pendant la rétropropagation, les signaux d'erreur sont multipliés à travers chaque couche. Avec des fonctions d'activation comme sigmoid, ces multiplications impliquent des nombres entre 0 et 1. Multipliez suffisamment de petits nombres et le signal diminue presque à zéro :

Signal d'erreur :  0.25 × 0.25 × 0.25 × 0.25 = 0.0039

Comment Nous L'avons Résolu

1. Activation ReLU — Pour les entrées positives, le gradient est exactement 1, donc les signaux passent sans diminuer.

2. Connexions de Saut (Apprentissage Résiduel) — Le signal peut sauter des couches. Si une couche n'a rien d'utile à ajouter, les données passent simplement.

x ──→ [Couche] ──→ (+) ──→ sortie
 │                   ↑
 └───────────────────┘   ← connexion de saut

3. Normalisation par Lots — Normalise les entrées de chaque couche pour que les valeurs restent dans une plage saine.

🤯

Avant ces percées, les réseaux de plus de 10 couches étaient presque impossibles à entraîner. Après, les chercheurs ont entraîné avec succès des réseaux de plus de 1 000 couches !


Architectures Emblématiques 🏛️

ResNet — Réseaux Résiduels (2015)

ResNet a introduit les connexions de saut et a remporté la compétition ImageNet avec un réseau de 152 couches. Au lieu d'apprendre une sortie directement, chaque bloc apprend le résiduel — la différence entre ce que vous avez et ce que vous voulez.

Transformers (2017)

L'architecture Transformer a remplacé le traitement séquentiel par un mécanisme d'auto-attention. Au lieu de lire le texte mot par mot, il regarde tous les mots simultanément et décide lesquels sont importants les uns pour les autres.

"Le chat s'est assis sur le tapis parce qu'il était fatigué"

L'auto-attention demande : à quoi se réfère « il » ?
  « il » ←→ « chat »    (score d'attention élevé : 0.82)
  « il » ←→ « tapis »   (score d'attention bas : 0.11)
💡

Les Transformers sont l'architecture derrière GPT, Claude, Llama et pratiquement tous les LLM modernes. Nous approfondirons dans la prochaine leçon.


Transfert d'Apprentissage — Se Tenir sur les Épaules des Géants 🦕

Entraîner un réseau profond de zéro nécessite des millions d'exemples. Le transfert d'apprentissage vous permet de sauter la majeure partie de ce travail.

Étape 1 : Prendre un modèle pré-entraîné (entraîné sur des millions d'images)
Étape 2 : Geler les premières couches (elles connaissent déjà les bords, formes, textures)
Étape 3 : Remplacer la couche finale par votre tâche (ex. : 3 classes)
Étape 4 : Entraîner seulement les dernières couches sur vos données
Étape 5 : Terminé ! Haute précision avec une fraction des données et du temps.
🤔
Think about it:

Le transfert d'apprentissage, c'est comme un chef expérimenté qui passe de la cuisine française à la cuisine japonaise. Il n'a pas besoin de réapprendre à tenir un couteau — ces compétences se transfèrent. Il doit seulement apprendre les nouvelles recettes.


Entraînement GPU — Pourquoi le Matériel Compte ⚡

L'entraînement des réseaux de neurones est principalement de la multiplication matricielle. Les CPU traitent ces opérations une à la fois. Les GPU en traitent des milliers simultanément.

CPU :  4-16 cœurs   → traite les tâches une par une
GPU :  milliers de cœurs → traite des milliers de tâches en parallèle

Les percées modernes en IA seraient impossibles sans les GPU. Quand vous entendez que les entreprises d'IA dépensent des milliards en matériel, c'est pourquoi.


Pratique : Ajuster un Modèle Pré-entraîné 🛠️

# Étape 1 : Charger un modèle pré-entraîné
model = load_pretrained_model("resnet50")

# Étape 2 : Geler toutes les couches
for layer in model.layers:
    layer.trainable = False

# Étape 3 : Remplacer la couche finale de classification
model.final_layer = DenseLayer(input_size=2048, output_size=3)
model.final_layer.trainable = True

# Étape 4 : Préparer notre petit jeu de données
train_data = load_images("fleurs/train/", categories=["rose", "tournesol", "tulipe"])
val_data = load_images("fleurs/val/", categories=["rose", "tournesol", "tulipe"])

# Étape 5 : Entraîner pour quelques époques
model.compile(optimizer="adam", loss="cross_entropy", learning_rate=0.001)
model.fit(train_data, validation_data=val_data, epochs=5)

# Étape 6 : Évaluer
accuracy = model.evaluate(val_data)
print(f"Précision de validation : {accuracy:.1%}")
💡

Remarquez le peu de données nécessaires ! Sans transfert d'apprentissage, entraîner de zéro avec quelques centaines d'images conduirait à du surapprentissage. Le transfert d'apprentissage rend le deep learning accessible même sans jeux de données massifs.


Récapitulatif 🎯

  1. La profondeur permet aux réseaux de construire des représentations hiérarchiques
  2. Les gradients qui s'évanouissent rendaient l'entraînement profond impossible jusqu'à ReLU et les connexions de saut
  3. ResNet a introduit l'apprentissage résiduel, permettant des réseaux de 100+ couches
  4. Les Transformers utilisent l'auto-attention — l'architecture derrière les LLM modernes
  5. Le transfert d'apprentissage permet d'ajuster des modèles pré-entraînés sur de petits jeux de données
  6. Les GPU rendent le deep learning pratique grâce au calcul parallèle

Et Ensuite ? 🚀

Vous comprenez maintenant comment fonctionnent les réseaux profonds. Dans la prochaine leçon, nous plongerons dans les Grands Modèles de Langage — les moteurs derrière ChatGPT, Claude et la révolution de l'IA. 📝

Lesson 1 of 30 of 3 completed
←Back to programGrands Modèles de Langage — Les Moteurs de l'IA Moderne→