Como verificar se há neurônios relu mortos


10

Contexto: Ao ajustar redes neurais com ativação relu, descobri que algumas vezes a previsão fica quase constante. Acredito que isso se deva à morte dos neurônios durante o treinamento, conforme indicado aqui. ( Qual é o problema da "ReLU moribunda" nas redes neurais? )

Pergunta: O que eu espero fazer é implementar uma verificação no próprio código para verificar se os neurônios estão mortos. Depois disso, o código poderá reequipar a rede, se necessário.

Como tal, o que é um bom critério para verificar se há neurônios mortos? Atualmente, estou pensando em verificar se há uma baixa variação na previsão como um critério.

Se ajudar, estou usando o keras.


Adicionar um resumo para os preconceitos em tensorboard: tensorflow.org/get_started/summaries_and_tensorboard
Emre

Respostas:


6

Uma ReLU morta significa basicamente que seu valor de argumento é negativo, de modo que o gradiente permanece em 0; não importa como você treiná-lo a partir desse ponto. Você pode simplesmente dar uma olhada no gradiente durante o treinamento para ver se uma ReLU está morta ou não.

Na prática, você pode simplesmente querer usar ReLUs com vazamento, ou seja, em vez de f (x) = max (0, x), defina f (x) = x se x> 0 ef (x) = 0,01x se x <= 0 Dessa maneira, você sempre permite um pequeno gradiente diferente de zero e a unidade não deve mais ficar completamente paralisada no treinamento.


1

Um neurônio morto é um neurônio que não é atualizado durante o treinamento, ou seja. 0 gradiente.

Keras permite a extração de gradiente diretamente para uma determinada linha de dados. (Outro bom exemplo)

Ou você pode extrair os pesos dos neurônios e calcular o gradiente você mesmo
(por exemplo, para relu, argumento negativo para relu -> 0 gradiente).

Infelizmente, o gradiente é específico do ponto de dados. Somente se o gradiente for 0 para cada linha de dados de treinamento, você poderá ter certeza de que o neurônio não será atualizado para todos os minibatches durante uma época de treinamento.

Relu com vazamento pode ser uma estratégia útil, pois não há valor para relu com vazamento, onde o gradiente é igual a 0.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.