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)?

RockTheStar
fonte
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

DaemonMaker
fonte
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.)
Bill Ancalagon, o preto
fonte
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

Guilherme de Lazari
fonte
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.

Pedágio
fonte
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 ...

Michael B
fonte
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

David Refaeli
fonte