[ad_1]

Dernière mise à jour le 15 août 2022

Quel réseau de neurones est approprié pour votre problème de modélisation prédictive ?

Il peut être difficile pour un débutant dans le domaine du deep learning de savoir quel type de réseau utiliser. Il y a tellement de types de réseaux parmi lesquels choisir et de nouvelles méthodes publiées et discutées chaque jour.

Pour aggraver les choses, la plupart des réseaux de neurones sont suffisamment flexibles pour fonctionner (faire une prédiction) même lorsqu’ils sont utilisés avec le mauvais type de données ou de problème de prédiction.

Dans cet article, vous découvrirez l’utilisation suggérée pour les trois principales classes de réseaux de neurones artificiels.

Après avoir lu ce post, vous saurez :

  • Sur quels types de réseaux de neurones se concentrer lorsqu’on travaille sur un problème de modélisation prédictive.
  • Quand utiliser, ne pas utiliser et éventuellement essayer d’utiliser un MLP, un CNN et un RNN sur un projet.
  • Pour envisager l’utilisation de modèles hybrides et avoir une idée claire des objectifs de votre projet avant de sélectionner un modèle.

Lancez votre projet avec mon nouveau livre Deep Learning With Python, y compris tutoriels pas à pas et le Code source Python fichiers pour tous les exemples.

Commençons.

Quand utiliser les réseaux de neurones MLP, CNN et RNN

Quand utiliser les réseaux de neurones MLP, CNN et RNN
Photo de PRODAVID S. FERRY III,DDS, certains droits réservés.

Aperçu

Ce poste est divisé en cinq sections; elles sont:

  1. Sur quels réseaux de neurones se concentrer ?
  2. Quand utiliser les perceptrons multicouches ?
  3. Quand utiliser les réseaux de neurones convolutifs ?
  4. Quand utiliser les réseaux de neurones récurrents ?
  5. Modèles de réseaux hybrides

Sur quels réseaux de neurones se concentrer ?

L’apprentissage en profondeur est l’application de réseaux de neurones artificiels utilisant du matériel moderne.

Il permet le développement, la formation et l’utilisation de réseaux neuronaux qui sont beaucoup plus grands (plus de couches) qu’on ne le pensait auparavant.

Il existe des milliers de types de réseaux de neurones spécifiques proposés par les chercheurs en tant que modifications ou ajustements aux modèles existants. Des approches parfois totalement nouvelles.

En tant que praticien, je recommande d’attendre qu’un modèle émerge comme généralement applicable. Il est difficile de démêler le signal de ce qui fonctionne bien en général à partir du bruit du grand nombre de publications publiées quotidiennement ou hebdomadairement.

Il existe trois classes de réseaux de neurones artificiels sur lesquels je vous recommande de vous concentrer en général. Elles sont:

  • Perceptrons multicouches (MLP)
  • Réseaux de neurones convolutifs (CNN)
  • Réseaux de neurones récurrents (RNN)

Ces trois classes de réseaux offrent une grande flexibilité et se sont avérées utiles et fiables au fil des décennies pour un large éventail de problèmes. Ils ont également de nombreux sous-types pour les aider à se spécialiser dans les bizarreries de différents cadrages de problèmes de prédiction et de différents ensembles de données.

Maintenant que nous savons sur quels réseaux nous concentrer, regardons quand nous pouvons utiliser chaque classe de réseau de neurones.

Quand utiliser les perceptrons multicouches ?

Les perceptrons multicouches, ou MLP en abrégé, sont le type classique de réseau de neurones.

Ils sont constitués d’une ou plusieurs couches de neurones. Les données sont transmises à la couche d’entrée, il peut y avoir une ou plusieurs couches cachées fournissant des niveaux d’abstraction, et des prédictions sont faites sur la couche de sortie, également appelée couche visible.

Pour plus de détails sur le MLP, voir le post :

Modèle d'un réseau simple

Modèle d’un réseau simple

Les MLP conviennent aux problèmes de prédiction de classification où les entrées se voient attribuer une classe ou une étiquette.

Ils conviennent également aux problèmes de prédiction de régression où une quantité à valeur réelle est prédite compte tenu d’un ensemble d’entrées. Les données sont souvent fournies sous forme de tableau, comme vous le verriez dans un fichier CSV ou une feuille de calcul.

