Qu’est-ce que le deep learning ?

Qu’est-ce que le deep learning ?

L’apprentissage profond est une sous-catégorie de machine learning piloté par des réseaux neuronaux multicouches dont la conception est inspirée de la structure du cerveau humain. Les modèles d’apprentissage profond alimentent aujourd’hui la plupart des intelligences artificielles (IA) de pointe, de la vision par ordinateur à l’IA générative, en passant par les voitures autonomes et la robotique.

Contrairement à la logique mathématique explicitement définie des algorithmes de machine learning traditionnels, les réseaux neuronaux artificiels des modèles d’apprentissage profond comprennent de nombreuses couches interconnectées de « neurones » qui effectuent chacun une opération mathématique. En utilisant le machine learning pour ajuster la force des connexions entre les neurones individuels des couches adjacentes (en d’autres termes, les poids et les biais du modèle variables), le réseau peut être optimisé pour obtenir des résultats plus précis. Bien que les réseaux neuronaux et l’apprentissage profond soient inextricablement associés, ils ne sont pas strictement synonymes : l’« apprentissage profond » fait référence à l’entraînement de modèles comportant au moins 4 couches (bien que les architectures de réseaux neuronaux modernes soient souvent beaucoup plus « profondes » que cela).

C’est cette structure distribuée, très flexible et ajustable qui explique la puissance et la polyvalence incroyables de l’apprentissage profond. Imaginez les données d’entraînement sous forme de points de données éparpillés sur un graphique bidimensionnel, et l’objectif de l’entraînement des modèles est de trouver une droite passant par chacun de ces points de données. Essentiellement, le machine learning traditionnel vise à accomplir cela en utilisant une fonction mathématique unique qui donne une seule ligne (ou courbe). L’apprentissage profond, quant à lui, peut rassembler un nombre arbitraire de lignes plus petites, ajustables individuellement, pour former la forme souhaitée. Les réseaux neuronaux profonds sont des approximateurs universels : il a été prouvé théoriquement que pour toute fonction, il existe un agencement de réseau neuronal capable de la reproduire.1

Les modèles d’apprentissage profond sont le plus souvent entraînés par un apprentissage supervisé sur des données étiquetées pour effectuer des tâches de régression et de classification. Mais comme les réseaux neuronaux à grande échelle nécessitent généralement une quantité massive de données d’entraînement pour atteindre des performances optimales, le coût et la main-d’œuvre nécessaires à l’acquisition de jeux de données suffisamment importants d’exemples d’entraînement annotés peuvent être exorbitants. Cela a conduit au développement de techniques permettant de reproduire des tâches d’apprentissage supervisé à l’aide de données non étiquetées . Le terme d’apprentissage auto-supervisé a été inventé par Yann LeCun à la fin des années 2010 pour lever l’ambiguïté de ces méthodes de l’apprentissage non supervisé traditionnel. L’apprentissage auto-supervisé est depuis devenu un mode de formation prédominant pour les réseaux neuronaux, en particulier pour les modèles de fondation qui sous-tendent l’IA générative.

Bien que les réseaux neuronaux (ou concepts analogues) aient été introduits par les data scientists au début de l’histoire du machine learning, leur percée n’a véritablement commencé qu’à la fin des années 2000 et au début des années 2010. L’avènement des réseaux d’apprentissage profond dans la plupart des sous-ensembles de machine learning a été rendu possible en partie par les progrès des unités de traitement graphique (GPU) hautes performances qui ont permis le traitement parallèle d’énormes quantités d’étapes de calcul. Parce que le deep learning nécessite une puissance de calcul considérable à la fois pour l’entraînement et l’inférence, ces avancées matérielles ont considérablement augmenté la rapidité et la commodité de la mise en œuvre de modèles d’apprentissage profond à grande échelle.

Comment fonctionne le deep learning

