Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Un premier réseau de neurones
Dans cet exercice, nous allons entraîner notre premier petit réseau de neurones.
Les réseaux de neurones permettent
d'apprendre des modèles non linéaires
l'utilisation de croisements de caractéristiques explicites.
Tâche 1:le modèle donné combine nos deux caractéristiques d'entrée dans un
un neurone unique. Ce modèle va-t-il apprendre des non-linéarités ? Exécutez-le pour confirmer
deviner.
Tâche 2:essayez d'augmenter le nombre de neurones dans la couche cachée
1 à 2, et essayez de passer d'une activation linéaire à une activation non linéaire
comme ReLU. Pouvez-vous créer un modèle capable d'apprendre les non-linéarités ? Modélisation
efficacement les données ?
Tâche 3:essayez d'augmenter le nombre de neurones de la couche cachée
de 2 à 3, à l'aide d'une activation non linéaire comme la fonction ReLU. Peut-il modéliser les données
efficacement ? En quoi la qualité du modèle varie-t-elle d'une exécution à l'autre ?
Tâche 4:poursuivre l'expérimentation en ajoutant ou en supprimant des couches cachées
et de neurones par couche. N'hésitez pas non plus à modifier les taux d'apprentissage,
la régularisation et d'autres paramètres d'apprentissage. Quel est le plus petit
de neurones et de couches qui donnent la perte d'évaluation
de 0,177 ou moins ?
L'augmentation de la taille du modèle améliore-t-elle l'adéquation ou la vitesse de convergence ?
Cela modifie-t-il la fréquence de convergence vers un bon modèle ? Par exemple, essayez la
l'architecture suivante:
Première couche cachée comportant 3 neurones.
Deuxième couche cachée avec 3 neurones.
Troisième couche cachée contenant 2 neurones.
(Les réponses s'affichent juste en dessous de l'exercice.)
Cliquez sur l'icône Plus pour afficher la réponse à la tâche 1.
L'activation étant définie sur Linear (Linéaire), ce modèle ne peut pas apprendre
d'éventuelles non-linéarités. La perte est très élevée et, selon nous, le modèle sous-apprentissage
les données.
Cliquez sur l'icône Plus pour afficher la réponse à la tâche 2.
La fonction d'activation non linéaire peut apprendre des modèles non linéaires. Toutefois,
une seule couche cachée de deux neurones ne peut pas refléter toutes les non-linéarités d'une
pour ce jeu de données, et présentera une perte élevée, même sans bruit.
sous-apprentissage des données. Ces exercices ne sont pas déterministes, donc certains courent
n'apprendra pas un modèle efficace, tandis que d'autres exécutions seront plus efficaces.
Le meilleur modèle n'a peut-être pas la forme que vous attendiez !
Cliquez sur l'icône Plus pour afficher la réponse à la tâche 3.
La nature non déterministe de Playground est clairement visible dans cet exercice. A
une seule couche cachée comportant 3 neurones est suffisant pour modéliser l'ensemble de données
du bruit), mais toutes les exécutions ne convergent pas vers un bon modèle.
3 neurones suffisent, car la fonction XOR peut être exprimée sous la forme d'une combinaison de 3 demi-plans (activation ReLU). Comme vous pouvez le constater,
des images de neurones, qui montrent
la sortie de chaque neurone. Dans un bon modèle
avec 3 neurones et l'activation ReLU, il y aura une image avec
ligne verticale, où X1 est détecté comme étant positif (ou négatif) ; le signe peut
être inversée), une image avec une ligne presque horizontale détectant le signe de
X2 et une image avec une ligne diagonale qui détectent leurs
d'interaction.
Cependant, toutes les exécutions ne convergeront pas vers un bon modèle. Certaines exécutions
qu'un modèle à 2 neurones, et vous pouvez voir des neurones en double
cas d'utilisation.
Cliquez sur l'icône plus pour afficher la réponse à la tâche 4.
Une seule couche cachée composée de 3 neurones peut modéliser les données,
la redondance. Ainsi, sur de nombreuses exécutions, un neurone est perdu et l'apprentissage
un bon modèle. Une seule couche contenant plus de 3 neurones possède plus de redondance.
a donc plus de chances de converger
vers un bon modèle.
Comme nous l'avons vu, une seule couche cachée comportant seulement deux neurones ne peut pas modéliser les données.
bien. Si vous l'essayez, vous pouvez voir
que tous les éléments de la couche de sortie
ne peuvent être que des formes composées des lignes de ces deux nœuds. Dans ce cas,
un réseau plus profond peut mieux modéliser l'ensemble de données que la première couche cachée seule:
les neurones individuels de la deuxième couche peuvent modéliser des formes plus complexes,
quadrant supérieur droit, en combinant les neurones dans la première couche. Lorsque vous ajoutez
la deuxième couche cachée peut toujours modéliser l'ensemble de données mieux que la première
seule, il peut être plus judicieux d'ajouter des nœuds à la première couche
d'ajouter plus de lignes au kit à partir duquel la deuxième couche
formes.
Toutefois, un modèle avec un neurone dans la première couche cachée ne peut pas apprendre un bon
quelle que soit sa profondeur. En effet, la sortie de la première requête
de couche supérieure n'évolue que le long d'une seule dimension (généralement une ligne diagonale), ce qui n'est pas
pour bien modéliser cet ensemble de données. Les couches ultérieures ne peuvent pas compenser
quelle que soit sa complexité ; les informations contenues dans les données d'entrée ont été irrémédiables
perdu.
Et si au lieu d'essayer d'avoir un petit réseau, nous avions de nombreuses couches avec
pour un problème simple comme celui-ci ? Comme nous l'avons vu,
d'un calque a la possibilité d'essayer
de nombreux pentes différentes. Le deuxième
calque auront la capacité de les accumuler
sous de nombreuses formes différentes,
avec de nombreuses formes et les couches suivantes.
En permettant au modèle d'envisager autant de formes différentes
de neurones cachés différents, vous avez créé suffisamment d'espace pour que le modèle
le surapprentissage du bruit dans l'ensemble d'entraînement, ce qui permet
des formes complexes pour correspondre aux cartes des données d'entraînement plutôt qu'aux
la vérité terrain généralisée. Dans cet exemple, les modèles plus grands peuvent être complexes
les limites pour correspondre aux
points de données précis. Dans des cas extrêmes, un grand modèle
pourrait apprendre un îlot autour d'un point de bruit individuel, appelé
mémoriser les données. En permettant au modèle d'être beaucoup plus grand,
les performances sont souvent moins élevées que celles du modèle plus simple,
juste assez de neurones pour résoudre le problème.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/08/22 (UTC)."],[[["This exercise explores training a neural network to learn nonlinearities and model data effectively."],["Increasing the number of neurons and using nonlinear activation functions like ReLU improves model performance."],["A single hidden layer with 3 neurons using ReLU can sufficiently model the data, but model quality varies between runs."],["Deeper and wider networks risk overfitting, potentially memorizing noise instead of generalizing patterns."],["While adding layers can improve model performance, redundant layers and neurons might lead to worse results compared to a simpler, well-structured model."]]],[]]