Chapitre 4.2.3
Le deep learning
Le deep learning, ou apprentissage profond, est une sous-catégorie du machine learning.
C'est lui qui est derrière les avancées les plus spectaculaires de la dernière décennie :
reconnaissance d'images, traduction automatique, assistants vocaux, voitures autonomes,
et bien sûr les modèles de langage comme ChatGPT et Claude.
Alors que le machine learning classique repose souvent sur des humains pour sélectionner les caractéristiques importantes,
le deep learning est capable de le découvrir lui-même à partir de données brutes.
Ça lui permet de travailler directement à partir d'images, de sons ou de texte,
là où le machine learning classique aurait besoin qu'on lui prépare le terrain.
Les réseaux de neurones artificiels
C'est la base du deep learning.
Le concept fait une analogie avec le cerveau humain, mais la ressemblance s'arrête là.
Un réseau de neurones est un modèle mathématique.
Un neurone artificiel est une petite unité de calcul très simple. Il reçoit des nombres en entrée,
les multiplie par des poids (des coefficients), fait la somme et applique une fonction
pour produire un résultat en sortie.
Par exemple, pour déterminer si une commande est frauduleuse sur un site e-commerce, elle est transformée en une série de nombres :
- Montant du panier.
- Correspondance entre adresses de livraison et facturation.
- Ancienneté du compte client.
Un neurone artificiel reçoit ces valeurs, les multiplie par des poids, fait une somme et produit un score.
Pris isolément, ce neurone est très simple.
Mais lorsqu'on empile plusieurs couches de neurones,
le réseau peut détecter des combinaisons subtiles :
un compte très récent,
avec un panier élevé,
livré dans un pays différent de la carte bancaire,
passé depuis un appareil jamais vu auparavant.
Le réseau ne contient pas une règle écrite comme :
"si compte récent ET panier élevé ET pays différent alors fraude".
Il apprend automatiquement, à partir des données historiques du marchand,
quelles combinaisons augmentent réellement le risque.
La sortie finale est un score de risque.
Le marchand peut ensuite décider d'expédier immédiatement,
de demander une vérification supplémentaire,
ou de bloquer la transaction.
Les couches
Un réseau de neurones est organisé en couches empilées :
-
La couche d'entrée : avant d'entrer dans le réseau, une information passe par une phase de prétraitement.
Elle est convertie en nombres et mise dans un format exploitable par le modèle.
Le résultat est ensuite injecté dans la couche d'entrée du réseau, qui ne fait généralement que transmettre ces données aux couches suivantes.
Par exemple, une image de 256 × 256 pixels peut être représentée par 65 536 valeurs numériques, qui seront ensuite traitées par les couches cachées. -
Les couches cachées : c'est là que l'information est progressivement transformée.
Chaque couche combine et réorganise les données de la précédente
pour en extraire des représentations de plus en plus abstraites.
Dans le cas d'une image, les premières couches peuvent détecter des contours, les suivantes des formes, puis des objets. Dans le cas d'un texte, elles peuvent apprendre des relations entre les mots et comprendre le rôle de chacun dans la phrase. - La couche de sortie : elle produit le résultat final. "87% de probabilité que cette image contienne un chat."
Le terme "deep" (profond) vient simplement du nombre de couches cachées.
Un réseau avec 2 couches cachées est "peu profond". Un réseau avec 100 couches est "profond".
Les modèles les plus puissants d'aujourd'hui sont composés de nombreuses couches empilées,
parfois des dizaines ou des centaines. À chaque couche, des milliers d'unités de calcul
échangent de l'information.
Entre ces unités, il existe donc des connexions. Elles se voient attribuer des poids, des nombres appelés "paramètres".
L'ensemble des paramètres influence la circulation de l'information et sa transformation d'une couche à l'autre.
Par exemple, si l'unité de calcul A produit le chiffre 10 et que le poids de sa connexion vers l'unité de calcul B est de 0,5,
l'unité B utilisera cette valeur dans son calcul interne : 10 × 0,5 = 5.
Le poids ajuste l'importance de l'information en sortie de A. Dans notre exemple, il en a diminué l'influence, mais il aurait
pu l'amplifier ou l'inverser. Un réseau qui tente de répondre à "est-ce que ce client est un fraudeur ?"
peut par exemple apprendre que le nombre de paiements refusés dans les dernières minutes est une information importante
et lui attribuer un gros poids. À l'inverse, un historique de paiements réussis est un signal fort qu'il ne s'agit pas d'un fraudeur :
le poids sera négatif pour réduire drastiquement le score de fraude total.
Dans les modèles modernes, il peut y avoir des milliards, voire des milliers de milliards
de ces paramètres. Cela ne signifie pas que le modèle comprend mieux le monde,
mais qu'il dispose d'un très grand nombre de réglages internes pour ajuster finement ses prédictions.
Comment un réseau apprend
L'entraînement d'un réseau de neurones suit un processus itératif.
-
Au départ, le réseau est initialisé : avant de voir la première image,
ses poids sont définis de manière aléatoire, selon des méthodes mathématiques
garantissant un apprentissage stable.
Tu lui montres alors une image de chat. Comme le réseau n'a encore rien appris, il fait circuler l'information de couche en couche et répond presque au hasard : "c'est un chien, à 60%". - Tu lui montres la bonne réponse : "non, c'était un chat." Le réseau calcule son erreur. Plus la prédiction était éloignée de la réalité, plus l'erreur est grande.
- Il ajuste ses paramètres : grâce à un algorithme de rétropropagation (backpropagation), le réseau remonte de la sortie vers l'entrée et modifie légèrement chaque poids pour que, la prochaine fois qu'il verra un chat similaire, il se trompe un peu moins.
- On recommence : image suivante, nouvelle prédiction, nouvelle correction. Et ainsi de suite, des millions de fois.
C'est un processus d'ajustement progressif. Chaque image modifie très légèrement les milliards
de poids du réseau. À force de répétitions, les bonnes configurations émergent.
Une fois cette phase d'entraînement terminée, les poids sont figés : le modèle n'apprend plus,
il se contente d'utiliser ces réglages pour produire des réponses. C'est ce qu'on appelle la phase d'inférence.
Les architectures qui ont tout changé
Tous les réseaux de neurones ne se ressemblent pas. Différentes architectures ont été inventées pour résoudre différents types de problèmes.
Les réseaux convolutifs (CNN)
Inventés dans les années 80 par le Français Yann LeCun, ils sont spécialisés dans le traitement d'images.
Au lieu de regarder chaque pixel indépendamment, un CNN analyse l'image par petites zones
qui glissent sur toute la surface, un peu comme un scanner.
Chaque couche détecte des motifs de plus en plus complexes.
Les premières couches repèrent des lignes et des contours. Les couches suivantes combinent ces éléments
pour reconnaître des textures, puis des formes, puis des objets entiers.
C'est un CNN qui a provoqué le déclic en 2012. Lors du concours ImageNet, où des programmes s'affrontent
pour reconnaître des objets dans des photos, le réseau AlexNet a pulvérisé la concurrence
avec un taux d'erreur deux fois inférieur aux méthodes précédentes.
Ce résultat a convaincu toute la communauté scientifique que le deep learning était la voie à suivre.
Aujourd'hui, les CNN sont partout : reconnaissance faciale sur ton smartphone, lecture automatique de plaques d'immatriculation,
détection de tumeurs sur des scanners médicaux, modération automatique de contenu sur les réseaux sociaux,
réalité augmentée...
Les réseaux récurrents (RNN)
Les CNN sont parfaits pour les images, mais les données ne sont pas toujours statiques.
Le texte, la parole, la musique, les cours de bourse... ce sont des séquences où l'ordre a de l'importance.
Le mot "pas" dans "ce n'est pas bon" change complètement le sens de la phrase.
Les réseaux récurrents (RNN) ont été conçus pour traiter ces séquences.
Ils possèdent une forme de mémoire : le résultat du traitement d'un élément influence le traitement de l'élément suivant.
Leurs versions améliorées, les LSTM (Long Short-Term Memory) et les GRU (Gated Recurrent Unit), ont permis
les premiers systèmes de traduction automatique, les assistants vocaux (Siri, Google Assistant),
la génération de sous-titres automatiques et la prédiction de séries temporelles.
Mais les RNN avaient un défaut majeur : ils traitaient les données mot par mot, séquentiellement.
Impossible de paralléliser le calcul. Plus la séquence était longue, plus c'était lent,
et plus le réseau oubliait le début.
Le Transformer : la révolution de 2017
En 2017, des chercheurs de Google publient un article intitulé "Attention Is All You Need".
Ils proposent une nouvelle architecture : le Transformer.
L'idée centrale est le mécanisme d'attention.
Au lieu de lire une séquence mot par mot, le Transformer regarde tous les mots en même temps
et calcule l'importance de chaque mot par rapport à tous les autres.
Prenons la phrase : "Le chat qui dormait sur le canapé a sauté sur la table."
Quand le modèle traite le verbe "a sauté", le mécanisme d'attention lui permet de comprendre
que le sujet est "le chat", et non "le canapé".
Chaque mot prête attention aux mots qui sont pertinents pour lui.
Ce mécanisme résout d'un coup les deux problèmes des RNN :
- La parallélisation : comme tous les mots sont traités simultanément, on peut exploiter la puissance des GPU pour accélérer massivement le calcul.
- La mémoire longue : chaque mot peut directement accéder à n'importe quel autre mot de la séquence, même très éloigné.
Bien qu'elles soient toujours considérées comme des réseaux de neurones,
les architectures modernes comme les Transformers s'éloignent du schéma
simplifié du neurone connecté à ses voisins.
Elles manipulent surtout des vecteurs et de grandes matrices de nombres,
et organisent le calcul en blocs successifs spécialisés.
C'est pour cette raison que nous parlions précédemment d'"unités de calcul"
plutôt que simplement de neurones : dans les modèles modernes,
l'abstraction pertinente n'est plus toujours le neurone individuel,
mais des blocs mathématiques plus complexes.
Mais le principe fondamental reste le même : des couches empilées,
des paramètres numériques appris à partir des données,
et une transformation progressive de l'information jusqu'à produire une prédiction.
Le Transformer est l'architecture qui a rendu possible les modèles de langage modernes.
BERT (Google, 2018), GPT (OpenAI, depuis 2018), Claude (Anthropic), LLaMA (Meta)...
tous sont basés sur des Transformers.
Les Transformers ne se limitent pas au texte. Ils ont aussi révolutionné la vision par ordinateur
(les Vision Transformers ou ViT), la génération d'images, la prédiction de structures de protéines
(AlphaFold de DeepMind, qui a résolu un problème vieux de 50 ans en biologie)
et bien d'autres domaines.
La puissance de calcul : le nerf de la guerre
Les réseaux de neurones profonds nécessitent une puissance de calcul colossale, principalement pour l'entraînement.
Un GPU (Graphics Processing Unit) est un processeur conçu à l'origine pour les jeux vidéo.
Sa particularité : il peut effectuer des milliers de calculs simples en parallèle,
là où un CPU classique (le processeur central de ton ordinateur) excelle dans les calculs complexes
mais séquentiels.
Or, entraîner un réseau de neurones consiste essentiellement à faire des millions de multiplications
de matrices, exactement le type de calcul pour lequel les GPU sont optimisés.
NVIDIA, le leader des GPU, a vu sa valeur boursière exploser grâce à la demande en IA.
Ses puces les plus avancées coûtent entre 25 000 et 40 000 dollars l'unité,
et les grandes entreprises d'IA en achètent des dizaines de milliers.
Pour entraîner un modèle comme GPT-4, il faut mobiliser des milliers de GPU pendant plusieurs mois.
Le coût est estimé à plus de 100 millions de dollars. C'est pour ça que seule une poignée d'entreprises
dans le monde sont capables de créer les modèles les plus puissants : OpenAI, Google, Anthropic, Meta, Mistral...
En revanche, utiliser un modèle déjà entraîné demande beaucoup moins de ressources.
C'est pourquoi tu peux poser une question à ChatGPT depuis ton navigateur et obtenir une réponse en quelques secondes.
Transfer learning : ne pas repartir de zéro
Entraîner un modèle de deep learning de zéro coûte cher et prend du temps.
Mais il existe un raccourci très puissant : le transfer learning (apprentissage par transfert).
L'idée est simple : prendre un modèle déjà entraîné sur un problème général
et l'adapter à un problème spécifique avec peu de données supplémentaires.
Par exemple, un modèle de vision entraîné sur des millions de photos a déjà appris
à détecter des contours, des textures et des formes.
Si tu veux l'utiliser pour détecter des défauts sur des pièces industrielles,
tu n'as pas besoin de lui réapprendre ce qu'est un contour.
Tu prends le modèle existant, tu remplaces la dernière couche et tu le réentraînes
avec quelques centaines de photos de pièces défectueuses.
Le transfer learning a démocratisé le deep learning.
Avant, seules les grandes entreprises pouvaient en bénéficier.
Aujourd'hui, une startup peut prendre un modèle open source pré-entraîné
et l'adapter à son cas d'usage en quelques heures avec un seul GPU.
C'est aussi le principe derrière le fine-tuning des modèles de langage :
prendre un modèle général (comme GPT ou LLaMA) et le spécialiser sur des données métier.
Une entreprise peut fine-tuner un modèle pour qu'il comprenne son jargon interne,
ses produits et ses processus, sans avoir à construire un modèle de langage de zéro.
Les limites du deep learning
Le deep learning est puissant, mais il n'est pas la solution à tout :
- La gourmandise en données : les réseaux profonds ont besoin de beaucoup de données. Pour des domaines où les exemples sont rares (maladies rares, événements exceptionnels), le machine learning classique reste souvent plus adapté.
- Le coût : l'entraînement et le fonctionnement des gros modèles consomment énormément d'énergie. Un seul entraînement d'un grand modèle de langage peut émettre autant de CO2 que plusieurs vols transatlantiques aller-retour. C'est un vrai sujet environnemental et économique.
- L'opacité : un réseau de neurones avec des milliards de paramètres est une boîte noire. On peut observer ce qui entre et ce qui sort, mais comprendre pourquoi il prend telle décision reste un défi. C'est d'ailleurs un domaine de recherche à part entière : l'explicabilité (XAI).
- La fragilité : des modifications imperceptibles sur une image (changer quelques pixels) peuvent tromper un réseau de neurones et lui faire confondre un panneau stop avec une limitation de vitesse. Ce type d'attaque, appelé adversarial attack, est un vrai sujet pour les systèmes critiques.
Le deep learning est un outil extraordinaire, mais comme tout outil, il faut savoir quand l'utiliser et quand préférer une approche plus simple. Si deux modèles font des prédictions équivalentes, un arbre de décision explicable sera toujours préférable à un réseau de neurones qu'on ne comprend pas.
