Environnement bac à sable pour les réseaux de neurones

Jouez sur un réseau de neurones ici dans votre navigateur.
Ne vous inquiétez pas, vous ne pouvez pas l'endommager. Promis :

Époques 000,000

Données

Quel ensemble de données voulez-vous utiliser ?

Fonctionnalités

Which properties do you want to feed in?

X1X2X12X22X1X2sin(X1)sin(X2)
Cliquez n'importe où pour apporter une modification.
Pondération/Biais de 0,2
Voici le résultat pour un neurone. Hover to see it larger.
Les résultats sont mélangés à des pondérations variables, illustrées par l'épaisseur des lignes.
4 neurons
2 neurons

2 Couches cachées

Sortie

Perte de test
0.507
Perte d'entraînement
0.499
-6-5-4-3-2-10123456-6-5-4-3-2-10123456
Colors shows data, neuron and weight values.
-101

.

Qu'est-ce qu'un réseau de neurones ?

Il s'agit d'une technique permettant de créer un programme informatique qui apprend à partir de données. Elle se base plutôt vaguement sur la façon dont nous croyons le cerveau humain. Tout d'abord, un ensemble de "neurones" logiciels sont créés et connectés, ce qui leur permet de s'envoyer des messages. Ensuite, le réseau est invité à résoudre un problème, qu’il tente de faire encore et encore, en renforçant chaque fois les connexions qui mènent au succès et en diminuant celles qui conduisent à une défaillance. Pour une présentation plus détaillée des réseaux de neurones, le cours Neural Networks and Deep Learning de Michael Nielsen constitue un bon point de départ. Pour une présentation plus technique, consultez l'article Deep Learning de Ian Goodfellow, Yoshua Bengio et Aaron Courville.

C'est cool, puis-je le réutiliser ?

N'hésitez pas à le faire. Nous l'avons mis à disposition de la communauté sur GitHub afin de rendre les réseaux de neurones un peu plus accessibles et d'en faciliter l'apprentissage. Vous êtes libre de l'utiliser à condition de respecter notre licence Apache. Si vous avez des suggestions d'ajouts ou de modifications, n'hésitez pas à nous contacter.

Vous trouverez également ci-dessous quelques commandes qui vous permettront d'adapter votre application à un thème ou à une leçon spécifique. Il vous suffit de choisir les fonctionnalités que vous souhaitez rendre visibles ci-dessous, puis d'enregistrer ce lien ou d'actualiser la page.

Que signifient toutes les couleurs ?

L'orange et le bleu sont utilisés dans la visualisation de manière légèrement différente, mais en général, l'orange indique des valeurs négatives tandis que le bleu montre des valeurs positives.

Les points de données (représentés par de petits cercles) sont initialement orange ou bleus, ce qui correspond à un point positif et à un point négatif.

Dans les couches cachées, les lignes sont colorées par la pondération des connexions entre les neurones. Le bleu présente une pondération positive, ce qui signifie que le réseau utilise la sortie du neurone telle qu'elle est donnée. Une ligne orange indique que le réseau attribue une pondération négative.

Dans la couche de sortie, les points sont colorés en orange ou en bleu en fonction de leurs valeurs d'origine. La couleur d'arrière-plan illustre la prévision du réseau pour une zone particulière. La fiabilité de cette prévision dépend de l'intensité de la couleur.

Quelle bibliothèque utilisez-vous ?

Nous avons écrit une petite bibliothèque de réseaux de neurones qui répond aux exigences de cette visualisation éducative. Pour les applications réelles, envisagez TensorFlow

Crédits

Ce contenu a été créé par Daniel Smilkov et Shan Carter. Il s'inscrit dans la continuité des travaux précédents d'un grand nombre de personnes, en particulier la démonstration convnet.js d'Andrej Karpathy. et les articles de Chris Olah sur les réseaux de neurones. Un grand merci également à D. Sculley pour obtenir de l'aide sur l'idée d'origine et à Fernanda Viégas, Martin Wattenberg et le reste du Big Picture et Google Brain pour obtenir leurs commentaires et leurs conseils.