Les réseaux neuronaux artificiels sont, d’une manière générale, inspirés du fonctionnement des circuits neuronaux du cerveau humain, dont le fonctionnement est piloté par la transmission complexe de signaux chimiques et électriques à travers des réseaux distribués de cellules neuronales (neurones). Dans l’apprentissage profond, les signaux analogues sont les productions pondérées de nombreuses opérations mathématiques imbriquées, chacune réalisée par un neurone artificiel (ou nœud), qui constituent collectivement les réseaux neuronaux.

En bref, un modèle d’apprentissage profond peut être compris comme une série complexe d’équations imbriquées qui associent une entrée à une sortie. L’ajustement de l’influence relative des équations individuelles au sein de ce réseau à l’aide de processus de machine learning spécialisés peut, à son tour, modifier la façon dont le réseau associe les entrées aux sorties.

Bien que ce cadre des exigences soit très puissant et polyvalent, il se fait au détriment de l’interprétabilité. Il y a souvent peu, voire pas d’explication intuitive (au-delà d’une explication mathématique brute) sur la façon dont les valeurs des paramètres de modèle individuels appris par un réseau neuronal reflètent les caractéristiques réelles des données. Pour cette raison, les modèles de deep learning sont souvent appelés « boîtes noires », en particulier lorsqu’ils sont comparés aux types traditionnels de modèles de machine learning éclairés par l’ingénierie des caractéristiques manuelle.

Par rapport aux techniques classiques du machine learning, l’apprentissage profond nécessite une quantité extrêmement importante de données et de ressources de calcul pour son entraînement. Compte tenu du coût et de la complexité du matériel de niveau entreprise nécessaire pour développer et mettre en œuvre des applications sophistiquées d’apprentissage profond, les services de cloud computing font désormais partie intégrante de l’écosystème de l’apprentissage profond.

Structure de réseau neuronal profond

Les réseaux neuronaux artificiels comprennent des couches interconnectées de « neurones » artificiels (ou nœuds), chacun effectuant sa propre opération mathématique (appelée «  fonction d’activation »). Il existe de nombreuses fonctions d’activation différentes. Un réseau neuronal intègre souvent plusieurs fonctions d’activation dans sa structure, mais généralement, tous les neurones d’une couche donnée du réseau sont configurés pour réaliser la même fonction d’activation. Dans la plupart des réseaux neuronaux, chaque neurone de la couche d’entrée est connecté à chacun des neurones de la couche suivante, qui sont eux-mêmes connectés aux neurones de la couche qui suit, et ainsi de suite.

La sortie de la fonction d’activation de chaque nœud contribue en partie à l’entrée fournie à chacun des nœuds de la couche suivante. Les fonctions activation exécutées à chaque nœud sont non linéaires, ce qui permet au réseau de neurones de modéliser des schémas et des dépendances complexes. C’est l’utilisation de fonctions d’activation non linéaires qui distingue un réseau neuronal profond d’un modèle de régression linéaire (très complexe).

Bien que certaines architectures spécialisées, comme les modèles mélange d’experts ou les réseaux neuronaux convolutifs, apportent des variations ou des ajouts à cette organisation simple, tous les réseaux neuronaux reposent sur cette structure de base. Le nombre spécifique de couches, le nombre de nœuds dans chaque couche et les fonctions d’activation choisies pour les nœuds de chaque couche sont des hyperparamètres à déterminer manuellement avant l’entraînement.

Diagramme d’un réseau neuronal avec trois couches masquées : couche d’entrée, plusieurs couches masquées, couche de sortie Un réseau neuronal à propagation avant standard avec 3 couches masquées.

Chacune de ces myriades de connexions de neurone à neurone est multipliée par un poids unique, qui amplifie (ou diminue) l’influence de chaque connexion. L’entrée fournie à la fonction d’activation de chaque neurone peut être comprise comme la somme pondérée des sorties de chaque neurone de la couche précédente. En général, un terme de biais unique est également ajouté à chaque fonction d’activation, qui fonctionne de manière similaire au terme de biais d’une fonction de régression commune.

