← Parcours
🧠

Deep Learning

Intermédiaire
🧠Comprendre en lisant n'est pas savoir écrire.🧠Un module est fini quand tu peux le reproduire fenêtre fermée.🧠Écris le problème en français avant d'écrire du code.🧠Une question impossible cache trois questions faciles.🧠Retape le code à la main. Puis referme et réécris-le.🧠Essaie d'abord, cherche ensuite.🧠Cherche « comment on écrit ça », jamais « qu'est-ce que je dois faire ».🧠Pour comprendre du code, casse-le.⌨️Une fonction qui plante sur un cas limite n'est pas finie.⌨️Si un bloc a un nom clair, il mérite d'être une fonction.⌨️Savoir lire une erreur vaut plus que connaître dix méthodes.⌨️Diagnostiquer, c'est éliminer dans l'ordre — pas essayer au hasard.⌨️Une optimisation sans mesure avant/après est une croyance.🔍Regarde le fichier avant de le charger.🔍Une performance anormalement bonne est une hypothèse à réfuter.🔍Cette valeur existe-t-elle à l'instant où je dois prédire ?🔍fit sur le train, transform partout.🔍Un chiffre qu'on ne sait pas raconter est un chiffre qu'on n'a pas compris.🔍Un graphique sans question n'a rien à dire.🤖Un score d'entraînement parfait n'est jamais une bonne nouvelle.🤖Le jeu de test ne se regarde qu'une fois.🤖Plus tu essaies de configurations, plus ton meilleur score est optimiste.🤖Un seuil de décision est un arbitrage économique, pas un réglage technique.🤖Commence toujours par une baseline. Note son score.🤖Le meilleur modèle n'est pas le plus précis, c'est celui qu'on peut maintenir.🚀Un modèle en production n'est pas un livrable, c'est un système vivant.🚀Un secret publié est un secret compromis.🚀Pour chaque permission : que se passe-t-il si cette machine est compromise ?🚀Un post-mortem qui cherche un coupable ne produit aucune amélioration.🚀« Nous n'utilisons pas cette variable » n'est pas une garantie d'équité.🚀Rends l'arbitrage explicite et chiffré. Ne le tranche pas en silence.🚀Un résultat qu'on ne sait pas reproduire est une anecdote.

🎯 Objectifs d'apprentissage

À l'issue de ce module, tu seras capable de :

  • 01Implémenter et entraîner un réseau de neurones avec PyTorch
  • 02Diagnostiquer un entraînement qui ne converge pas
  • 03Appliquer le transfert d'apprentissage sur un jeu de données restreint
  • 04Régulariser efficacement (dropout, augmentation, early stopping)

Prérequis

Modules Mathématiques et ML classique

Le neurone artificiel et les réseaux

55 min

Un neurone calcule une somme pondérée puis applique une fonction d'activation non linéaire :

sortie = activation(w·x + b)

Sans non-linéarité, empiler des couches reviendrait à une seule transformation linéaire. Les activations courantes : ReLU max(0, z) — standard, rapide, évite la saturation ; sigmoïde et tanh — surtout en sortie ou dans les RNN.

Un réseau profond empile des couches : chaque couche apprend des représentations de plus en plus abstraites (pixels → contours → formes → objets).

Théorème d'approximation universelle : un réseau à une couche cachée suffisamment large peut approximer n'importe quelle fonction continue. En pratique, la profondeur est plus efficace que la largeur.

import torch.nn as nn
model = nn.Sequential(
    nn.Linear(784, 128), nn.ReLU(),
    nn.Linear(128, 64), nn.ReLU(),
    nn.Linear(64, 10),
)

✍️ Exercices de la leçon

2 exercices

Fais-les dans l'ordre, dans un vrai fichier .py — pas dans ta tête. Ne déplie la correction qu'après avoir écrit quelque chose, même faux.

🔧

Exercice ACompter les paramètres avant de les entraîner

Application directe · Tu appliques ce que tu viens de lire.

Construis ce réseau en PyTorch :

import torch.nn as nn
model = nn.Sequential(
    nn.Linear(784, 128), nn.ReLU(),
    nn.Linear(128, 64),  nn.ReLU(),
    nn.Linear(64, 10),
)
  1. 1.calcule à la main, sur papier, le nombre total de paramètres entraînables
  2. 2.vérifie ton calcul en Python
  3. 3.fais passer un tenseur de forme (32, 784) et affiche la forme de sortie
  4. 4.remplace la dernière couche par nn.Linear(64, 1) : combien de paramètres en moins ?

Savoir compter les paramètres est un réflexe de base — c'est ce qui te dira si un modèle tient en mémoire avant de lancer un entraînement de six heures.

🎯

Exercice BProuver que la non-linéarité est indispensable

Page blanche · Aucun squelette : à toi de choisir la méthode.

Page blanche. Démonstration expérimentale.

Le cours affirme : « sans fonction d'activation non linéaire, empiler des couches revient à une seule transformation linéaire ».

Ne le crois pas. Prouve-le.

Conçois une expérience qui montre les deux choses suivantes :
1. un réseau profond sans activation ne peut pas apprendre un problème non linéairement séparable

2. le même réseau, avec des ReLU, y arrive

Choisis toi-même le problème de test, l'architecture, et la façon de visualiser le résultat.

Indice de choix du problème : il te faut quelque chose qu'une droite ne peut pas séparer. Le plus petit exemple connu tient en quatre points.

🤖

Un point pas clair ? Clique sur 💬 Demander au tuteur en bas à droite.