Suivez nous sur
Classe de maître IA :

AI 101

Qu'est-ce que le Deep Learning?

mm
Le kit de préparation mis à jour on

L’apprentissage profond est l’un des domaines les plus influents et à la croissance la plus rapide de l’intelligence artificielle. Cependant, il peut être difficile d’avoir une compréhension intuitive du deep learning, car le terme deep learning recouvre une variété d’algorithmes et de techniques différents. L'apprentissage profond est également une sous-discipline de l'apprentissage automatique en général. Il est donc important de comprendre ce qu'est l'apprentissage automatique afin de comprendre l'apprentissage profond.

Qu'est-ce que l'apprentissage par machine?

L'apprentissage en profondeur est une extension de certains des concepts issus de l'apprentissage automatique, donc pour cette raison, prenons une minute pour expliquer ce qu'est l'apprentissage automatique.

En termes simples, l'apprentissage automatique est une méthode permettant aux ordinateurs d'effectuer des tâches spécifiques sans coder explicitement chaque ligne des algorithmes utilisés pour accomplir ces tâches. Il existe de nombreux algorithmes d'apprentissage automatique différents, mais l'un des algorithmes les plus couramment utilisés est un perceptron multicouche. Un perceptron multicouche est également appelé réseau de neurones et se compose d'une série de nœuds/neurones reliés entre eux. Il existe trois couches différentes dans un perceptron multicouche : la couche d'entrée, la couche cachée et la couche de sortie.

La couche d'entrée amène les données dans le réseau, où elles sont manipulées par les nœuds de la couche médiane/cachée. Les nœuds de la couche cachée sont des fonctions mathématiques qui peuvent manipuler les données provenant de la couche d'entrée, en extrayant des modèles pertinents des données d'entrée. C'est ainsi que le réseau de neurones "apprend". Les réseaux de neurones tirent leur nom du fait qu'ils s'inspirent de la structure et du fonctionnement du cerveau humain.

Les connexions entre les nœuds du réseau ont des valeurs appelées poids. Ces valeurs sont essentiellement des hypothèses sur la façon dont les données d'une couche sont liées aux données de la couche suivante. Au fur et à mesure que le réseau s'entraîne, les pondérations sont ajustées, et l'objectif est que les pondérations/hypothèses sur les données convergent finalement vers des valeurs qui représentent avec précision les modèles significatifs au sein des données.

Des fonctions d'activation sont présentes dans les nœuds du réseau, et ces fonctions d'activation transforment les données de manière non linéaire, permettant au réseau d'apprendre des représentations complexes des données. Les fonctions d'activation multiplient les valeurs d'entrée par les valeurs de poids et ajoutent un terme de biais.

Qu'est-ce que le Deep Learning?

L'apprentissage en profondeur est le terme donné aux architectures d'apprentissage automatique qui relient de nombreux perceptrons multicouches, de sorte qu'il n'y a pas qu'une seule couche cachée mais plusieurs couches cachées. Plus le réseau neuronal profond est "profond", plus le réseau peut apprendre des modèles sophistiqués.

Les réseaux de couches profondes composés de neurones sont parfois appelés réseaux entièrement connectés ou couches entièrement connectées, faisant référence au fait qu'un neurone donné maintient une connexion avec tous les neurones qui l'entourent. Des réseaux entièrement connectés peuvent être combinés avec d'autres fonctions d'apprentissage automatique pour créer différentes architectures d'apprentissage en profondeur.

Différents types d'apprentissage en profondeur

Il existe une variété d'architectures d'apprentissage en profondeur utilisées par les chercheurs et les ingénieurs, et chacune des différentes architectures a son propre cas d'utilisation spécialisé.

Réseaux de neurones convolutionnels

Réseaux de neurones convolutifs, ou CNN, sont l'architecture de réseau neuronal couramment utilisée dans la création de systèmes de vision par ordinateur. La structure des réseaux de neurones convolutifs leur permet d'interpréter les données d'image, en les convertissant en nombres qu'un réseau entièrement connecté peut interpréter. Un CNN comporte quatre composants principaux :

  • Couches convolutives
  • Couches de sous-échantillonnage/regroupement
  • Fonctions d'activation
  • Couches entièrement connectées

Les couches convolutionnelles sont ce qui prend les images comme entrées dans le réseau, analysant les images et obtenant les valeurs des pixels. Le sous-échantillonnage ou le regroupement est l'endroit où les valeurs d'image sont converties/réduites pour simplifier la représentation des images et réduire la sensibilité des filtres d'image au bruit. Les fonctions d'activation contrôlent la façon dont les données circulent d'une couche à la suivante, et les couches entièrement connectées analysent les valeurs qui représentent l'image et apprennent les modèles contenus dans ces valeurs.

