Visualizando o treinamento em redes neurais profundas

13

Estou tentando encontrar um equivalente dos diagramas de Hinton para redes multicamadas para plotar os pesos durante o treinamento.

A rede treinada é um pouco semelhante a um SRN profundo, ou seja, possui um número alto de matrizes de peso múltiplas, o que tornaria visualmente confusa a plotagem simultânea de vários diagramas de Hinton.

Alguém conhece uma boa maneira de visualizar o processo de atualização de peso para redes recorrentes com várias camadas?

Não encontrei muitos trabalhos sobre o assunto. Eu estava pensando em exibir informações relacionadas ao tempo sobre os pesos por camada, se não conseguir encontrar alguma coisa. Por exemplo, o delta de peso ao longo do tempo para cada camada (omitindo o uso de todas as conexões). O PCA é outra possibilidade, embora eu gostaria de não produzir muitos cálculos adicionais, pois a visualização é feita online durante o treinamento.

runDOSrun
fonte

Respostas:

10

O que eu mais sei é o ConvNetJS :

ConvNetJS é uma biblioteca Javascript para o treinamento de modelos de Deep Learning (principalmente Redes Neurais) inteiramente no seu navegador. Abra uma guia e você está treinando. Sem requisitos de software, sem compiladores, sem instalações, sem GPUs, sem suor.

As demonstrações neste site pesam e como elas mudam com o tempo (lembre-se de seus muitos parâmetros, pois as redes práticas têm muitos neurônios). Além disso, se você não estiver satisfeito com a plotagem, há acesso aos parâmetros da rede e poderá plotar como desejar (já que é JavaScript).

Piotr Migdal
fonte
Obrigado! Curiosamente, eles escolheram usar vários diagramas de Hinton para plotar seus pesos. Eu ainda acho que é difícil de interpretar assim que você tem muitas camadas / conexões, mas é bom vê-lo em ação pelo menos.
runDOSrun
5

Com base na minha compreensão superficial dos tópicos, associados à sua pergunta, acho que o Gephi ( https://gephi.github.io ; o link original do gephi.org redireciona para lá) deve ser capaz de lidar com a visualização dinâmica da rede neural . Parece que, para atingir seu objetivo, você precisa transmitir seus gráficos com os pesos correspondentes ( https://forum.gephi.org/viewtopic.php?t=1875 ). Para streaming , você provavelmente precisará deste plug-in : https://marketplace.gephi.org/plugin/graph-streaming .

ATUALIZAÇÃO : Você também pode encontrar o software SoNIA útil: http://web.stanford.edu/group/sonia .

Aleksandr Blekh
fonte
1
Idéia muito interessante! Realmente, visualizar uma rede profunda como uma rede social é algo em que não pensei. A principal diferença entre os modelos é que esses gráficos codificam informações em seus nós, enquanto as redes neurais o fazem dentro de suas conexões. Mas pode ser modificado, por exemplo, definindo os valores dos nós da rede social para os pesos das conexões de saída da rede neural.
runDOSrun
Fico feliz que você gostou da ideia. Sinta-se livre para votar / aceitar. E não se esqueça de revisar o software SoNIA, com um link para o qual eu atualizei minha resposta recentemente. Finalmente, se você usa (ou planeja usar) R, aqui está outra informação interessante relevante para você: sna.stanford.edu/rlabs.php .
Aleksandr Blekh