Visualisierung des Deep Neural Network Trainings

13

Ich versuche, ein Äquivalent zu Hinton-Diagrammen für mehrschichtige Netzwerke zu finden, um die Gewichte während des Trainings zu zeichnen.

Das trainierte Netzwerk ähnelt in gewisser Weise einem Deep SRN, dh es hat eine hohe Anzahl von Mehrfachgewichtungsmatrizen, was die gleichzeitige Darstellung mehrerer Hinton-Diagramme visuell verwirrend machen würde.

Kennt jemand eine gute Möglichkeit, den Gewichtungsaktualisierungsprozess für wiederkehrende Netzwerke mit mehreren Ebenen zu visualisieren?

Ich habe nicht viele Artikel zu diesem Thema gefunden. Ich habe darüber nachgedacht, stattdessen zeitbezogene Informationen zu den Gewichten pro Schicht anzuzeigen, wenn mir nichts einfällt. ZB das Gewichts-Delta über die Zeit für jede Schicht (ohne die Verwendung jeder einzelnen Verbindung). PCA ist eine andere Möglichkeit, obwohl ich nicht viele zusätzliche Berechnungen erstellen möchte, da die Visualisierung während des Trainings online erfolgt.

runDOSrun
quelle

Antworten:

10

Die letzte Sache, die ich kenne, ist ConvNetJS :

ConvNetJS ist eine Javascript-Bibliothek zum Trainieren von Deep-Learning-Modellen (hauptsächlich neuronale Netze), die vollständig in Ihrem Browser enthalten ist. Öffnen Sie einen Tab und Sie trainieren. Keine Softwareanforderungen, keine Compiler, keine Installationen, keine GPUs, kein Schweiß.

Demos auf dieser Seite sind schwer und wie verändern sie sich mit der Zeit (bedenken Sie, dass es viele Parameter gibt, da praktische Netzwerke viele Neuronen haben). Wenn Sie mit dem Plotten nicht zufrieden sind, haben Sie Zugriff auf Netzwerkparameter und können plotten, wie Sie möchten (da es sich um JavaScript handelt).

Piotr Migdal
quelle
Vielen Dank! Interessanterweise verwendeten sie mehrere Hinton-Diagramme, um ihre Gewichte zu zeichnen. Ich denke immer noch, es ist schwierig zu interpretieren, sobald Sie zu viele Ebenen / Verbindungen haben, aber es ist gut, es zumindest in Aktion zu sehen.
runDOSrun
5

Aufgrund meines flüchtigen Verständnisses der mit Ihrer Frage verbundenen Themen denke ich, dass Gephi ( https://gephi.github.io ; die ursprüngliche Weiterleitung von gephi.org) in der Lage sein sollte, die dynamische Visualisierung von neuronalen Netzen zu handhaben . Es scheint, dass Sie, um Ihr Ziel zu erreichen, Ihre Grafiken mit entsprechenden Gewichten streamen müssen ( https://forum.gephi.org/viewtopic.php?t=1875 ). Zum Streamen benötigen Sie höchstwahrscheinlich dieses Plug-In : https://marketplace.gephi.org/plugin/graph-streaming .

UPDATE : Möglicherweise finden Sie auch nützliche SoNIA-Software: http://web.stanford.edu/group/sonia .

Aleksandr Blekh
quelle
1
Sehr interessante Idee! Es ist wirklich etwas, woran ich nicht gedacht habe, ein tiefes Netz wie ein soziales Netzwerk zu visualisieren. Der Hauptunterschied zwischen den Modellen besteht darin, dass diese Graphen Informationen in ihren Knoten kodieren, während neuronale Netze dies in ihren Verbindungen tun. Sie kann jedoch geändert werden, indem z. B. die Knotenwerte des sozialen Netzwerks auf die Gewichte der ausgehenden Verbindungen des neuronalen Netzwerks eingestellt werden.
runDOSrun
Ich bin froh, dass dir die Idee gefällt. Fühlen Sie sich frei zu stimmen / zu akzeptieren. Und vergessen Sie nicht, die SoNIA-Software mit dem Link zu lesen, auf den ich kürzlich meine Antwort aktualisiert habe. Wenn Sie R verwenden (oder beabsichtigen, dies zu tun ), finden Sie eine weitere relevante interessante Information: sna.stanford.edu/rlabs.php .
Aleksandr Blekh