Qual função de ativação para a camada de saída?


44

Embora a escolha das funções de ativação para a camada oculta seja bastante clara (principalmente sigmóide ou tanh), pergunto-me como decidir sobre a função de ativação para a camada de saída. As escolhas comuns são funções lineares, funções sigmóides e funções softmax. No entanto, quando devo usar qual?


3
Mais recentemente, a ReLU tornou-se popular como a função de ativação de unidades ocultas.
Ijuneja 7/11

Respostas:


39
  • Regressão: linear (porque os valores são ilimitados)
  • Classificação: softmax (sigmoide simples também funciona, mas softmax funciona melhor)

Use sigmoid simples apenas se sua saída admitir várias respostas "verdadeiras", por exemplo, uma rede que verifique a presença de vários objetos em uma imagem. Em outras palavras, a saída não é uma distribuição de probabilidade (não precisa somar 1).


2
Softmax também é importante se você tiver vários grupos para a classificação
cdeterman

15
Eu acho incorreto dizer que o softmax funciona "melhor" que um sigmóide, mas você pode usá-lo nos casos em que não pode usar um sigmóide. Para a classificação binária, a função logística (um sigmóide) e o softmax terão um desempenho igualmente bom, mas a função logística é matematicamente mais simples e, portanto, a escolha natural. Quando você possui mais de duas classes, no entanto, não pode usar uma função escalar como a função logística, pois precisa de mais de uma saída para conhecer as probabilidades de todas as classes, portanto, use o softmax.
HelloGoodbye

1
Eu não acho que o softmax é uma ativação. De um modo geral, você deve ativá-lo antes de normalizá-lo (softmax).
Aaron

23

Posso estar atrasado para a festa, mas parece que há algumas coisas que precisam ser esclarecidas aqui.

g(x)CzCz

C(y,g(z))=12(yg(z))2g(x)=x

C(y,g(z))z=C(y,g(z))g(z)g(z)z=g(z)(12(yg(z))2)z(z)=(yg(z))1=g(z)y
Cz

Cz

Segundo, gostaria de acrescentar que existem muitas funções de ativação que podem ser usadas para as camadas ocultas. Os sigmóides (como a função logística e a tangente hiperbólica) provaram funcionar bem, mas conforme indicado por Jatin , eles sofrem gradientes de fuga quando suas redes se tornam muito profundas. Nesse caso, as ReLUs se tornaram populares. O que eu gostaria de enfatizar é que há muito mais funções de ativação disponíveis e diferentes pesquisadores continuam procurando novas (por exemplo, Unidades Lineares Exponenciais (ELU), Unidades Lineares de Erro Gaussiano (GELUs), ...) com diferentes / melhores propriedades

Para concluir: Ao procurar as melhores funções de ativação, seja criativo. Experimente coisas diferentes e veja quais combinações levam ao melhor desempenho.


Adendo: Para mais pares de funções de perda e ativações, você provavelmente deseja procurar funções de link (canônicas)


por que essa não é a melhor resposta? bastante ousado intuitivo e completamente científico
Vikram Murthy

13

Sigmoid e tanh não devem ser usados ​​como função de ativação para a camada oculta. Isso ocorre devido ao problema de gradiente de fuga, ou seja, se sua entrada estiver em um lado superior (onde o sigmóide fica plano), o gradiente estará próximo de zero. Isso causará um aprendizado muito lento ou nenhum durante a retropropagação, pois os pesos serão atualizados com valores realmente pequenos.

Explicação detalhada aqui: http://cs231n.github.io/neural-networks-1/#actfun

A melhor função para camadas ocultas é, portanto, ReLu.


11
A questão está pedindo a camada de saída. -1
Euler_Salter 23/10

1
Acordado. Adicionada a resposta com base na primeira linha de pergunta. Talvez isso devesse ter sido um comentário em vez de uma resposta.
Jatin

Bem, mas você também não teria "problema de neurônios mortos da ReLU?" Além disso, o problema de gradiente de vanishijg pode ser "resolvido" pela normalização em lote. Se você ainda deseja "desativar" alguns neurônios da mesma maneira que as ativações da ReLU, pode desativar aleatoriamente os neurônios por desistências. Então eu acho que no final, tudo depende do problema e apenas usar o que funciona melhor
Kevvy Kim

5

2,3,4,5,...

2,3,4,...

p(y=1)1p(y=1)=p(y=0)

Usar a função de identidade como saída pode ser útil quando suas saídas são ilimitadas. O lucro ou prejuízo de uma empresa durante um trimestre pode ser ilimitado de ambos os lados.

As unidades ReLU ou variantes semelhantes podem ser úteis quando a saída é delimitada acima ou abaixo. Se a saída for restrita apenas a não-negativa, faria sentido usar uma ativação ReLU como a função de saída.

[1,1]

O bom das redes neurais é que elas são ferramentas incrivelmente flexíveis.

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.