Pendant l’entraînement, le réseau neuronal « apprend » en ajustant chacun de ces poids et termes de biais qui produisent des productions plus précises. Voici les paramètres du modèle  : lorsque vous lisez, par exemple, sur un grand modèle de langage (LLM) comptant 8 milliards de « paramètres», ce nombre reflète chaque connexion de neurone à neurone pondérée et le biais spécifique à un neurone dans le réseau neuronal du modèle.

Les couches intermédiaires, appelées couches masquées du réseau, sont celles où se produit la majeure partie de l’apprentissage. C’est l’inclusion de plusieurs couches masquées qui distingue un modèle d’apprentissage profond d’un réseau de neurones « non profond », comme une machine Boltzmann restreinte (RBN) ou un perceptron multicouche standard (MLP). La présence de plusieurs couches cachées permet à un modèle d’apprentissage profond d’apprendre des fonctionnalités hiérarchiques complexes de données, les couches antérieures identifiant des modèles plus larges et les couches plus profondes identifiant des modèles plus granulaires.

Pour effectuer l’inférence, le réseau effectue un passage avant: la couche d’entrée reçoit les données d’entrée, généralement sous la forme d’un plongement vectoriel avec chaque neurone d’entrée traitant une fonctionnalité individuelle de l’entrée du vecteur. Par exemple, un modèle qui traite des images en niveaux de gris de 10x10 pixels aura typiquement 100 neurones dans sa couche d’entrée, chaque neurone correspondant à un pixel individuel. Les réseaux neuronaux exigent donc généralement que les vecteurs d’entrée soient fixés à une certaine taille, bien que les techniques de prétraitement telles que le pooling ou la normalisation puissent offrir une certaine flexibilité en ce qui concerne la taille des données d’entrée d’origine elles-mêmes.

Les données sont progressivement transformées et transmises aux nœuds de chaque couche suivante jusqu’à la couche finale. Les fonctions d’activation des neurones de la couche de sortie calculent la prédiction de sortie finale du réseau. Par exemple, chaque nœud de sortie d’un modèle de classification approfondie peut exécuter une fonction softmax qui prend essentiellement une entrée numérique et la met à l’échelle jusqu’à une probabilité comprise entre 0 et 1, pour que l’entrée appartienne à une catégorie de classification potentielle. Le modèle génèrera ensuite la catégorie correspondant au nœud de sortie ayant généré la sortie la plus élevée.

Entraînement des réseaux neuronaux profonds

Bien que le potentiel théorique des réseaux neuronaux ait toujours été évident, on ne savait pas au départ comment entraîner efficacement les réseaux neuronaux. L’objectif de l’optimisation des paramètres du modèle par l’entraînement est de réduire l’erreur des productions finales du réseau, mais il est extrêmement peu pratique d’isoler et de calculer séparément dans quelle mesure chacun des milliers, voire des millions ou des milliards de poids interconnectés d’un réseau neuronal a contribué à l’erreur globale.

Cet obstacle a été surmonté grâce à l’introduction de deux algorithmes essentiels : la rétropropagation et la descente de gradient.

Rétropropagation

La rétropropagation, abréviation de « rétropropagation d’erreur », est une méthode élégante pour calculer comment les changements de poids individuels ou de biais dans un réseau neuronal peuvent affecter la précision des prédictions du modèle.

Rappelons qu’un réseau neuronal artificiel est essentiellement une série de fonctions mathématiques imbriquées : les productions des neurones d’une couche servent d’entrées aux neurones de la couche suivante, et ainsi de suite. Pendant l’entraînement, ces équations interconnectées sont imbriquées dans une autre fonction : une fonction de perte qui mesure la différence moyenne (ou « perte ») entre la sortie souhaitée (ou « vérité terrain ») pour une entrée donnée et la sortie réelle du réseau neuronal pour chaque passage avant.

