Quels sont les avantages de ReLU par rapport à la fonction sigmoïde dans les réseaux de neurones profonds?

141

L’état actuel de la non-linéarité consiste à utiliser des unités linéaires rectifiées (ReLU) au lieu de la fonction sigmoïde dans un réseau neuronal profond. Quels sont les avantages?

Je sais que la formation d'un réseau lorsque ReLU est utilisé serait plus rapide et inspirée davantage par la biologie. Quels sont les autres avantages? (C'est-à-dire, tous les inconvénients de l'utilisation de sigmoid)?

RockTheStar
la source
J'avais l'impression que permettre la non-linéarité dans votre réseau était un avantage. Mais je ne vois pas cela dans la réponse ci-dessous ...
Monica Heddneck
2
@MonicaHeddneck ReLU et sigmoid sont non linéaires ...
Antoine

Réponses:

130

Les avantages supplémentaires supplémentaires des ReLU sont la faible densité et une probabilité réduite de disparition du gradient. Mais rappelons d’abord que la définition d’un ReLU est où .h=max(0,a)a=Wx+b

Un avantage majeur est la probabilité réduite que le gradient disparaisse. Cela se produit quand . Dans ce régime, le gradient a une valeur constante. En revanche, le gradient de sigmoids devient de plus en plus petit à mesure que la valeur absolue de x augmente. Le gradient constant de ReLU permet un apprentissage plus rapide.a>0

L'autre avantage de ReLUs est la clarté. La rareté survient quand . Plus il y a de telles unités dans une couche, plus la représentation obtenue est clairsemée. Les Sigmoids d’autre part sont toujours susceptibles de générer des valeurs non nulles aboutissant à des représentations denses. Les représentations éparses semblent être plus bénéfiques que les représentations denses.a0

DaemonMaker
la source
2
Quand vous dites gradient, vous voulez dire par rapport aux poids ou à l’entrée x? @DaemonMaker
MAS
4
En ce qui concerne les poids. Les algorithmes d'apprentissage basés sur les gradients prennent toujours le gradient en fonction des paramètres de l'apprenant, c'est-à-dire les poids et les biais d'un NN.
DaemonMaker
2
Qu'entendez-vous par "représentations" "denses" et "rares"? La requête sur Google "réseaux de neurones à représentation clairsemée" ne semble pas avoir de pertinence
Hi-Angel
6
"Les représentations éparses semblent être plus bénéfiques que les représentations denses." Pourriez-vous fournir une source ou une explication?
Rohan Saxena
1
Je ne comprends pas comment cette réponse est correcte. La "probabilité réduite que le gradient disparaisse" laisse à désirer. Le ReLu est ZERO pour suffisamment petit . Pendant l'apprentissage, vos gradients vont disparaître pour certains neurones lorsque vous êtes dans ce régime. En fait, c'est évidemment inévitable, car sinon votre réseau sera linéaire. La normalisation par lots résout principalement ce problème. Cela ne mentionne même pas la raison la plus importante: les ReLu et leurs gradients. sont extrêmement rapides à calculer, comparés à un sigmoïde. x
Alex R.
65

Avantage:

  • Sigmoïde: ne pas faire exploser l'activation
  • Relu: pas de gradient en voie de disparition
  • Relu: Plus efficace en termes de calcul que les fonctions similaires à Sigmoid, Relu doit simplement choisir max (0, ) et ne pas effectuer d'opérations exponentielles coûteuses comme dans Sigmoidsx
  • Relu: En pratique, les réseaux avec Relu ont tendance à afficher de meilleures performances de convergence que le sigmoïde. ( Krizhevsky et al. )

Désavantage:

  • Sigmoïde: ont tendance à disparaître gradient (cause il y a un mécanisme pour réduire le gradient comme " " augmentation, où " " est l'entrée d'une fonction sigmoïde de gradient de sigmoïde. . Lorsque " " devient infiniment grand, ).aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: a tendance à faire sauter l'activation (il n'y a pas de mécanisme pour contraindre la sortie du neurone, car " " est la sortie)a

  • Relu: Dying Relu problem - si trop d'activations sont en dessous de zéro, la plupart des unités (neurones) en réseau avec Relu afficheront simplement le zéro, autrement dit, mourront et interdiront ainsi l'apprentissage (cela peut être géré, dans une certaine mesure, en utilisant Leaky-Relu à la place.)
Bill Ancalagon le noir
la source
7
Vous pouvez trouver utile de pouvoir utiliser la composition mathématique avec Latex en plaçant des signes dollar autour de vos équations, par exemple, $x$produit . x
Silverfish
Relu: pas de gradient en voie de disparition. Hein? pour tout . Relu(ax+b)=0x<b/a
Alex R.
40

Complétant simplement les autres réponses:

Dégradés

