Quais são as vantagens do ReLU sobre a função sigmóide em redes neurais profundas?


141

O estado da arte da não linearidade é usar unidades lineares retificadas (ReLU) em vez da função sigmóide em redes neurais profundas. Quais são as vantagens?

Sei que treinar uma rede quando o ReLU é usado seria mais rápido e com inspiração biológica, quais são as outras vantagens? (Ou seja, alguma desvantagem do uso de sigmóide)?


Fiquei com a impressão de que permitir a não linearidade em sua rede era uma vantagem. Mas eu não vejo isso em qualquer resposta abaixo ...
Monica Heddneck

2
@MonicaHeddneck tanto Relu e sigmóide são não-lineares ...
Antoine

Respostas:


130

Dois benefícios adicionais adicionais de ReLUs são a escarsidade e uma probabilidade reduzida de gradiente de fuga. Mas primeiro lembre-se de que a definição de uma ReLU é onde a = W x + b .h=max(0 0,uma)uma=Wx+b

Um grande benefício é a probabilidade reduzida de o gradiente desaparecer. Isso surge quando . Neste regime, o gradiente tem um valor constante. Por outro lado, o gradiente de sigmóides se torna cada vez menor à medida que o valor absoluto de x aumenta. O gradiente constante de ReLUs resulta em aprendizado mais rápido.uma>0 0

O outro benefício das ReLUs é a esparsidade. A escassez surge quando . Quanto mais unidades existirem em uma camada, mais esparsa será a representação resultante. Os sigmóides, por outro lado, sempre geram algum valor diferente de zero, resultando em representações densas. Representações esparsas parecem ser mais benéficas que representações densas.uma0 0


2
Quando você diz o gradiente, quer dizer com relação aos pesos ou à entrada x? @DaemonMaker
MAS

4
Com relação aos pesos. Algoritmos de aprendizado baseados em gradiente sempre assumem o gradiente com relação aos parâmetros do aluno, ou seja, os pesos e desvios em uma NN.
DaemonMaker 30/01

2
O que você quer dizer com "representações" densas e "esparsas"? A consulta ao Google "redes neurais de representação esparsa" não parece ter nada de relevante.
Hi-Angel

6
"Representações esparsas parecem ser mais benéficas que representações densas". Você poderia fornecer uma fonte ou explicação?
Rohan Saxena

1
Não entendo como essa resposta está correta. A "probabilidade reduzida de o gradiente desaparecer" deixa algo a desejar. O ReLu é ZERO para suficientemente pequeno . Durante o aprendizado, os gradientes desaparecerão para certos neurônios quando você estiver nesse regime. Na verdade, é claramente inevitável, porque, caso contrário, sua rede será linear. A normalização em lote resolve isso principalmente. Isso nem menciona o motivo mais importante: o ReLu e seus gradientes. são extremamente rápidos de calcular, em comparação com um sigmóide. x
Alex R.

65

Vantagem:

  • Sigmoide: não explodindo a ativação
  • Relu: gradiente que não desaparece
  • Relu: Mais computacionalmente eficiente para calcular do que as funções do tipo Sigmoid, pois o Relu só precisa selecionar max (0, ) e não executar operações exponenciais caras, como no Sigmoidsx
  • Relu: Na prática, redes com Relu tendem a mostrar melhor desempenho de convergência do que sigmóide. ( Krizhevsky et al. )

Desvantagem:

  • Sigmóide: tende a desaparecer gradiente (porque existe um mecanismo para reduzir o gradiente à medida que " " aumenta, onde " a " é a entrada de uma função sigmóide. Gradiente de Sigmóide: S ( a ) = S ( a ) ( 1 - S ( a ) ) . Quando " a " cresce infinitamente grande, S ( a ) = S ( a ) ( 1 - S ( a ) ) = 1 ×aaS(a)=S(a)(1S(a))a ).S(uma)=S(uma)(1-S(uma))=1×(1-1)=0 0

  • Relu: tende a explodir a ativação (não há mecanismo para restringir a saída do neurônio, pois " " é a saída)uma

  • Relu: Dying Relu problem - se muitas ativações ficarem abaixo de zero, a maioria das unidades (neurônios) em rede com Relu simplesmente emitirá zero, em outras palavras, morrerá e, portanto, proibirá o aprendizado. usando Leaky-Relu.)