Une fois les hyperparamètres initiaux du modèle déterminés, l’entraînement commence généralement par une initialisation aléatoire des paramètres du modèle. Le modèle fait des prédictions sur un lot d’exemples tirés du jeu de données d’entraînement et la fonction de perte suit l’erreur de chaque prédiction. L’objectif de l’entraînement est d’optimiser les paramètres de manière itérative jusqu’à ce que la perte moyenne soit réduite en dessous d’un seuil acceptable.

La rétropropagation implique un seul passage arrière de bout en bout à travers le réseau, en commençant par la sortie de la fonction de perte et en remontant jusqu’à la couche d’entrée. En utilisant la règle de la chaîne de calcul, la rétropropagation calcule le « gradient » de la fonction de perte : un vecteur de dérivées partielles de la fonction de perte par rapport à chaque variable de chaque équation qui finit par s’imbriquer dans le calcul de la fonction de perte. En d’autres termes, elle décrit comment l’augmentation ou la diminution de la sortie de la fonction d’activation d’un neurone individuel affectera la perte globale, qui, par extension, décrit comment toute modification des poids par lesquels ces sorties sont multipliées (ou aux termes de biais ajoutés vers ces sorties) augmentera ou diminuera la perte.

Descente de gradient

Le gradient calculé lors de la rétropropagation sert ensuite d’entrée à un algorithme de descente de gradient.

Descendre le gradient de la fonction de perte diminuera la perte (et augmentera ainsi la précision). Comme le gradient calculé lors de la rétropropagation contient les dérivées partielles de la fonction de perte par rapport à chaque paramètre du modèle, nous savons dans quelle direction « ajuster » la valeur de chaque paramètre afin de réduire la perte.

Chaque étape implique une mise à jour des paramètres du modèle et reflète son « apprentissage » à partir de ses données d’entraînement. Notre objectif est de mettre à jour les poids de manière itérative jusqu’à ce que nous ayons atteint le gradient minimum. L’objectif des algorithmes de descente de gradient est de trouver les ajustements de paramètres spécifiques qui nous feront descendre le gradient de manière la plus efficace possible.

Mise en œuvre de modèles d’apprentissage profond

Il existe un certain nombre de cadres open source pour développer des modèles d’apprentissage profond, qu’il s’agisse d’entraîner un modèle à partir de zéro ou d’effectuer un réglage fin d’un modèle pré-entraîné. Ces bibliothèques de machine learning offrent une variété de modules et de flux de travail préconfigurés pour la construction, l’entraînement et l’évaluation des réseaux neuronaux, ce qui simplifie et rationalise le processus de développement

Parmi les cadres open source les plus populaires pour travailler avec des algorithmes d’apprentissage profond, citons PyTorch, TensorFlow et, en particulier pour les LLM, la bibliothèque Hugging Face Transformers. Il est recommandé d’apprendre le langage Python avant de travailler avec ces frameworks.

Types de modèles de deep learning

Malgré leur puissance et leur potentiel inhérents, des performances adéquates sur certaines tâches restent soit impossibles, soit peu pratiques pour les réseaux neuronaux conventionnels. Au cours des dernières décennies, plusieurs innovations ont été apportées à l’architecture standard des réseaux neuronaux, chacune visant à améliorer la performance pour des tâches et des types de données particuliers.

Il convient de noter qu’un type donné de réseau neuronal peut se prêter à plusieurs types de modèles d’apprentissage profond, et vice versa. Par exemple, un modèle d’auto-encodeur utilisé pour les tâches d’image peut utiliser une architecture basée sur un réseau neuronal convolutif ; les modèles de diffusion peuvent utiliser des architectures basées sur des CNN ou sur des transformateurs.

Réseaux neuronaux convolutifs (CNN)

Les réseaux neuronaux convolutifs (CNN) sont principalement (mais pas exclusivement) associés aux tâches de vision par ordinateur telles que la détection d’objets, la reconnaissance d’images, la classification et la segmentation des images, car ils excellent dans la reconnaissance de formes « locales » (telles que les relations entre pixels adjacents dans une image).

