É por isso que provavelmente é uma idéia melhor usar PReLU, ELU ou outras ativações vazias do tipo ReLU que não diminuem para 0, mas caem para algo como 0,1 * x quando x fica negativo para continuar aprendendo. Pareceu-me por muito tempo que as ReLUs são uma história como sigmóide, embora, por algum motivo, as pessoas ainda publiquem documentos com elas. Por quê? Eu não sei.
Dmytro Mishkin e outros caras realmente testaram uma rede com vários tipos de ativação diferentes, você deve examinar as descobertas deles sobre o desempenho de diferentes funções de ativação e outras coisas. Algumas funções, como o XOR, são melhor aprendidas com o ReLU simples. Não pense em nenhum material neural em termos de dogma, porque as redes neurais têm muito trabalho em andamento. Ninguém no mundo realmente os conhece e entende bem o suficiente para contar a verdade divina. Ninguém. Experimente as coisas, faça suas próprias descobertas. Lembre-se de que o uso do ReLU em si é um desenvolvimento muito recente e, durante décadas, todos os diferentes doutores da área usaram funções de ativação complicadas, das quais agora só podemos rir. Muitas vezes, "saber" demais pode gerar resultados ruins. É importante entender que as redes neurais não são uma ciência exata. Nada na matemática diz que as redes neurais realmente funcionam tão bem quanto funcionam. É heurístico. E por isso é muito maleável.
Até a ativação de valor absoluto obtém bons resultados em alguns problemas, por exemplo, problemas do tipo XOR. Diferentes funções de ativação são mais adequadas para diferentes propósitos. Eu tentei o Cifar-10 com abs () e parecia ter um desempenho pior. No entanto, não posso dizer que "é uma função de ativação pior para reconhecimento visual", porque não tenho certeza, por exemplo, se minha pré-inicialização foi ideal para ela etc. O próprio fato de estar aprendendo relativamente bem me surpreendeu.
Além disso, na vida real, as "derivadas" que você passa para o backprop não precisam necessariamente corresponder às derivadas matemáticas reais.
Eu diria até que deveríamos proibir chamá-los de "derivativos" e começar a chamá-los de outra coisa, por exemplo, error activation functions
não fechar nossas mentes às possibilidades de mexer com elas. Você pode, por exemplo, usar a ativação ReLU, mas fornecer 0,1 ou algo parecido em vez de 0 como uma derivada para x <0. De certa forma, você tem uma ReLU simples, mas com os neurônios não sendo capazes de "morrer de adaptabilidade". Eu chamo isso de NecroRelu, porque é um ReLU que não pode morrer. E, em alguns casos (definitivamente não na maioria), isso funciona melhor que o LeakyReLU comum, que na verdade tem 0,1 derivada em x <0 e é melhor que o ReLU usual. Não creio que muitos outros tenham investigado essa função, porém, isso ou algo semelhante possa realmente ser uma função de ativação geralmente legal que ninguém considerou apenas porque está concentrada demais em matemática.
Quanto ao que geralmente é usado, para a função de ativação tanH (x) é comum passar 1 - x² em vez de 1 - tanH (x) ² como derivado para calcular as coisas mais rapidamente.
Além disso, lembre-se de que ReLU não é tão "obviamente melhor" do que, por exemplo, TanH. O TanH provavelmente pode ser melhor em alguns casos. Apenas, ao que parece, não em reconhecimento visual. No entanto, o ELU, por exemplo, possui um pouco de suavidade sigmóide e é uma das funções de ativação mais conhecidas para reconhecimento visual no momento. Eu realmente não tentei, mas aposto que é possível definir vários grupos com diferentes funções de ativação no mesmo nível de camada para uma vantagem. Porque, uma lógica diferente é melhor descrita com diferentes funções de ativação. E às vezes você provavelmente precisa de vários tipos de avaliação.
Observe que é importante ter uma inicialização que corresponda ao tipo de sua função de ativação. As ReLUs com vazamento precisam de outras init que as ReLUs simples, por exemplo.
EDIT: Na verdade, o ReLU padrão parece menos propenso a sobreajuste versus vazamentos nas arquiteturas modernas. Pelo menos no reconhecimento de imagem. Parece que, se você estiver buscando uma rede de precisão muito alta com uma enorme carga de parâmetros, talvez seja melhor usar as opções simples ReLU vs leaky. Mas, é claro, teste tudo isso sozinho. Talvez algumas coisas vazadas funcionem melhor se for dada mais regularização.