Escolha da função de ativação oculta por rede neural

14

Li em outro lugar que a escolha da função de ativação da camada oculta em um NN deve se basear na necessidade de alguém , ou seja, se você precisar de valores no intervalo de -1 a 1, use tanh e sigmóide no intervalo de 0 a 1.

Minha pergunta é como alguém sabe qual é a sua necessidade ? É baseado no intervalo da camada de entrada, por exemplo, usa a função que pode abranger toda a gama de valores da camada de entrada ou reflete de alguma forma a distribuição da camada de entrada (função Gaussiana)? Ou a necessidade do problema / domínio é específica e a experiência / julgamento de alguém é necessária para fazer essa escolha? Ou é simplesmente "use o que dá o melhor erro de treinamento mínimo validado cruzadamente?"

babelproofreader
fonte
3
Esse argumento é bs porque (tanh + 1) / 2 também está em 0-1, para não mencionar que "sigmóide" é um termo tão vago que muitas vezes cobre tanh.
Provavelmente vale a pena mencionar que qualquer conjunto de dados pode ser normalizado para 0-> 1 e feito para usar uma ativação sigmóide 1 + (1 / exp(-sum)). Tornando a necessidade muito difícil de entender sem experimentar as duas em cada conjunto de dados. A necessidade, como você a descreve aqui, está ligada à relação real que está sendo aprendida, ou seja, um conjunto de dados binários aprenderá mais rapidamente ou de maneira alguma dadas ativações diferentes.
Adrian Seeley

Respostas:

12

A LeCun discute isso na Seção 4.4 do Efficient Backprop . A motivação é semelhante à motivação para normalizar a entrada como média zero (Seção 4.3). As saídas médias da função de ativação tanh são mais prováveis ​​de serem próximas de zero do que o sigmóide, cuja saída média deve ser positiva.

user1149913
fonte
Uma leitura muito informativa!
Babelproofreader
6

A necessidade mencionada no primeiro parágrafo da pergunta está relacionada à função de ativação da camada de saída , e não à função de ativação da camada oculta. Ter saídas que variam de 0 a 1 é conveniente, pois significa que elas podem representar diretamente probabilidades. No entanto, o IIRC, uma rede com funções de ativação da camada de saída tanh pode ser trivialmente transformada em uma rede com a função de ativação da camada de saída logística, portanto, na prática, isso não importa muito.

IIRC o motivo do uso da função tanh em vez da ativação logística nas unidades ocultas, que é a alteração efetuada no peso usando a retropropagação depende tanto da saída do neurônio da camada oculta quanto da derivada da função de ativação, portanto, usando a ativação logística Na função, você pode zerar ao mesmo tempo, o que pode acabar com o congelamento da unidade de camada oculta.

Em resumo, use tanh para funções de ativação de camada oculta, escolha a função de ativação da camada de saída para aplicar as restrições desejadas na saída (opções comuns: linear - sem restrições, logística - a saída fica entre 0 e 1 e exponencial - a saída estritamente positiva).

Dikran Marsupial
fonte
Eu não entendo o "... ambos vão zero ...". Vejo que a saída pode ser zero, mas como é possível que a derivada da função logística seja zero como não é?
Erogol 01/11/12
não vai exatamente a zero, para a função logística, apenas se torna muito pequeno. Para a função tanh, a derivada é maior quando a saída é zero e a saída é maior quando a derivada é menor. O artigo original foi escrito no final dos anos 80, vou ver se consigo me lembrar dos detalhes.
Dikran Marsupial
2
Não consigo encontrar o artigo original, mas alguns artigos do livro "Redes Neurais - Truques do Comércio" sugerem que o tanh é melhor nas camadas ocultas, pois as redes têm melhor desempenho se as ativações da camada oculta estiverem centralizadas (ou seja, zero média )
Dikran Marsupial
2

1.7159×tanh(x×(2/3))-1+1[-1.5,+1.5]

O conceito geral de escolher sigmoide para o seu objetivo é escolher o de acordo com a regra, seus valores de saída estão no intervalo de pontos, torna a segunda derivada da função sigmoide máxima.

erogol
fonte