L’intuition derrière le développement des CNN était que pour certaines tâches et modalités de données, comme la classification d’images haute résolution avec des centaines ou des milliers de pixels, les réseaux neuronaux de taille suffisante comprenant uniquement des couches standard et entièrement connectées auraient beaucoup trop de paramètres pour bien généraliser les nouvelles données après l’entraînement. En d’autres termes, ils seraient inefficaces en termes de calcul et enclins à sur-ajuster les données d’entraînement plutôt que d’apprendre des modèles véritablement utiles dans le monde réel.

En théorie, un réseau neuronal capable de détecter des formes distinctes et d’autres fonctionnalité significatives pourrait économiser de la puissance en extrayant ces fonctionnalités de l’image brute pour un traitement ultérieur (et en supprimant les informations sur les régions de l’image sans fonctionnalité significatives). Une façon d’y parvenir serait d’utiliser des filtres : de petits tableaux bidimensionnels de nombres dont les valeurs correspondent à la forme de la fonctionnalité utile. Par exemple, les valeurs d’un filtre qui analyse les pixels d’une image pour en extraire les coins supérieurs peuvent ressembler à ceci :

 [1010101010100000100000100000100000]


Imaginez maintenant que le filtre 5 x 5 soit multiplié par une grille 5 x 5 de pixels dans une image en entrée. En langage mathématique, on parle de convolution : une opération mathématique dans laquelle une fonction modifie (ou convolue) une deuxième fonction. Si les valeurs de pixel ressemblent à celles du filtre, le produit de cette multiplication (le produit scalaire) sera grand et la fonctionnalité que ces pixels représentent sera capturée. Sinon, le produit scalaire sera petit et les pixels ignorés.

 

Diagramme d’une convolution dans un réseau neuronal convolutif avec une petite section des valeurs de pixel d’une image (à gauche) multipliées par un filtre de convolution (au milieu), donnant une représentation dimensionnelle inférieure des pixels d’origine (à droite) qui reflète comment les pixels d’origine ressemblent aux informations représentées par le filtre Une petite section des valeurs de pixel d’une image (à gauche) est multipliée par un filtre de convolution (au milieu), donnant une représentation de dimension inférieure des pixels d’origine (à droite) qui reflète comment les pixels d’origine ressemblent aux informations représentées par le filtre.

Les CNN ajoutent des couches de convolution, contenant beaucoup moins de nœuds que les couches standard entièrement connectées qui agissent comme de tels filtres. Plutôt que d’exiger un nœud unique (avec un poids unique) correspondant à chaque pixel individuel de l’image, le filtre d’une couche de convolution avance sur l’ensemble de l’image, traitant une grille de pixels de la taille correspondante à la fois. Cela permet non seulement d’extraire des informations utiles, mais aussi de réduire considérablement le nombre de paramètres de modèle uniques nécessaires au traitement de l’image entière.

Les CNN sont généralement beaucoup plus « profonds » (en termes de nombre de couches) que les réseaux neuronaux standard, mais, comme les couches de convolution contiennent relativement peu de neurones, ils sont toujours efficaces en termes de nombre total de paramètres. Au fur et à mesure que les données traversent le CNN, chaque couche convolutive extrait des caractéristiques de plus en plus granulaires, assemblant une « carte des caractéristiques ». La carte des caractéristiques finale est finalement transmise à une couche standard entièrement connectée qui effectue les prédictions finales. Lors de l’entraînement, le modèle apprend naturellement les poids des couches de convolution, qui permettent aux filtres de capturer des fonctionnalités permettant d’obtenir des résultats précis.

Réseaux de neurones récurrents (RNN)

Les réseaux neuronaux récurrents (RNN) sont utilisés pour les tâches impliquant des données séquentielles, telles que la prévision de séries temporelles, la reconnaissance vocale ou le traitement automatique du langage naturel (NLP).