Utilisez les MLP pour :

  • Ensembles de données tabulaires
  • Problèmes de prédiction de classification
  • Problèmes de prédiction de régression

Ils sont très flexibles et peuvent être utilisés généralement pour apprendre un mappage des entrées aux sorties.

Cette flexibilité permet de les appliquer à d’autres types de données. Par exemple, les pixels d’une image peuvent être réduits à une longue ligne de données et introduits dans un MLP. Les mots d’un document peuvent également être réduits à une longue ligne de données et transmis à un MLP. Même les observations de décalage pour un problème de prédiction de série chronologique peuvent être réduites à une longue ligne de données et transmises à un MLP.

En tant que tel, si vos données se présentent sous une forme autre qu’un ensemble de données tabulaires, comme une image, un document ou une série chronologique, je recommanderais au moins de tester un MLP sur votre problème. Les résultats peuvent être utilisés comme point de comparaison de base pour confirmer que d’autres modèles qui peuvent sembler mieux adaptés ajoutent de la valeur.

Essayez les MLP sur :

  • Données d’image
  • Données textuelles
  • Données de séries chronologiques
  • Autres types de données

Quand utiliser les réseaux de neurones convolutifs ?

Les réseaux de neurones convolutifs, ou CNN, ont été conçus pour mapper des données d’image à une variable de sortie.

Ils se sont avérés si efficaces qu’ils constituent la méthode de référence pour tout type de problème de prédiction impliquant des données d’image en entrée.

Pour plus de détails sur les CNN, consultez le post :

L’avantage d’utiliser les CNN est leur capacité à développer une représentation interne d’une image en deux dimensions. Cela permet au modèle d’apprendre la position et l’échelle dans des structures variables dans les données, ce qui est important lorsque vous travaillez avec des images.

Utilisez les CNN pour :

  • Données d’image
  • Problèmes de prédiction de classification
  • Problèmes de prédiction de régression

Plus généralement, les CNN fonctionnent bien avec des données qui ont une relation spatiale.

L’entrée CNN est traditionnellement bidimensionnelle, un champ ou une matrice, mais peut également être modifiée pour être unidimensionnelle, ce qui lui permet de développer une représentation interne d’une séquence unidimensionnelle.

Cela permet au CNN d’être utilisé plus généralement sur d’autres types de données qui ont une relation spatiale. Par exemple, il existe une relation d’ordre entre les mots dans un document de texte. Il existe une relation ordonnée dans les pas de temps d’une série temporelle.

Bien qu’ils ne soient pas spécifiquement développés pour les données autres que les images, les CNN obtiennent des résultats de pointe sur des problèmes tels que la classification des documents utilisés dans l’analyse des sentiments et les problèmes connexes.

Essayez les CNN sur :

  • Données textuelles
  • Données de séries chronologiques
  • Données d’entrée de séquence

Quand utiliser les réseaux de neurones récurrents ?

Les réseaux de neurones récurrents, ou RNN, ont été conçus pour résoudre les problèmes de prédiction de séquence.

Les problèmes de prédiction de séquence se présentent sous de nombreuses formes et sont mieux décrits par les types d’entrées et de sorties prises en charge.

Voici quelques exemples de problèmes de prédiction de séquence :

  • Un à plusieurs: Une observation en entrée mappée à une séquence avec plusieurs étapes en sortie.
  • Plusieurs à un: Une séquence de plusieurs étapes en tant qu’entrée mappée à la prédiction de classe ou de quantité.
  • Plusieurs à plusieurs: Une séquence de plusieurs étapes en entrée mappée à une séquence avec plusieurs étapes en sortie.

Le problème plusieurs à plusieurs est souvent appelé séquence à séquence ou seq2seq en abrégé.

Pour plus de détails sur les types de problèmes de prédiction de séquence, consultez le post :

Les réseaux de neurones récurrents étaient traditionnellement difficiles à former.

Le réseau de mémoire longue à court terme, ou LSTM, est peut-être le RNN le plus réussi car il surmonte les problèmes de formation d’un réseau récurrent et a été utilisé à son tour sur un large éventail d’applications.

Pour plus de détails sur les RNN, consultez le post :

