Wizualizacja treningu głębokiej sieci neuronowej

13

Próbuję znaleźć odpowiednik diagramów Hintona dla sieci wielowarstwowych, aby wykreślić wagi podczas treningu.

Przeszkolona sieć jest nieco podobna do Deep SRN, tj. Ma dużą liczbę macierzy wielokrotnych ciężaru, co sprawiłoby, że jednoczesny wykres kilku diagramów Hintona byłby mylący wizualnie.

Czy ktoś zna dobry sposób na wizualizację procesu aktualizacji wagi dla sieci powtarzających się z wieloma warstwami?

Nie znalazłem wiele artykułów na ten temat. Zastanawiałem się nad wyświetleniem informacji o czasie na temat wag na warstwę, jeśli nie mogę czegoś wymyślić. Np. Delta wagowa w czasie dla każdej warstwy (pomijając użycie każdego pojedynczego połączenia). PCA to kolejna możliwość, choć nie chciałbym generować dodatkowych obliczeń, ponieważ wizualizacja odbywa się online podczas szkolenia.

runDOSrun
źródło

Odpowiedzi:

10

To, co wiem, to ConvNetJS :

ConvNetJS to biblioteka JavaScript do szkolenia modeli głębokiego uczenia (głównie sieci neuronowych) całkowicie w przeglądarce. Otwórz zakładkę i trenujesz. Bez wymagań oprogramowania, bez kompilatorów, bez instalacji, bez procesorów graficznych, bez potu.

Dema na tej stronie ważą i jak zmieniają się z czasem (pamiętaj, że ma wiele parametrów, ponieważ praktyczne sieci mają wiele neuronów). Ponadto, jeśli nie jesteś zadowolony z ich kreślenia, masz dostęp do parametrów sieci i możesz drukować według własnego uznania (ponieważ jest to JavaScript).

Piotr Migdal
źródło
Dzięki! Co ciekawe, postanowili użyć wielu diagramów Hintona, aby wykreślić swoje ciężary. Nadal uważam, że trudno jest zinterpretować, skoro masz zbyt wiele warstw / połączeń, ale dobrze jest widzieć przynajmniej w akcji.
runDOSrun,
5

W oparciu o moje pobieżne zrozumienie tematów związanych z twoim pytaniem, uważam, że Gephi ( https://gephi.github.io ; oryginalny link gephi.org tam przekierowuje) powinien być w stanie obsłużyć dynamiczną wizualizację sieci neuronowej . Wydaje się, że aby osiągnąć swój cel, musisz przesyłać strumieniowo wykresy z odpowiednimi wagami ( https://forum.gephi.org/viewtopic.php?t=1875 ). Do przesyłania strumieniowego najprawdopodobniej będziesz potrzebować tej wtyczki : https://marketplace.gephi.org/plugin/graph-streaming .

AKTUALIZACJA : Możesz także znaleźć przydatne oprogramowanie SoNIA: http://web.stanford.edu/group/sonia .

Aleksandr Blekh
źródło
1
Bardzo ciekawy pomysł! Naprawdę wizualizacja głębokiej sieci jak sieci społecznościowej jest czymś, o czym nie myślałem. Główna różnica między modelami polega na tym, że te wykresy kodują informacje w swoich węzłach, podczas gdy sieci neuronowe robią to w ramach swoich połączeń. Można to jednak zmodyfikować, np. Ustawiając wartości węzłów sieci społecznościowej na wagi połączeń wychodzących sieci neuronowej.
runDOSrun,
Cieszę się, że podoba ci się ten pomysł. Zachęcamy do głosowania / akceptowania. I nie zapomnij przejrzeć oprogramowania SoNIA, z linkiem, na który niedawno zaktualizowałem swoją odpowiedź. Wreszcie, jeśli używasz (lub planujesz użyć) R, oto kolejna interesująca informacja dla ciebie: sna.stanford.edu/rlabs.php .
Aleksandr Blekh