Alors que les réseaux neuronaux à propagation avant conventionnels mappent une seule entrée à une seule sortie, les RNN mappent une séquence d’entrées à une sortie en opérant dans une boucle récurrente dans laquelle la sortie d’une étape donnée de la séquence d’entrée sert d’entrée au calcul de la sortie pour l’étape suivante. En effet, cela crée une « mémoire » interne des entrées passées, appelée « état caché ». Mis à jour après chaque intervalle de temps, cet état caché permet à un RNN de conserver une compréhension du contexte et de l’ordre.

Bien que la notion d’une seule couche « enroulée » soit utile pour comprendre le concept, cette récurrence peut également être comprise comme des données traversant une série de plusieurs couches qui partagent des poids identiques.

Diagramme d’un réseau neuronal récurrent Un RNN, affiché sous forme « enroulé » et « non-enroulé »

Cela entraîne certaines lacunes fondamentales des RNN conventionnels, notamment en ce qui concerne l’entraînement. Rappelons que la rétropropagation calcule le gradient de la fonction de perte, qui détermine comment chaque paramètre de modèle individuel doit être augmenté ou diminué. Lorsque chacune de ces mises à jour de paramètres est répétée sur un trop grand nombre de couches récurrentes «  identiques », elles évoluent de manière exponentielle : l’agrandissement des paramètres peut entraîner l’explosion du gradient et la minimisation des paramètres peut faire disparaître les gradients. Ces deux problèmes peuvent perturber l’entraînement, le ralentir ou même l’interrompre. Les RNN standard sont donc limités au traitement de séquences relativement courtes.

Diverses améliorations apportées à l’architecture RNN de base, telles que les réseaux de mémoire à long terme (LSTM) ou les unités récurrentes fermées (GRU), atténuent ces problèmes et augmentent la capacité du modèle à modéliser des dépendances à longue distance.

Auto-encodeurs

Les auto-encodeurs sont conçus pour comprimer (ou coder) les données d’entrée, puis reconstruire (décoder) l’entrée originale à l’aide de cette représentation comprimée. Lors de l’entraînement, ils sont optimisés pour minimiser la perte de reconstruction : la divergence entre le point de données reconstruit et les données d’entrée d’origine. Bien que ce type d’apprentissage profond utilise des données non étiquetées, des données non structurées, les auto-encodeurs sont généralement considérés comme un exemple archétypique de l’apprentissage auto-supervisé.

Schéma d’un auto-encodeur

En substance, cela oblige le modèle à apprendre des poids, ce qui permet à la représentation compressée de ne conserver que le sous-ensemble le plus essentiel et le plus significatif des fonctionnalités des données d’entrée. Dans le langage du machine learning, les auto-encodeurs modélisent l’espace latent.

Les auto-encodeurs s’utilisent à de nombreux cas d’utilisation, tels que la compression de données, la réduction de la dimensionnalité, l’extraction de caractéristiques, le débruitage des données corrompues et la détection des fraudes.

Dans la plupart des cas, le réseau du décodeur sert uniquement à entraîner l’encodeur et est supprimé après l’entraînement. Dans les auto-encodeurs variationnels (VAE), un type de modèle génératif, le décodeur est conservé et utilisé pour générer de nouveaux points de données en ajoutant un bruit aléatoire aux représentations latentes apprises par l’encodeur avant la reconstruction.

Modèles de transformeurs

L’avènement des modèles de transformers, introduits pour la première fois dans un article précurseur publié en 2017 par Google DeepMind et intitulé « Attention is all you Need » (PDF), a été un tournant dans l’apprentissage profond qui a conduit directement à l’ère actuelle de l’IA générative.

Comme les RNN, les transformers sont intrinsèquement conçus pour fonctionner avec des données séquentielles. La fonctionnalité déterminante des modèles de transformers est leur mécanisme d’auto-attention unique, grâce auquel les transformers tirent leur capacité impressionnante de discerner les relations (ou dépendances) entre chaque partie d’une entrée. Plus important encore, ce mécanisme d’attention permet aux transformers de se concentrer de manière sélective (ou de « faire attention ») aux parties d’une séquence d’entrée les plus pertinentes à un moment donné.