7
Você pode achar útil usar a tipografia matemática com o Látex, colocando cifrões em torno de suas equações, por exemplo, $x$produz . x
Silverfish

Relu: não desaparecendo gradiente. Hã? para todos os x < - b / a . Relu(umax+b)=0 0x<-b/uma
Alex R.

40

Apenas complementando as outras respostas:

Gradientes de fuga

As outras respostas têm razão em apontar que quanto maior a entrada (em valor absoluto), menor o gradiente da função sigmóide. Mas, provavelmente um efeito ainda mais importante é que a derivada da função sigmóide é SEMPRE menor que uma . Na verdade, é no máximo 0,25!

O lado negativo disso é que, se você tiver muitas camadas, você multiplicará esses gradientes e o produto de muitos valores menores que 1 passará a zero rapidamente.

Desde que o estado da arte do Deep Learning mostrou que mais camadas ajudam muito, essa desvantagem da função Sigmoid é um assassino de jogo. Você simplesmente não pode fazer Deep Learning com Sigmoid.

0 0uma<0 01uma>0 0


10
Esta é a resposta que eu estava procurando. Quando as pessoas estão falando sobre "gradientes que desaparecem", não se pode deixar de se perguntar "o gradiente de ReLu é exatamente 0 para metade da faixa. Não é 'desaparecer'". A maneira como você descreve o problema, lembrando-nos que os gradientes são multiplicados por várias camadas, traz muita clareza.
Boris Gorelik

3
@ guilherme-de-lazari sugeriu a correção na última linha - o valor de relu é a para a> 0, mas você está falando de gradiente que é 1 para a> 0 #
30455

4
Se esse fosse o principal motivo, não poderíamos simplesmente redimensionar o sigmóide para 1 / (1 + exp (-4x))? Então a derivada é no máximo 1 (ou redimensiona ainda mais, para nos dar opções acima e abaixo de 1). Eu suspeito que isso teria um desempenho muito pior, porque o redimensionamento também reduz a área onde a derivada é distinguível de 0. Mas não tenho certeza se essa resposta conta a história completa.
Peter Peter

5
1/(1+exp(-umax))uma

7
Além disso, você PODE fazer um aprendizado profundo com sigmóides, basta normalizar as entradas, por exemplo, via Normalização em lote. Isso centralizará suas entradas para evitar saturar o sigmóide. No artigo original sobre Normalização em lote, a rede neural de ativação sigmóide praticamente se compara a ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.

7

Uma vantagem para o ReLU, além de evitar o problema de gradientes de fuga, é que ele tem um tempo de execução muito menor. max (0, a) roda muito mais rapidamente do que qualquer função sigmóide (função logística, por exemplo = 1 / (1 + e ^ (- a)), que usa um expoente que é computacionalmente lento quando é feito com freqüência). Isso é verdade tanto para propagação de avanço quanto de retorno, pois o gradiente de ReLU (se <<, = 0 else = 1) também é muito fácil de calcular em comparação com o sigmóide (para curva logística = e ^ a / ((1 + e ^ a) ^ 2)).

Embora a ReLU tenha a desvantagem de células que estão morrendo, o que limita a capacidade da rede. Para superar isso, use uma variante de ReLU como ReLU, ELU com vazamento, etc., se você notar o problema descrito acima.


1
+1. Esta é uma das únicas respostas corretas aqui. Você também pode usar a normalização em lote para centralizar as entradas e neutralizar os neurônios mortos.
Alex R.

2

Uma resposta extra a ser concluída no debate de desempenho Esparso x Denso .

Não pense mais em NN, apenas pense em álgebra linear e operações de matriz, porque as propagações para frente e para trás são uma série de operações de matriz.

Agora lembre-se de que existem muitos operadores otimizados para aplicar à matriz esparsa e, portanto, a otimização dessas operações em nossa rede pode melhorar drasticamente o desempenho do algoritmo.

Espero que isso possa ajudar alguns de vocês ...


1

O principal benefício é que a derivada de ReLu é 0 ou 1, portanto, a multiplicação não fará com que pesos que estão mais distantes do resultado final da função de perda sofram do problema de gradiente de fuga:

insira a descrição da imagem aqui

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.