Outils pour utilisateurs

Outils du site


comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal [2020/10/03 11:52]
serge [Bonus]
comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal [2020/12/27 16:13] (Version actuelle)
serge
Ligne 1: Ligne 1:
 ====== Comment configurer le nombre de couches et de nœuds dans un réseau neuronal ====== ====== Comment configurer le nombre de couches et de nœuds dans un réseau neuronal ======
 +<WRAP center round box 60% centeralign>
 +**{{tagpage>ia|Intelligence Artificielle}}**     **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fcomment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal|English Version]]**
 +</WRAP>
 +<WRAP center round box 60% centeralign>
 +**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]**
 +</WRAP>
  
 Traduction de **[[https://machinelearningmastery.com/how-to-configure-the-number-of-layers-and-nodes-in-a-neural-network/|How to Configure the Number of Layers and Nodes in a Neural Network]]** à **machinelearningmastery.com** Traduction de **[[https://machinelearningmastery.com/how-to-configure-the-number-of-layers-and-nodes-in-a-neural-network/|How to Configure the Number of Layers and Nodes in a Neural Network]]** à **machinelearningmastery.com**
  
 +====Ressources====
 +  * https://keras.io/api/layers/ Liste ce qui existe dans keras mais ne dit pas comment choisir !
 +  * **[[https://stackoverflow.com/questions/44747343/keras-input-explanation-input-shape-units-batch-size-dim-etc|Keras input explanation: input_shape, units, batch_size, dim, etc]]**
 =====Introduction===== =====Introduction=====
 Les réseaux de neurones artificiels ont deux hyperparamètres principaux qui contrôlent l'architecture ou la topologie du réseau: le nombre de couches et le nombre de nœuds dans chaque couche cachée.\\ Les réseaux de neurones artificiels ont deux hyperparamètres principaux qui contrôlent l'architecture ou la topologie du réseau: le nombre de couches et le nombre de nœuds dans chaque couche cachée.\\
Ligne 56: Ligne 65:
  
 ===Remarque=== ===Remarque===
-Plus précisément, le théorème d'approximation universelle stipule qu'un réseau à anticipation avec une couche de sortie linéaire et au moins une couche cachée avec une fonction d'activation «écrasante» (telle que la fonction d'activation sigmoïde logistique) peut approximer n'importe quelle fonction mesurable de Borel à partir d'un espace de dimension finie à un autre avec toute quantité d'erreur non nulle souhaitée, à condition que le réseau dispose d'un nombre suffisant d'unités cachées.+Plus précisément, le théorème d'approximation universelle stipule qu'un réseau à anticipation avec une couche de sortie linéaire et au moins une couche cachée avec une fonction d'activation «écrasante» (telle que la fonction d'activation sigmoïde logistique) peut approximer n'importe quelle fonction mesurable de [[https://fr.wikipedia.org/wiki/Hiérarchie_de_Borel|Borel]] à partir d'un espace de dimension finie à un autre avec toute quantité d'erreur non nulle souhaitée, à condition que le réseau dispose d'un nombre suffisant d'unités cachées.
  
 ====En pratique==== ====En pratique====
-Il s'agit d'une découverte théorique souvent citée et il existe une tonne de littérature à ce sujet. En pratique, nous n'avons encore aucune idée du nombre de nœuds à utiliser dans la couche cachée unique pour un problème donné, ni comment apprendre ou définir efficacement leurs poids. En outre, de nombreux contre-exemples ont été présentés de fonctions qui ne peuvent pas être apprises directement via un seul MLP à une seule couche cachée ou qui nécessitent un nombre infini de nœuds.\\+En pratique, nous n'avons encore aucune idée du nombre de nœuds à utiliser dans la couche cachée unique pour un problème donné, ni comment apprendre ou définir efficacement leurs poids. En outre, de nombreux contre-exemples ont été présentés de fonctions qui ne peuvent pas être apprises directement via un seul MLP à une seule couche cachée ou qui nécessitent un nombre infini de nœuds.\\
 Même pour les fonctions qui peuvent être apprises via un MLP suffisamment grand à une couche cachée, il peut être plus efficace de l'apprendre avec deux (ou plus) couches cachées.\\ Même pour les fonctions qui peuvent être apprises via un MLP suffisamment grand à une couche cachée, il peut être plus efficace de l'apprendre avec deux (ou plus) couches cachées.\\
 Puisqu'une seule couche cachée suffisamment grande est adéquate pour l'approximation de la plupart des fonctions, pourquoi quelqu'un en utiliserait-il plus? Une des raisons tient aux mots «suffisamment grand». Bien qu'une seule couche cachée soit optimale pour certaines fonctions, il y en a d'autres pour lesquelles une solution à une seule couche cachée est très inefficace par rapport aux solutions avec plus de couches. Puisqu'une seule couche cachée suffisamment grande est adéquate pour l'approximation de la plupart des fonctions, pourquoi quelqu'un en utiliserait-il plus? Une des raisons tient aux mots «suffisamment grand». Bien qu'une seule couche cachée soit optimale pour certaines fonctions, il y en a d'autres pour lesquelles une solution à une seule couche cachée est très inefficace par rapport aux solutions avec plus de couches.
  
 =====Combien de couches et de nœuds utiliser?===== =====Combien de couches et de nœuds utiliser?=====
-Avec le préambule des MLP à l'écart, passons à votre vraie question.\\ 
 Combien de couches devez-vous utiliser dans votre Perceptron multicouche et combien de nœuds par couche? Combien de couches devez-vous utiliser dans votre Perceptron multicouche et combien de nœuds par couche?
 Dans cette section, nous énumérerons cinq approches pour résoudre ce problème.\\ Dans cette section, nous énumérerons cinq approches pour résoudre ce problème.\\
Ligne 74: Ligne 82:
 Le nombre de couches et le nombre de nœuds dans chaque couche sont des hyperparamètres de modèle que vous devez spécifier. Le nombre de couches et le nombre de nœuds dans chaque couche sont des hyperparamètres de modèle que vous devez spécifier.
 Vous êtes probablement la première personne à tenter de résoudre votre problème spécifique avec un réseau neuronal. Personne ne l'a résolu avant vous. Par conséquent, personne ne peut vous dire comment configurer le réseau. Vous êtes probablement la première personne à tenter de résoudre votre problème spécifique avec un réseau neuronal. Personne ne l'a résolu avant vous. Par conséquent, personne ne peut vous dire comment configurer le réseau.
-Vous devez découvrir la réponse en utilisant un harnais de test robuste et des expériences contrôlées. Par exemple, voir l'article: +Vous devez découvrir la réponse en utilisant un harnais de test robuste et des expériences contrôlées.\\
-  * Comment évaluer la compétence des modèles d'apprentissage profond +
 Indépendamment de l'heuristique que vous pourriez rencontrer, toutes les réponses reviendront à la nécessité d'une expérimentation minutieuse pour voir ce qui fonctionne le mieux pour votre ensemble de données spécifique. Indépendamment de l'heuristique que vous pourriez rencontrer, toutes les réponses reviendront à la nécessité d'une expérimentation minutieuse pour voir ce qui fonctionne le mieux pour votre ensemble de données spécifique.
  
Ligne 83: Ligne 90:
 Un modèle profond fournit une hiérarchie de couches qui construisent des niveaux d'abstraction croissants de l'espace des variables d'entrée aux variables de sortie. Un modèle profond fournit une hiérarchie de couches qui construisent des niveaux d'abstraction croissants de l'espace des variables d'entrée aux variables de sortie.
 Étant donné une compréhension du domaine du problème, nous pouvons croire qu'un modèle hiérarchique profond est nécessaire pour résoudre suffisamment le problème de prédiction. Dans ce cas, nous pouvons choisir une configuration de réseau comportant de nombreuses couches de profondeur. Étant donné une compréhension du domaine du problème, nous pouvons croire qu'un modèle hiérarchique profond est nécessaire pour résoudre suffisamment le problème de prédiction. Dans ce cas, nous pouvons choisir une configuration de réseau comportant de nombreuses couches de profondeur.
-Le choix d'un modèle profond encode une croyance très générale selon laquelle la fonction que nous voulons apprendre devrait impliquer la composition de plusieurs fonctions plus simples. Cela peut être interprété du point de vue de l'apprentissage de la représentation comme indiquant que nous croyons que le problème d'apprentissage consiste à découvrir un ensemble de facteurs sous-jacents de variation qui peuvent à leur tour être décrits en termes d'autres facteurs sous-jacents de variation plus simples. +Le choix d'un modèle profond encode une croyance très générale selon laquelle la fonction que nous voulons apprendre devrait impliquer la composition de plusieurs fonctions plus simples. Cela peut être interprété du point de vue de l'apprentissage de la représentation comme indiquant que nous croyons que le problème d'apprentissage consiste à découvrir un ensemble de facteurs sous-jacents de variation qui peuvent à leur tour être décrits en termes d'autres facteurs sous-jacents de variation plus simples.\\ 
- +Cette intuition peut provenir de l'expérience du domaine, de l'expérience des problèmes de modélisation avec les réseaux de neurones, ou d'un mélange des deux.\\ 
-Cette intuition peut provenir de l'expérience du domaine, de l'expérience des problèmes de modélisation avec les réseaux de neurones, ou d'un mélange des deux. +**D'après mon expérience, les intuitions sont souvent invalidées via des expériences.**
-D'après mon expérience, les intuitions sont souvent invalidées via des expériences.+
  
 ====Optez pour la profondeur==== ====Optez pour la profondeur====
Ligne 113: Ligne 119:
   * Ajustez les modèles sur un sous-ensemble plus petit de l'ensemble de données d'entraînement pour accélérer la recherche.    * Ajustez les modèles sur un sous-ensemble plus petit de l'ensemble de données d'entraînement pour accélérer la recherche. 
   * Liez de manière agressive la taille de l'espace de recherche.    * Liez de manière agressive la taille de l'espace de recherche. 
-  * Parallélisez la recherche sur plusieurs instances de serveur (par exemple, utilisez le service Amazon EC2 )+  * Parallélisez la recherche sur plusieurs instances de serveur. 
 Je recommande d'être systématique si le temps et les ressources le permettent. Je recommande d'être systématique si le temps et les ressources le permettent.
  
 ====Bonus==== ====Bonus====
 J'ai vu d'innombrables heuristiques sur la façon d'estimer le nombre de couches et soit le nombre total de neurones, soit le nombre de neurones par couche.\\ J'ai vu d'innombrables heuristiques sur la façon d'estimer le nombre de couches et soit le nombre total de neurones, soit le nombre de neurones par couche.\\
-Je ne veux pas les énumérerJe suis sceptique sur le fait qu'ils ajoutent une valeur pratique au-delà des cas particuliers sur lesquels ils sont présentés.+Je ne veux pas les énumérerJe suis sceptique sur le fait qu'ils ajoutent une valeur pratique au-delà des cas particuliers sur lesquels ils sont présentés.
  
 ====Lectures complémentaires==== ====Lectures complémentaires====
Ligne 124: Ligne 130:
  
  
-{{tag>sb ia}}+{{tag>sb ia keras}}
comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal.1601718772.txt.gz · Dernière modification: 2020/10/03 11:52 de serge