Les mécanismes d’attention ont été introduits pour la première fois dans le contexte des RNN utilisés pour la traduction automatique. Mais contrairement aux RNN, les transformers n’utilisent pas de couches récurrentes ; une architecture transformatrice utilise uniquement des couches d’attention et des couches d’alimentation directe standard, tirant parti d’une nouvelle structure inspirée de la logique des bases de données relationnelles.

Les transformers sont le plus souvent associés aux grands modèles de langage (LLM) et, par association, aux cas d’utilisation du NLP tels que la génération de texte, les chatbots et l’analyse des sentiments. Mais ce sont des modèles extrêmement polyvalents capables de traiter n’importe quelle modalité de données séquentielles, y compris les données audio ou de séries temporelles. Même les modalités de données telles que les données d’image peuvent être traitées par des transformers de vision (ViT) grâce à des solutions intelligentes pour les représenter sous forme de séquence.

Bien que les modèles de transformers aient donné des résultats exceptionnels dans presque tous les domaines de l’apprentissage profond, ils ne sont pas nécessairement le choix optimal pour tous les cas d’utilisation. Par exemple, alors que les ViT ont atteint les meilleurs classements de performance sur les benchmarks de référence pour les tâches de vision par ordinateur, les CNN sont nettement plus rapides et plus efficaces en termes de calcul. Pour des tâches telles que la détection d’objets ou la segmentation d’images, le choix entre un transformer ou un CNN se résume souvent à savoir si une application d’apprentissage profond donnée doit prioriser une précision maximale ou des commentaires en temps réel.

Modèles Mamba

Introduits pour la première fois en 2023, les modèles Mamba sont une nouvelle architecture d’apprentissage profond pour les données séquentielles. Dérivé d’une variante de modèles d’espace d’état (SSM), Mamba possède des connexions théoriques intéressantes avec les RNN, les CNN et les modèles de transformers. Plus important, Mamba partage avec les transformers la capacité de hiérarchiser sélectivement (ou de rejeter) les informations passées en fonction de leur pertinence à un moment donné, mais avec un mécanisme entièrement unique pour le faire.

À ce jour, Mamba est peut-être la seule architecture à rivaliser de manière significative avec les transformers dans le domaine des LLM, offrant des performances comparables avec une efficacité de calcul nettement supérieure grâce à son algorithme beaucoup moins gourmand en mémoire.

Réseaux antagonistes génératifs (GAN)

Comme les VAE, les réseaux antagonistes génératifs (GAN) sont des réseaux neuronaux utilisés pour créer de nouvelles données ressemblant aux données d’apprentissage d’origine. Les GAN sont une architecture conjointe qui combine deux réseaux d’apprentissage profond entraînés antagonistes dans un jeu à somme nulle.

  • Le réseau générateur crée de nouveaux points de données, tels que des images originales. Toute architecture générative capable de produire la sortie souhaitée peut être utilisée pour un réseau de générateurs GAN. Sa seule caractéristique déterminante est la façon dont il interagit avec le discriminateur, et sa seule exigence est que l’algorithme soit différentiable (et donc puisse être optimisé par la rétropropagation et la descente de gradient).

  • Le discriminateur reçoit à la fois des images « réelles » du jeu de données d’entraînement et des images « fausses » produites par le générateur, et il est chargé de déterminer si une image donnée est réelle ou fausse. Comme le générateur, le discriminateur peut prendre la forme de n’importe quelle architecture appropriée. 

  • Tout d’abord, le discriminateur est entraîné pour classer correctement les images fausses. Pendant ce temps, les poids du générateur sont gelés.

  • Ensuite, les poids du discriminateur sont gelés et les commentaires du discriminateur sont utilisés pour entraîner le générateur. Les poids du générateur sont optimisés pour obtenir des images plus susceptibles de tromper le discriminateur. 

  • Le processus se répète : le discriminateur reçoit un autre assortiment d’images « réelles » provenant des données d’entraînement et d’images « fausses » du générateur, qui sont désormais, sans doute, plus convaincantes. Le discriminateur prédit une fois de plus si chaque image est réelle ou fausse et est une fois de plus mis à jour.

  • Une fois de plus, les commentaires du discriminateur (probablement plus difficile à tromper) sont utilisés pour entraîner davantage le générateur.

  • Le processus continue de manière itérative jusqu’à ce que le discriminateur ne soit plus capable de distinguer les vrais et les faux échantillons.