RNN/LSTM

Réseaux de neurones récurrents, ou RNN, sont populaires pour les tâches où l'ordre des données est important, où le réseau doit connaître une séquence de données. Les RNN sont couramment appliqués à des problèmes tels que le traitement du langage naturel, car l'ordre des mots est important lors du décodage du sens d'une phrase. La partie « récurrente » du terme réseau de neurones récurrents vient du fait que la sortie d'un élément donné dans une séquence dépend du calcul précédent ainsi que du calcul en cours. Contrairement à d’autres formes de réseaux neuronaux profonds, les RNN ont des « mémoires » et les informations calculées aux différents pas de temps de la séquence sont utilisées pour calculer les valeurs finales.

Il existe plusieurs types de RNN, y compris les RNN bidirectionnels, qui prennent en compte les éléments futurs de la séquence, en plus des éléments précédents, lors du calcul de la valeur d'un élément. Un autre type de RNN est un Mémoire longue à court terme ou LSTM, réseau. Les LSTM sont des types de RNN qui peuvent gérer de longues chaînes de données. Les RNN réguliers peuvent être victimes de ce qu'on appelle le "problème de gradient explosif". Ce problème se produit lorsque la chaîne de données d'entrée devient extrêmement longue, mais les LSTM disposent de techniques pour lutter contre ce problème.

Codeurs automatiques

La plupart des architectures d’apprentissage profond mentionnées jusqu’à présent sont appliquées à des problèmes d’apprentissage supervisé plutôt qu’à des tâches d’apprentissage non supervisé. Les auto-encodeurs sont capables de transformer des données non supervisées en un format supervisé, permettant ainsi d'utiliser des réseaux de neurones pour résoudre le problème.

Codeurs automatiques sont fréquemment utilisés pour détecter des anomalies dans des ensembles de données, un exemple d'apprentissage non supervisé car la nature de l'anomalie n'est pas connue. De tels exemples de détection d'anomalies incluent la détection de fraude pour les institutions financières. Dans ce contexte, le but d'un auto-encodeur est de déterminer une base de modèles réguliers dans les données et d'identifier les anomalies ou les valeurs aberrantes.

La structure d'un auto-encodeur est souvent symétrique, avec des couches cachées disposées de telle sorte que la sortie du réseau ressemble à l'entrée. Les quatre types d'encodeurs automatiques fréquemment utilisés sont :

  • Encodeurs automatiques réguliers/simples
  • Encodeurs multicouches
  • Codeurs convolutifs
  • Encodeurs régularisés

Les encodeurs automatiques réguliers/plains ne sont que des réseaux de neurones avec une seule couche cachée, tandis que les encodeurs automatiques multicouches sont des réseaux profonds avec plus d'une couche cachée. Les auto-encodeurs convolutifs utilisent des couches convolutives à la place ou en plus de couches entièrement connectées. Les auto-encodeurs régularisés utilisent un type spécifique de fonction de perte qui permet au réseau de neurones d'effectuer des fonctions plus complexes, des fonctions autres que la simple copie des entrées vers les sorties.

Réseaux d'adversaires génératifs

Réseaux Génératifs d'Adversariat (GAN) sont en fait plusieurs réseaux de neurones profonds au lieu d'un seul réseau. Deux modèles d'apprentissage en profondeur sont formés en même temps et leurs sorties sont transmises à l'autre réseau. Les réseaux sont en concurrence les uns avec les autres, et puisqu'ils ont accès aux données de sortie de l'autre, ils apprennent tous les deux de ces données et s'améliorent. Les deux réseaux jouent essentiellement à un jeu de contrefaçon et de détection, où le modèle génératif tente de créer de nouvelles instances qui tromperont le modèle détective/le discriminateur. Les GAN sont devenus populaires dans le domaine de la vision par ordinateur.

Résumé de l'apprentissage en profondeur

L'apprentissage en profondeur étend les principes des réseaux de neurones pour créer des modèles sophistiqués capables d'apprendre des modèles complexes et de généraliser ces modèles à de futurs ensembles de données. Les réseaux de neurones convolutifs sont utilisés pour interpréter les images, tandis que les RNN/LSTM sont utilisés pour interpréter les données séquentielles. Les auto-encodeurs peuvent transformer des tâches d'apprentissage non supervisées en tâches d'apprentissage supervisées. Enfin, les GAN sont de multiples réseaux opposés les uns aux autres qui sont particulièrement utiles pour les tâches de vision par ordinateur.