Retour aux articles
  • 26.05.2021

Quels sont les algorithmes de deep learning ?

Quels sont les algorithmes de deep learning ?

Le deep learning est souvent décrit comme un réseau neuronal multicouche, mais il s'agit en réalité d'utiliser plusieurs couches pour traiter différents niveaux de caractéristiques, des caractéristiques de niveau inférieur aux caractéristiques de niveau supérieur, un peu comme une conception pyramidale de la connaissance.

 

Le Deep Learning extrait des informations d'une couche et les transmet à la couche suivante, ce qui lui permet d'affiner et d'atteindre une meilleure compréhension de ce qui est nécessaire. Le deep learning est également lié aux importantes capacités de calcul des processeurs "modernes" qui permettent de faire fonctionner des réseaux neuronaux de la taille de plusieurs millions de neurones.

 

Deep Learning = réseaux neuronaux à plusieurs couches + extraction et traitement progressifs des caractéristiques + puissance du processeur + millions de neurones.

 

 

Shallow Learning vs Deep Learning

La principale caractéristique du deep learning est que les méthodes de deep learning traitent et créent leurs propres caractéristiques directement à partir des données, tandis que le shallow learning nécessite que les développeurs écrivent du code pour extraire des caractéristiques sur la base des règles et de l'heuristique du problème cible.

Les Shallow Learners dépendent généralement des caractéristiques qui ont été conçues pour créer le modèle de classification/prédiction ou de régression, tandis que les Deep Learners sont potentiellement capables d'extraire une meilleure représentation des caractéristiques des données brutes afin de créer des modèles bien meilleurs.

Bien que les modèles de deep learning soient beaucoup plus génériques et ne nécessitent pas l'étape spécifique de l'extraction des caractéristiques, ils sont beaucoup plus complexes, beaucoup plus exigeants en termes de puissance informatique, ils ont besoin de données beaucoup plus brutes et sont donc beaucoup plus difficiles à entraîner efficacement.

Quels sont les types d'algorithmes utilisés en deep learning ?

Réseaux neuronaux convolutifs (CNN)

Les CNN, également appelés ConvNets, sont constitués de plusieurs couches et sont principalement utilisés pour le traitement d'images et la détection d'objets. 

Les CNN sont largement utilisés pour identifier des images satellites, traiter des images médicales, prévoir des séries chronologiques et détecter des anomalies.

Les CNN ont plusieurs couches qui traitent et extraient les caractéristiques des données :

Couche de convolution : Le CNN possède une couche de convolution qui comporte plusieurs filtres pour effectuer l'opération de convolution.

Unité linéaire rectifiée (ReLU) : Les CNN ont une couche ReLU pour effectuer des opérations sur les éléments. La sortie est une carte de caractéristiques rectifiée.

Couche de mise en commun : La carte de caractéristiques rectifiée alimente ensuite une couche de mise en commun. La mise en commun est une opération de sous-échantillonnage qui réduit les dimensions de la carte des caractéristiques. 

La couche de regroupement convertit ensuite les tableaux bidimensionnels résultants de la carte d'entités regroupées en un seul vecteur linéaire, long et continu, en les aplatissant. 

Couche entièrement connectée : Une couche entièrement connectée se forme lorsque la matrice aplatie de la couche de regroupement est utilisée comme entrée, ce qui permet de classer et d'identifier les images.

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

Les GAN sont des algorithmes de deep learning génératifs qui créent de nouvelles instances de données qui ressemblent aux données d'apprentissage. Les GAN ont deux composants : un générateur, qui apprend à générer des données fausses, et un discriminateur, qui apprend à partir de ces fausses informations.

L'utilisation des GANs a augmenté au fil du temps. Ils peuvent être utilisés pour améliorer les images astronomiques et simuler les lentilles gravitationnelles pour la recherche sur la matière noire. Les développeurs de jeux vidéo utilisent les GAN pour améliorer les textures 2D à faible résolution des anciens jeux vidéo en les recréant en 4K ou à des résolutions plus élevées via l'apprentissage d'images.

Réseaux de mémoire à long terme et à court terme (LSTM)

Les LSTM sont un type de réseau neuronal récurrent (RNN) qui peut apprendre et mémoriser des dépendances à long terme. Se souvenir d'informations passées pendant de longues périodes est le comportement par défaut.