Les GAN sont capables d’apprendre à produire des exemples incroyablement précis, mais la nature antagoniste du processus rend l’entraînement intrinsèquement délicat et instable.

Modèles de diffusion

Les modèles de diffusion comptent parmi les architectures de réseau de neurones les plus importantes dans l’IA générative. Ils sont à la fois pratiques et performants, offrent la stabilité d’entraînement des VAE et la fidélité en sortie des GAN. Ils sont le plus souvent utilisés pour la génération d’images, mais ils sont également capables de générer des données textuelles, vidéo et audio.

Comme les auto-encodeurs, les modèles de diffusion sont essentiellement entraînés pour détruire une image et la reconstruire ensuite avec précision, mais d’une manière totalement différente. Lors de l’entraînement, les modèles de diffusion apprennent à diffuser progressivement un point de données étape par étape avec un bruit gaussien, puis à inverser ce processus pour reconstruire l’entrée d’origine. Ils ont ainsi la possibilité de générer de nouveaux échantillons (ressemblant aux données d’apprentissage d’origine) en « débruitant » un échantillon de bruit aléatoire.

Les modèles de diffusion latente sont essentiellement un hybride de VAE et de modèles de diffusion : ils compressent d’abord (encodent) les données d’entrée dans l’espace latent, puis exécutent le processus de diffusion et transmettent le résultat à un décodeur qui le sur-échantillonne à la taille d’image souhaitée.

Alors que les modèles de diffusion utilisent généralement une architecture basée sur des CNN, en particulier l’architecture U-net utilisée en grande partie pour la segmentation dans l’imagerie médicale, certains tirent parti d’une architecture basée sur des transformers.

Réseaux de neurones graphiques

Les réseaux de neurones graphiques (GNNs) sont conçus pour les tâches qui nécessitent de modéliser des relations plus complexes entre différentes entités que ce qui est typique de la plupart des modalités de données.

Prenons l’exemple des données dans lesquelles les pixels d’une image sont organisés dans une grille à 2 dimensions : tout pixel est connecté directement à 8 pixels adjacents, au maximum. Un CNN standard est bien adapté à la modélisation de telles relations. Mais cette capacité ne s’étend pas très bien à la modélisation des relations au sein, par exemple, d’un réseau de médias sociaux dans lequel un utilisateur donné peut être connecté directement à des milliers d’autres utilisateurs et indirectement à de nombreux milliers d’autres.

La structure des réseaux de neurones graphiques permet des représentations de données plus complexes et plus irrégulières que dans le flux de données unidirectionnel de données inhérent à d’autres architectures de réseaux neuronaux.

Mixture of Experts | 12 décembre, épisode 85

Décryptage de l’IA : Tour d’horizon hebdomadaire

Rejoignez notre panel d’ingénieurs, de chercheurs, de chefs de produits et autres spécialistes de premier plan pour connaître l’essentiel de l’actualité et des dernières tendances dans le domaine de l’IA.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Conseils et services en matière d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Notes de bas de page

1 Leshno, M., Lin, V.Y., Pinkus, A. and Schocken, S. “Multilayer feedforward networks with a nonpolynomial activation function can approximate any function” (PDF). New York University, mars 1992.