Referindo-se às notas do curso de Stanford sobre Redes neurais convolucionais para reconhecimento visual , um parágrafo diz:
"Infelizmente, as unidades ReLU podem ser frágeis durante o treinamento e podem" morrer ". Por exemplo, um grande gradiente que flui através de um neurônio ReLU pode fazer com que os pesos sejam atualizados de forma que o neurônio nunca seja ativado em nenhum ponto de dados novamente. Se isso acontece, o gradiente que flui através da unidade será para sempre zero a partir desse ponto. Ou seja, as unidades ReLU podem morrer irreversivelmente durante o treinamento, pois podem ser eliminadas do coletor de dados. Por exemplo, você pode achar que até 40 % da sua rede pode estar "morta" (por exemplo, neurônios que nunca são ativados em todo o conjunto de dados de treinamento) se a taxa de aprendizado estiver muito alta. Com uma configuração adequada da taxa de aprendizado, isso é menos frequente ".
O que significa morrer de neurônios aqui?
Você poderia fornecer uma explicação intuitiva em termos mais simples.
fonte
Respostas:
Uma ReLU "inoperante" sempre gera o mesmo valor (zero, mas isso não é importante) para qualquer entrada. Provavelmente, isso é alcançado através da aprendizagem de um grande termo de viés negativo para seus pesos.
Por sua vez, isso significa que não assume nenhum papel na discriminação entre insumos. Para classificação, você pode visualizar isso como um plano de decisão fora de todos os dados de entrada possíveis.
Quando uma ReLU termina nesse estado, é improvável que se recupere, porque o gradiente da função em 0 também é 0; portanto, o aprendizado da descida do gradiente não altera os pesos. ReLUs "com vazamento" com um pequeno gradiente positivo para entradas negativas (
y=0.01x
quando x <0 diz) são uma tentativa de resolver esse problema e oferecem uma chance de recuperação.Os neurônios sigmóides e tanh podem sofrer problemas semelhantes à medida que seus valores saturam, mas sempre há pelo menos um pequeno gradiente que lhes permite se recuperar a longo prazo.
fonte
Vamos revisar a aparência da ReLU (Rectified Linear Unit):
Assumindo uma medida de erro muito simples
fonte
What if, for the input 𝑥𝑛, the current weights put the ReLU on the left flat side while it optimally should be on the right side for this particular input ?
, se a entrada for negativa, o gradiente seria 0? o que é ideal para este caso? você poderia ajudar a entendê-lo?Os neurônios ReLU produzem zero e derivam zero para todas as entradas negativas. Portanto, se os pesos em sua rede sempre levarem a entradas negativas em um neurônio ReLU, esse neurônio não estará efetivamente contribuindo para o treinamento da rede. Matematicamente, a contribuição do gradiente para as atualizações de peso provenientes desse neurônio é sempre zero (consulte o Apêndice Matemático para obter mais detalhes).
Em geral, o que acontece depende de como as informações fluem pela rede. Você pode imaginar que, à medida que o treinamento avança, os valores que os neurônios produzem podem se desviar e possibilitar que os pesos matem todo o fluxo de dados através de alguns deles. (Às vezes, eles podem deixar essas configurações desfavoráveis devido a atualizações de peso anteriores à rede!). Explorei essa idéia em um post sobre inicialização de peso - que também pode contribuir para esse problema - e sua relação com o fluxo de dados. Acho que meu argumento aqui pode ser ilustrado por uma trama desse artigo:
O gráfico exibe ativações em um Multi-Layer Perceptron de 5 camadas com ativações ReLU após uma passagem pela rede com diferentes estratégias de inicialização. Você pode ver que, dependendo da configuração do peso, as saídas da sua rede podem ser bloqueadas.
Apêndice Matemático
O primeiro termo à direita pode ser computado recursivamente. O segundo termo à direita é o único local que envolve diretamente o peso e pode ser dividido emw(i)jk
Com isso, você pode ver que, se as saídas são sempre negativas, os pesos que levam ao neurônio não são atualizados e o neurônio não contribui para o aprendizado.
fonte
Therefore, if your inputs are on roughly the same scale, a large step in the direction of the gradient can leave you with weights that give similar inputs which can end up being negative.
como os pesos estão ficando negativos se as entradas são normalizadas?Para ser mais específico no idioma, enquanto o gradiente local de ReLU (que é ) multiplica o gradiente que retorna por causa da propagação de retorno, o resultado do gradiente atualizado pode ser um número negativo grande (se o gradiente que back é um número negativo grande).1
Um gradiente atualizado negativo tão grande produz um negativo grande quando a taxa de aprendizado é relativamente grande; portanto, reprimirá as atualizações que acontecerão nesse neurônio, já que é quase impossível colocar um número positivo grande para compensar o grande número negativo gerado por esse " quebrado " .w iwi wi
fonte
O "Dying ReLU" refere-se ao neurônio que gera 0 para seus dados no conjunto de treinamento. Isso acontece porque a soma das entradas de peso * em um neurônio (também chamada de ativação ) se torna <= 0 para todos os padrões de entrada. Isso faz com que ReLU produza 0. Como o derivado de ReLU é 0, neste caso, nenhuma atualização de peso é feita e o neurônio fica preso na saída 0.
Coisas a serem observadas:
fonte