Visualisation de la formation du réseau neuronal profond

13

J'essaie de trouver un équivalent de diagrammes de Hinton pour les réseaux multicouches pour tracer les poids pendant l'entraînement.

Le réseau formé est quelque peu similaire à un SRN profond, c'est-à-dire qu'il a un grand nombre de matrices de poids multiples, ce qui rendrait l'intrigue simultanée de plusieurs diagrammes de Hinton visuellement confuse.

Quelqu'un connaît-il un bon moyen de visualiser le processus de mise à jour du poids pour les réseaux récurrents à plusieurs couches?

Je n'ai pas trouvé beaucoup d'articles sur le sujet. Je pensais plutôt afficher des informations temporelles sur les poids par couche si je n'arrive pas à trouver quelque chose. Par exemple, le poids-delta au fil du temps pour chaque couche (en omettant l'utilisation de chaque connexion unique). PCA est une autre possibilité, même si je ne voudrais pas produire beaucoup de calculs supplémentaires, car la visualisation se fait en ligne pendant la formation.

runDOSrun
la source

Réponses:

10

La chose la plus proche que je connaisse est proche ConvNetJS :

ConvNetJS est une bibliothèque Javascript pour la formation de modèles Deep Learning (principalement des réseaux de neurones) entièrement dans votre navigateur. Ouvrez un onglet et vous vous entraînez. Pas de logiciel requis, pas de compilateur, pas d'installation, pas de GPU, pas de sueur.

Les démos sur cette parcelle de terrain pèsent et comment changent-elles avec le temps (gardez à l'esprit ses nombreux paramètres, car les réseaux pratiques ont beaucoup de neurones). De plus, si vous n'êtes pas satisfait de leur tracé, il y a accès aux paramètres des réseaux et vous pouvez tracer comme vous le souhaitez (puisque c'est JavaScript).

Piotr Migdal
la source
Merci! Chose intéressante, ils ont choisi d'utiliser plusieurs diagrammes de Hinton pour tracer leurs poids. Je pense toujours que c'est difficile à interpréter dès que vous avez trop de couches / connexions mais c'est bien de le voir en action au moins.
runDOSrun
5

Sur la base de ma compréhension superficielle des sujets, associée à votre question, je pense que Gephi ( https://gephi.github.io ; le lien original gephi.org y redirige) devrait être capable de gérer la visualisation dynamique du réseau neuronal . Il semble que, pour atteindre votre objectif, vous devez diffuser vos graphiques avec les poids correspondants ( https://forum.gephi.org/viewtopic.php?t=1875 ). Pour le streaming , vous aurez très probablement besoin de ce plug-in : https://marketplace.gephi.org/plugin/graph-streaming .

MISE À JOUR : Vous pouvez également trouver des logiciels SoNIA utiles: http://web.stanford.edu/group/sonia .

Aleksandr Blekh
la source
1
Idée très intéressante! Vraiment, visualiser un réseau profond comme un réseau social est quelque chose auquel je n'ai pas pensé. La principale différence entre les modèles est que ces graphiques codent les informations dans leurs nœuds tandis que les réseaux de neurones le font dans leurs connexions. Mais il pourrait être modifié, par exemple en définissant les valeurs des nœuds de réseau social sur les poids des connexions sortantes du réseau neuronal.
runDOSrun
Je suis content que tu aimes l'idée. N'hésitez pas à voter / accepter. Et n'oubliez pas de passer en revue le logiciel SoNIA, avec un lien vers lequel j'ai récemment mis à jour ma réponse. Enfin, si vous utilisez (ou prévoyez d'utiliser) R, voici une autre information intéressante pour vous: sna.stanford.edu/rlabs.php .
Aleksandr Blekh