Les autres réponses ont raison de souligner que plus l'entrée est grande (en valeur absolue), plus le gradient de la fonction sigmoïde est petit. Mais, un effet encore plus important est probablement que la dérivée de la fonction sigmoïde est TOUJOURS plus petite que un . En fait, il est au maximum de 0,25!

L'inconvénient est que si vous avez plusieurs couches, vous multipliez ces gradients et le produit de nombreuses valeurs inférieures à 1 passe à zéro très rapidement.

Comme l'état de l'art de Deep Learning a montré que plus de couches aident beaucoup, alors cet inconvénient de la fonction Sigmoid est un tueur au jeu. Vous ne pouvez pas faire Deep Learning avec Sigmoid.

D'autre part, le gradient de la fonction ReLu est pour ou pour . Cela signifie que vous pouvez mettre autant de couches que vous le souhaitez, car la multiplication des gradients ne disparaîtra ni n'explosera.0a<01a>0

Guilherme de Lazari
la source
10
C'est la réponse que je cherchais. Quand les gens parlent de "gradients en voie de disparition", on ne peut s'empêcher de se demander "le gradient de ReLu est exactement égal à 0 pour la moitié de sa plage. N'est-ce pas cela" en train de disparaître "". La façon dont vous décrivez le problème en nous rappelant que les gradients sont multipliés sur plusieurs couches apporte beaucoup de clarté.
Boris Gorelik
3
@ guilherme-de-lazari a suggéré une correction à la dernière ligne - valeur de relu est un pour un> 0 mais vous parlez d'un gradient qui est 1 pour un> 0
saurabh
4
Si telle était la raison principale, ne pourrions-nous pas simplement redimensionner le sigmoïde à 1 / (1 + exp (-4x))? Ensuite, la dérivée est au plus égale à 1 (ou à une échelle encore plus grande pour nous donner des options supérieures et inférieures à 1). Je soupçonne que cela serait bien pire, car le rééchelonnage réduit également la zone où le dérivé est différent de 0. Mais je ne suis pas sûr que cette réponse raconte toute l'histoire.
Peter
5
Cette réponse est un non-sens. La dérivée d'un sigmoïde avec le paramètre constant 1 est inférieure à 1. Mais plus généralement c'est , qui peut avoir une dérivée arbitrairement grande (il suffit de prendre pour être vraiment grand, alors le sigmoïde passe rapidement de 0 à 1). 1/(1+exp(ax))a
Alex R.
7
Aussi, vous POUVEZ apprendre en profondeur avec sigmoids, il vous suffit de normaliser les entrées, par exemple via la normalisation par lots. Cela centralisera vos entrées pour éviter de saturer le sigmoïde. Dans le document original sur la normalisation par lots, le réseau neuronal à activation sigmoïde est presque à égalité avec ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.
7

Un avantage pour ReLU, outre le fait d’éviter les problèmes de gradients évidents, est qu’il a une durée d’exécution beaucoup plus courte. max (0, a) est beaucoup plus rapide que n'importe quelle fonction sigmoïde (fonction logistique par exemple = 1 / (1 + e ^ (- a)) qui utilise un exposant dont le calcul est lent lorsque cela est souvent fait). Ceci est vrai pour les deux types de propagation car le gradient de ReLU (si a <0, = 0 sinon = 1) est également très facile à calculer par rapport à sigmoïde (pour la courbe logistique = e ^ a / ((1 + e ^ a) ^ 2)).

Bien que ReLU présente l’inconvénient de la disparition de cellules, ce qui limite la capacité du réseau. Pour résoudre ce problème, utilisez une variante de ReLU telle que le Rey Lue, ELU, etc., qui fuit, si vous remarquez le problème décrit ci-dessus.

Péage
la source
1
+1 C'est l'une des seules réponses correctes ici. Vous pouvez également utiliser la normalisation par lots pour centraliser les entrées afin de neutraliser les neurones morts.
Alex R.
2

Un élément de réponse supplémentaire à compléter dans le débat sur la performance Sparse vs Dense .

Ne pensez plus à NN, pensez simplement à l’algèbre linéaire et aux opérations matricielles, car les propagations en avant et en arrière sont une série d’opérations matricielles.

Rappelons maintenant qu’il existe beaucoup d’opérateurs optimisés à appliquer à la matrice creuse et qu’optimiser ces opérations sur notre réseau pourrait donc améliorer considérablement les performances de l’algorithme.

J'espère que cela pourrait aider certains d'entre vous ...

Michael B
la source
1

Le principal avantage est que la dérivée de ReLu est 0 ou 1. Par conséquent, multiplier par elle ne fera pas que les poids qui sont plus éloignés du résultat final de la fonction de perte souffrent du problème du gradient disparaissant:

entrez la description de l'image ici

David Refaeli
la source