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.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal [2020/10/03 09:36] – [Introduction] serge | comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal [2020/12/27 15: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> | ||
+ | </ | ||
+ | <WRAP center round box 60% centeralign> | ||
+ | **[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]** | ||
+ | </ | ||
Traduction de **[[https:// | Traduction de **[[https:// | ||
+ | ====Ressources==== | ||
+ | * https:// | ||
+ | * **[[https:// | ||
=====Introduction===== | =====Introduction===== | ||
Les réseaux de neurones artificiels ont deux hyperparamètres principaux qui contrôlent l' | Les réseaux de neurones artificiels ont deux hyperparamètres principaux qui contrôlent l' | ||
Vous devez spécifier des valeurs pour ces paramètres lors de la configuration de votre réseau.\\ | Vous devez spécifier des valeurs pour ces paramètres lors de la configuration de votre réseau.\\ | ||
Le moyen le plus fiable de configurer ces hyperparamètres pour votre problème de modélisation prédictive spécifique consiste à expérimenter systématiquement avec un faisceau de test robuste.\\ | Le moyen le plus fiable de configurer ces hyperparamètres pour votre problème de modélisation prédictive spécifique consiste à expérimenter systématiquement avec un faisceau de test robuste.\\ | ||
- | Cela peut être une pilule difficile à avaler pour les débutants dans le domaine de l' | + | Cela peut être une pilule difficile à avaler pour les débutants dans le domaine de l' |
- | Dans cet article, vous découvrirez les rôles des couches et des nœuds et comment aborder la configuration d'un réseau de neurones perceptron multicouche pour votre problème de modélisation prédictive. | + | |
=====Aperçu===== | =====Aperçu===== | ||
- | Cet article est divisé en quatre sections; elles sont: | + | Cet article est divisé en quatre sections: |
- | - Le Perceptron multicouche | + | - [[comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal# |
- | - Comment compter les couches? | + | - [[comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal# |
- | - Pourquoi avoir plusieurs couches? | + | - [[comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal# |
- | - Combien de couches et de nœuds utiliser? | + | - [[comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal# |
| | ||
=====Le Perceptron multicouche===== | =====Le Perceptron multicouche===== | ||
- | Un nœud, également appelé neurone ou Perceptron, est une unité de calcul qui a une ou plusieurs connexions d' | + | Un nœud, également appelé neurone ou Perceptron, est une unité de calcul qui a une ou plusieurs connexions d' |
- | + | Les nœuds sont ensuite organisés en couches pour constituer un réseau.\\ | |
- | Les nœuds sont ensuite organisés en couches pour constituer un réseau. | + | Un réseau neuronal artificiel monocouche, également appelé monocouche, a une seule couche de nœuds, comme son nom l' |
- | + | Les réseaux monocouche n'ont qu'une seule couche d' | |
- | Un réseau neuronal artificiel monocouche, également appelé monocouche, a une seule couche de nœuds, comme son nom l' | + | Un réseau monocouche peut être étendu à un réseau multicouche, |
- | + | Il possède une couche d' | |
- | Les réseaux monocouche n'ont qu'une seule couche d' | + | Le perceptron multicouche standard (MLP) est une cascade de perceptrons monocouche. Il existe une couche de nœuds d' |
- | + | ||
- | Un réseau monocouche peut être étendu à un réseau multicouche, | + | |
- | + | ||
- | Il possède une couche d' | + | |
- | + | ||
- | Le perceptron multicouche standard (MLP) est une cascade de perceptrons monocouche. Il existe une couche de nœuds d' | + | |
Nous pouvons résumer les types de couches dans un MLP comme suit: | Nous pouvons résumer les types de couches dans un MLP comme suit: | ||
Ligne 45: | Ligne 47: | ||
=====Comment compter les couches ?===== | =====Comment compter les couches ?===== | ||
Traditionnellement, | Traditionnellement, | ||
- | Le désaccord porte sur le fait de savoir si la couche d' | + | Le désaccord porte sur le fait de savoir si la couche d' |
- | Par conséquent, | + | Par conséquent, |
La structure d'un MLP peut être résumée à l'aide d'une simple notation. | La structure d'un MLP peut être résumée à l'aide d'une simple notation. | ||
- | Cette notation pratique résume à la fois le nombre de couches et le nombre de nœuds dans chaque couche. Le nombre de nœuds dans chaque couche est spécifié sous la forme d'un entier, dans l' | + | Cette notation pratique résume à la fois le nombre de couches et le nombre de nœuds dans chaque couche. Le nombre de nœuds dans chaque couche est spécifié sous la forme d'un entier, dans l' |
- | Par exemple, un réseau avec deux variables dans la couche d' | + | Par exemple, un réseau avec deux variables dans la couche d' |
Je recommande d' | Je recommande d' | ||
=====Pourquoi avoir plusieurs couches ?===== | =====Pourquoi avoir plusieurs couches ?===== | ||
- | Avant d' | + | Avant d' |
- | Un réseau neuronal monocouche ne peut être utilisé que pour représenter des fonctions linéairement séparables. Cela signifie des problèmes très simples où, par exemple, les deux classes d'un problème de classification peuvent être soigneusement séparées par une ligne. Si votre problème est relativement simple, peut-être qu'un réseau monocouche serait suffisant. | + | Un réseau neuronal monocouche ne peut être utilisé que pour représenter des fonctions linéairement séparables. Cela signifie des problèmes très simples où, par exemple, les deux classes d'un problème de classification peuvent être soigneusement séparées par une ligne. Si votre problème est relativement simple, peut-être qu'un réseau monocouche serait suffisant.\\ |
La plupart des problèmes que nous souhaitons résoudre ne sont pas linéairement séparables. | La plupart des problèmes que nous souhaitons résoudre ne sont pas linéairement séparables. | ||
Un Perceptron multicouche peut être utilisé pour représenter des régions convexes. Cela signifie qu'en fait, ils peuvent apprendre à dessiner des formes autour d' | Un Perceptron multicouche peut être utilisé pour représenter des régions convexes. Cela signifie qu'en fait, ils peuvent apprendre à dessiner des formes autour d' | ||
- | En fait, il y a une découverte théorique de Lippmann dans l' | + | |
+ | ====En théorie==== | ||
+ | En fait, il y a une **découverte théorique de Lippmann dans l' | ||
Une autre découverte théorique et une preuve ont montré que les MLP sont des approximateurs universels . Avec une couche cachée, un MLP peut se rapprocher de n' | Une autre découverte théorique et une preuve ont montré que les MLP sont des approximateurs universels . Avec une couche cachée, un MLP peut se rapprocher de n' | ||
- | Plus précisément, | + | |
- | - Page 198, Deep Learning , 2016. | + | ===Remarque=== |
- | Il s'agit d'une découverte théorique souvent citée et il existe une tonne de littérature à ce sujet. | + | Plus précisément, |
- | 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' | + | |
+ | ====En pratique==== | ||
+ | En pratique, nous n' | ||
+ | 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' | ||
Puisqu' | Puisqu' | ||
=====Combien de couches et de nœuds utiliser? | =====Combien de couches et de nœuds utiliser? | ||
- | Avec le préambule des MLP à l' | ||
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.\\ |
- | 1) Expérimentation | + | ====Expérimentation==== |
En général, quand on me demande combien de couches et de nœuds utiliser pour un MLP, je réponds souvent: | En général, quand on me demande combien de couches et de nœuds utiliser pour un MLP, je réponds souvent: | ||
Je ne sais pas. Utilisez l' | Je ne sais pas. Utilisez l' | ||
Ligne 76: | 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, | 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, | ||
- | Vous devez découvrir la réponse en utilisant un harnais de test robuste et des expériences contrôlées. | + | 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' | + | |
Indépendamment de l' | Indépendamment de l' | ||
- | 2) Intuition | + | |
+ | ====Intuition==== | ||
Le réseau peut être configuré via l' | Le réseau peut être configuré via l' | ||
Par exemple, vous pouvez avoir une intuition qu'un réseau profond est nécessaire pour résoudre un problème de modélisation prédictive spécifique. | Par exemple, vous pouvez avoir une intuition qu'un réseau profond est nécessaire pour résoudre un problème de modélisation prédictive spécifique. | ||
Un modèle profond fournit une hiérarchie de couches qui construisent des niveaux d' | Un modèle profond fournit une hiérarchie de couches qui construisent des niveaux d' | ||
É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' | + | 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' |
- | - Page 201, Deep Learning , 2016. | + | Cette intuition peut provenir de l' |
- | Cette intuition peut provenir de l' | + | **D' |
- | D' | + | |
- | 3) Optez pour la profondeur | + | ====Optez pour la profondeur==== |
Dans leur important manuel sur l' | Dans leur important manuel sur l' | ||
Plus précisément, | Plus précisément, | ||
Empiriquement, | Empiriquement, | ||
- | - Page 201, Deep Learning , 2016. | + | |
Nous pouvons utiliser cet argument pour suggérer que l' | Nous pouvons utiliser cet argument pour suggérer que l' | ||
Ceci est similaire aux conseils pour commencer avec Random Forest et Stochastic Gradient Boosting sur un problème de modélisation prédictive avec des données tabulaires pour avoir rapidement une idée d'une limite supérieure sur la compétence du modèle avant de tester d' | Ceci est similaire aux conseils pour commencer avec Random Forest et Stochastic Gradient Boosting sur un problème de modélisation prédictive avec des données tabulaires pour avoir rapidement une idée d'une limite supérieure sur la compétence du modèle avant de tester d' | ||
- | 4) Emprunter des idées | + | |
+ | ====Emprunter des idées==== | ||
Une approche simple, mais peut-être longue, consiste à tirer parti des résultats rapportés dans la littérature. | Une approche simple, mais peut-être longue, consiste à tirer parti des résultats rapportés dans la littérature. | ||
Trouvez des documents de recherche qui décrivent l' | Trouvez des documents de recherche qui décrivent l' | ||
La transférabilité des hyperparamètres de modèle qui aboutissent à des modèles habiles d'un problème à un autre est un problème ouvert difficile et la raison pour laquelle la configuration des hyperparamètres de modèle est plus un art que de la science. | La transférabilité des hyperparamètres de modèle qui aboutissent à des modèles habiles d'un problème à un autre est un problème ouvert difficile et la raison pour laquelle la configuration des hyperparamètres de modèle est plus un art que de la science. | ||
Néanmoins, les couches réseau et le nombre de nœuds utilisés sur des problèmes connexes sont un bon point de départ pour tester des idées. | Néanmoins, les couches réseau et le nombre de nœuds utilisés sur des problèmes connexes sont un bon point de départ pour tester des idées. | ||
- | 5) Recherche | + | |
+ | ====Recherche==== | ||
Concevez une recherche automatisée pour tester différentes configurations de réseau. | Concevez une recherche automatisée pour tester différentes configurations de réseau. | ||
Vous pouvez semer la recherche avec des idées issues de la littérature et de l' | Vous pouvez semer la recherche avec des idées issues de la littérature et de l' | ||
Certaines stratégies de recherche populaires incluent: | Certaines stratégies de recherche populaires incluent: | ||
- | • Aléatoire : essayez des configurations aléatoires de couches et de nœuds par couche. | + | * Aléatoire : essayez des configurations aléatoires de couches et de nœuds par couche. |
- | | + | |
- | | + | |
- | | + | |
Cela peut être difficile avec de grands modèles, de grands ensembles de données et des combinaisons des deux. Voici quelques idées pour réduire ou gérer la charge de calcul: | Cela peut être difficile avec de grands modèles, de grands ensembles de données et des combinaisons des deux. Voici quelques idées pour réduire ou gérer la charge de calcul: | ||
- | • Ajustez les modèles sur un sous-ensemble plus petit de l' | + | * Ajustez les modèles sur un sous-ensemble plus petit de l' |
- | | + | |
- | | + | |
Je recommande d' | Je recommande d' | ||
- | Plus | ||
- | J'ai vu d' | ||
- | Je ne veux pas les énumérer; Je suis sceptique sur le fait qu'ils ajoutent une valeur pratique au-delà des cas particuliers sur lesquels ils sont présentés. | ||
- | Si ce domaine vous intéresse, commencez peut-être par la « Section 4.4 Capacité versus taille » dans le livre « Neural Smithing ». Il résume une tonne de découvertes dans ce domaine. Le livre est daté de 1999, il reste donc près de 20 ans d' | ||
- | Voir également certaines des discussions liées dans la section Lectures complémentaires (ci-dessous). | ||
- | Ai-je manqué votre méthode préférée pour configurer un réseau neuronal? Ou connaissez-vous une bonne référence sur le sujet? | ||
- | Faites-moi savoir dans les commentaires ci-dessous. | ||
- | Lectures complémentaires | ||
- | Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir. | ||
- | Papiers | ||
- | • Une introduction à l' | ||
- | • Combien de couches et de nœuds cachés? , 2009. | ||
- | Livres | ||
- | • Neural Smithing: Supervised Learning in Feedforward Artificial Neural Networks , 1999. | ||
- | • Apprentissage profond , 2016. | ||
- | Des articles | ||
- | • Réseau de neurones artificiels sur Wikipedia | ||
- | • Théorème d' | ||
- | • Combien de couches cachées dois-je utiliser ?, FAQ comp.ai.neural-nets | ||
- | Discussions | ||
- | • Comment choisir le nombre de couches et de nœuds cachés dans un réseau de neurones à feedforward? | ||
- | • Nombre de nœuds dans les couches cachées du réseau neuronal | ||
- | • architecture de perceptron multicouche (MLP): critères de choix du nombre de couches cachées et de la taille de la couche cachée? | ||
- | • En apprentissage profond, comment sélectionner le nombre optimal de couches et de neurones? | ||
- | {{tag>sb ia}} | + | ====Bonus==== |
+ | J'ai vu d' | ||
+ | Je ne veux pas les énumérer. Je 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==== | ||
+ | Cette section fournit plus de ressources sur le sujet si vous souhaitez approfondir. Voir l' | ||
+ | |||
+ | |||
+ | {{tag>sb ia keras}} |
comment_configurer_le_nombre_de_couches_et_de_nœuds_dans_un_reseau_neuronal.txt · Dernière modification : 2020/12/27 15:13 de serge