Les LSTM conservent les informations dans le temps. Ils sont utiles pour la prédiction de séries chronologiques car ils se souviennent des entrées précédentes. Les LSTM ont une structure en chaîne dans laquelle quatre couches en interaction communiquent de manière unique. Outre les prédictions de séries chronologiques, les LSTM sont généralement utilisés pour la reconnaissance vocale, la composition musicale et le développement pharmaceutique.

Réseaux neuronaux récurrents (RNN)

Les RNN ont des connexions qui forment des cycles dirigés, ce qui permet aux sorties du LSTM d'être utilisées comme entrées dans la phase actuelle.

La sortie du LSTM devient une entrée pour la phase actuelle et peut mémoriser les entrées précédentes grâce à sa mémoire interne. Les RNN sont couramment utilisés pour le sous-titrage d'images, l'analyse de séries temporelles, le traitement du langage naturel, la reconnaissance de l'écriture manuscrite et la traduction automatique.

Réseaux à fonction de base radiale (RBFN)

Les RBFN sont des types particuliers de réseaux neuronaux feedforward qui utilisent des fonctions de base radiales comme fonctions d'activation. Ils comportent une couche d'entrée, une couche cachée et une couche de sortie et sont principalement utilisés pour la classification, la régression et la prédiction de séries temporelles.

Perceptrons multicouches (MLP)

Les MLP appartiennent à la classe des réseaux neuronaux à anticipation avec plusieurs couches de perceptrons dotés de fonctions d'activation. Les MLP se composent d'une couche d'entrée et d'une couche de sortie qui sont entièrement connectées. Ils ont le même nombre de couches d'entrée et de sortie mais peuvent avoir plusieurs couches cachées et peuvent être utilisés pour construire des logiciels de reconnaissance vocale, de reconnaissance d'images et de traduction automatique.

Cartes auto-organisées (SOM)

Le professeur Teuvo Kohonen a inventé les SOM, qui permettent la visualisation des données pour réduire les dimensions des données grâce à des réseaux neuronaux artificiels auto-organisés.

La visualisation des données tente de résoudre le problème de l'incapacité des humains à visualiser facilement les données à haute dimension. Les SOM sont créés pour aider les utilisateurs à comprendre ces informations hautement dimensionnelles.

Machines de Boltzmann restreintes (RBM)

Développées par Geoffrey Hinton, les RBM sont des réseaux neuronaux stochastiques qui peuvent apprendre à partir d'une distribution de probabilité sur un ensemble d'entrées.

Cet algorithme d'apprentissage profond est utilisé pour la réduction de la dimensionnalité, la classification, la régression, le filtrage collaboratif, l'apprentissage de caractéristiques et la modélisation de sujets. Les RBM constituent les éléments constitutifs des DBN.

Les RBM sont constitués de deux couches :

  • Unités visibles
  • Unités cachées

Chaque unité visible est connectée à toutes les unités cachées. Les RBM ont une unité de biais qui est connectée à toutes les unités visibles et aux unités cachées, et ils n'ont pas de nœuds de sortie.

Réseaux de croyance profonds (DBN)

Les DBN sont des modèles génératifs composés de plusieurs couches de variables stochastiques latentes. Les variables latentes ont des valeurs binaires et sont souvent appelées unités cachées.

Les DBN sont une pile de machines de Boltzmann avec des connexions entre les couches, et chaque couche de RBM communique à la fois avec la couche précédente et la suivante. Les réseaux de croyance profonds (DBN) sont utilisés pour la reconnaissance d'images, la reconnaissance de vidéos et les données de capture de mouvements.

Auto-Encodeurs

Les auto-encodeurs sont un type spécifique de réseau neuronal à anticipation dans lequel l'entrée et la sortie sont identiques. Geoffrey Hinton a conçu les auto-encodeurs dans les années 1980 pour résoudre les problèmes d'apprentissage non supervisé (unsupervised learning). Il s'agit de réseaux neuronaux formés qui reproduisent les données de la couche d'entrée à la couche de sortie. Les auto-encodeurs sont utilisés à des fins telles que la découverte de produits pharmaceutiques, la prédiction de popularité et le traitement d'images.

Un auto-encodeur se compose de trois éléments principaux : le codeur, le code et le décodeur.