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)?
machine-learning
neural-networks
deep-learning
RockTheStar
la source
la source
Réponses:
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.a≤0
la source
Avantage:
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, ).a a S′(a)=S(a)(1−S(a)) a S′(a)=S(a)(1−S(a))=1×(1−1)=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
la source
$x$
produit .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.0 a<0 1 a>0
la source
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.
la source
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 ...
la source
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:
la source