Les RNN en général et les LSTM en particulier ont reçu le plus de succès lorsqu’ils travaillent avec des séquences de mots et de paragraphes, généralement appelés traitement du langage naturel.

Cela comprend à la fois des séquences de texte et des séquences de langage parlé représentées sous forme de séries chronologiques. Ils sont également utilisés comme modèles génératifs qui nécessitent une sortie de séquence, non seulement avec du texte, mais sur des applications telles que la génération d’écriture manuscrite.

Utilisez les RNN pour :

  • Données textuelles
  • Données vocales
  • Problèmes de prédiction de classification
  • Problèmes de prédiction de régression
  • Modèles génératifs

Les réseaux de neurones récurrents ne conviennent pas aux ensembles de données tabulaires comme vous le verriez dans un fichier CSV ou une feuille de calcul. Ils ne conviennent pas non plus à la saisie de données d’image.

N’utilisez pas les RNN pour :

Les RNN et les LSTM ont été testés sur des problèmes de prévision de séries chronologiques, mais les résultats ont été pour le moins médiocres. Les méthodes d’autorégression, même les méthodes linéaires, fonctionnent souvent bien mieux. Les LSTM sont souvent surpassés par de simples MLP appliqués sur les mêmes données.

Pour en savoir plus sur ce sujet, consultez le post :

Néanmoins, il reste un domaine actif.

Essayez peut-être les RNN sur :

Modèles de réseaux hybrides

Un modèle CNN ou RNN est rarement utilisé seul.

Ces types de réseaux sont utilisés comme couches dans un modèle plus large qui comporte également une ou plusieurs couches MLP. Techniquement, il s’agit d’un type hybride d’architecture de réseau neuronal.

Le travail le plus intéressant provient peut-être du mélange des différents types de réseaux dans des modèles hybrides.

Par exemple, considérons un modèle qui utilise une pile de couches avec un CNN en entrée, LSTM au milieu et MLP en sortie. Un modèle comme celui-ci peut lire une séquence d’entrées d’images, comme une vidéo, et générer une prédiction. C’est ce qu’on appelle une architecture CNN LSTM.

Les types de réseau peuvent également être empilés dans des architectures spécifiques pour débloquer de nouvelles fonctionnalités, telles que les modèles de reconnaissance d’image réutilisables qui utilisent des réseaux CNN et MLP très profonds qui peuvent être ajoutés à un nouveau modèle LSTM et utilisés pour sous-titrer des photos. De plus, les réseaux codeur-décodeur LSTM peuvent être utilisés pour avoir des séquences d’entrée et de sortie de longueurs différentes.

Il est important de réfléchir d’abord clairement à ce que vous et vos parties prenantes attendez du projet, puis de rechercher une architecture réseau (ou d’en développer une) qui réponde aux besoins spécifiques de votre projet.

Pour un bon cadre pour vous aider à réfléchir à vos problèmes de données et de prédiction, consultez le post :

Lectures complémentaires

Cette section fournit plus de ressources sur le sujet si vous cherchez à approfondir.

Sommaire

Dans cet article, vous avez découvert l’utilisation suggérée pour les trois principales classes de réseaux de neurones artificiels.

Plus précisément, vous avez appris :

  • Sur quels types de réseaux de neurones se concentrer lorsqu’on travaille sur un problème de modélisation prédictive.
  • Quand utiliser, ne pas utiliser et éventuellement essayer d’utiliser un MLP, un CNN et un RNN sur un projet.
  • Pour envisager l’utilisation de modèles hybrides et avoir une idée claire des objectifs de votre projet avant de sélectionner un modèle.

Avez-vous des questions?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Développez des projets d’apprentissage en profondeur avec Python !

Apprentissage en profondeur avec Python

Et si vous pouviez développer un réseau en quelques minutes

…avec seulement quelques lignes de Python

Découvrez comment dans mon nouvel Ebook :
Apprentissage en profondeur avec Python

Cela couvre des projets de bout en bout sur des sujets comme :

Perceptrons multicouches, Réseaux convolutifs et Réseaux neuronaux récurrentset plus…

Apportez enfin l’apprentissage en profondeur à
Vos propres projets

Passer les universitaires. Juste des résultats.

Voir ce qu’il y a à l’intérieur