Pourquoi la fonction sigmoïde au lieu de rien d'autre?


40

Pourquoi la fonction sigmoïde standard de facto, , est-elle si populaire dans les réseaux de neurones (non profonds) et la régression logistique?11+ex

Pourquoi n'utilisons-nous pas beaucoup d'autres fonctions pouvant être dérivées, avec un temps de calcul plus rapide ou une décroissance plus lente (de sorte qu'un gradient de disparition se produit moins). Quelques exemples sont sur Wikipedia sur les fonctions sigmoïdes . Un de mes favoris avec décroissance lente et calcul rapide est .x1+|x|

MODIFIER

La question est différente de la liste complète des fonctions d'activation dans les réseaux de neurones avec les avantages / inconvénients, car je ne m'intéresse qu'au «pourquoi» et uniquement au sigmoïde.


6
Notez que la logistique sigmoïde est un cas particulier de la fonction softmax, et vous trouverez
Neil G

10
Il existe d' autres fonctions telles que probit ou cloglog qui sont couramment utilisées, voir: stats.stackexchange.com/questions/20523/…
Tim

4
@ user777 Je ne suis pas sûr qu'il s'agisse d'un doublon, car le fil que vous avez mentionné ne répond pas vraiment à la question du pourquoi .
Tim

@ KarelMacek, êtes-vous sûr que ce dérivé n'a pas de limite gauche / droite à 0? On dirait pratiquement qu’il a une belle tangente sur l’image liée de Wikipedia.
Mark Horvath le

5
Je n'aime pas être en désaccord avec tant de membres distingués de la communauté qui ont voté pour que ce soit un doublon, mais je suis persuadé que le duplicata apparent ne répond pas au "pourquoi" et j'ai donc voté en faveur de la réouverture de cette question.
whuber

Réponses:


24

Citation moi-même de cette réponse à une autre question:

Dans la section 4.2 de Pattern Recognition and Machine Learning (Springer 2006), Bishop montre que le logit apparaît naturellement sous la forme de la distribution de probabilité postérieure dans un traitement bayésien de la classification à deux classes. Il poursuit ensuite en montrant qu'il en va de même pour les entités discrètement distribuées, ainsi que pour un sous-ensemble de la famille des distributions exponentielles. Pour la classification multi-classes, le logit se généralise à la fonction normalisée exponentielle ou softmax.

Ceci explique pourquoi ce sigmoïde est utilisé dans la régression logistique.

En ce qui concerne les réseaux de neurones, ce blog explique comment différents , y compris le non - linéarités logit / softmax et le probit utilisé dans les réseaux de neurones peut être donné une interprétation statistique et donc une motivation. L'idée sous-jacente est qu'un réseau de neurones multicouches peut être considéré comme une hiérarchie de modèles linéaires généralisés. pour cette raison, les fonctions d'activation sont des fonctions de liaison, qui correspondent à leur tour à des hypothèses de répartition différentes.


1
Génial! Ainsi, lorsque nous utilisons sigmoids dans un réseau, nous pouvons dire que nous supposons implicitement que le réseau "modèle" les probabilités de divers événements (dans les couches internes ou dans la sortie). Cela peut constituer un modèle judicieux à l’intérieur d’un réseau, même en cas d’erreur quadratique (permettant au neurone de sortie d’activer une fonction différente). Jamais pensé à cette intuition avant, merci!
Mark Horvath

@ MarkHorvath Glad je pourrais aider. :-)
A. Donda

Historiquement, pas si. Mon meilleur résumé d'une histoire en désordre est que logit est entré dans la science statistique en grande partie parce que les formes fonctionnelles utilisées pour prédire l'évolution dans le temps (les populations devraient suivre les courbes logistiques) semblaient correctes lorsqu'elles étaient adaptées et adoptées comme fonctions de lien [utilisation anachronique là!] Pour les réponses binaires ; et ils sont faciles à manipuler avec un calcul simple, ce que ne sont pas les expressions en valeurs absolues. Mais naturellement, la justification logique la plus simple pour de telles fonctions est intéressante et cruciale, et votre réponse répond à cela.
Nick Cox

1
J'ai lu les sections des deux livres de Bishop (2006 et 1995) et je ne suis toujours pas convaincu que le sigmoïde est essentiel ici, bien que le logit me motive. Que se passe-t-il si j'écris la même fonction de perte d'entropie croisée basée sur l'hypothèse de Poisson de 2 classes, mais utilise ensuite une fonction d'activation différente au lieu de sigmoïde? Par exemple, celui-ci similaire mais pas aussi joli est défini par morceaux: g (x) = 1 / (2-2x) si x <0, 1 - 1 / (2 + 2x) pour x> 0, g (0) = 0,5. Maintenant, l'équation du maximum de vraisemblance semble différente, mais si nous la minimisons, n'avons-nous toujours pas de probabilités en sortie?
eraoul

si Bischop aurait pris , la fonction "apparaissant naturellement" serait , n'est-ce pas? una=p(x,C1)(1+p(x,C1))p(x,C2)a1+a2
M. Tsjolder le

18

Une raison pour laquelle cette fonction peut sembler plus "naturelle" que d'autres est qu'elle se trouve être l'inverse du paramètre canonique de la distribution de Bernoulli: (La fonction de dans l'exposant est appelée paramètre canonique.)p

f(y)=py(1p)1y=(1p)exp{ylog(p1p)}.
p

Peut-être une justification plus convaincante vient-elle de la théorie de l’information, où la fonction sigmoïde peut être déduite en tant que modèle à entropie maximale . En gros, la fonction sigmoïde assume une structure minimale et reflète notre état général d'ignorance à propos du modèle sous-jacent.


Bonne justification pour la régression logistique. La chose amusante que nous continuons à utiliser pour l'erreur carrée aussi ...
Mark Horvath

11

Je me suis posé cette question pendant des mois. Les réponses sur CrossValidated et Quora répertorient toutes les propriétés intéressantes de la fonction logistique sigmoïde, mais il semble que nous ayons intelligemment deviné cette fonction. Ce qui m'a manqué était la justification pour le choisir. J'en ai finalement trouvé un dans la section 6.2.2.2 du livre "Deep Learning" de Bengio (2016) . Avec mes propres mots:

En bref, nous voulons que le logarithme de la sortie du modèle convienne à une optimisation basée sur le gradient de la vraisemblance logarithmique des données d'apprentissage.

Motivation

  • Nous voulons un modèle linéaire, mais nous ne pouvons pas utiliser directement comme .z=wTx+bz(,+)
  • Pour la classification, il est logique de supposer la distribution de Bernoulli et de modéliser son paramètre dans .θP(Y=1)=θ
  • Nous devons donc mapper de à pour procéder à la classification.z(,+)[0,1]

Pourquoi la fonction logistique sigmoïde?

Couper avec donne un gradient nul pour dehors de . Nous avons besoin d'un fort gradient chaque fois que la prédiction du modèle est fausse, car nous résolvons la régression logistique avec la descente du gradient. Pour la régression logistique, il n'y a pas de solution sous forme fermée.zP(Y=1|z)=max{0,min{1,z}}z[0,1]

La fonction logistique a la propriété intéressante d’asymptoter un gradient constant lorsque la prédiction du modèle est fausse, étant donné que nous utilisons l’estimation de la vraisemblance maximale pour s’ajuster au modèle. Ceci est montré ci-dessous:

Pour les avantages numériques, l'estimation de vraisemblance maximale peut être réalisée en minimisant la log-vraisemblance négative des données d'apprentissage. Notre fonction de coût est donc:

J(w,b)=1mi=1mlogP(Y=yi|xi;w,b)=1mi=1m(yilogP(Y=1|z)+(yi1)logP(Y=0|z))

Puisque , nous pouvons nous concentrer sur le cas . La question est donc de savoir comment modéliser étant donné que nous avons .P(Y=0|z)=1P(Y=1|z)Y=1P(Y=1|z)z=wTx+b

Les exigences évidentes pour la fonction mappant sur sont les suivantes:fzP(Y=1|z)

  • zR:f(z)[0,1]
  • f(0)=0.5
  • f doit être à rotation symétrique par rapport à , c’est-à-dire que , de sorte que l’inversion des signes des classes n’a pas d’effet sur la fonction de coût.(0,0.5)f(x)=1f(x)
  • f devrait être non décroissant, continu et différentiable.

Ces exigences sont toutes remplies en redimensionnant les fonctions sigmoïdes . Les deux et remplissent. Cependant, les fonctions sigmoïdes diffèrent en ce qui concerne leur comportement lors de l'optimisation de la vraisemblance log par gradient. Nous pouvons voir la différence en intégrant la fonction logistique à notre fonction de coût.f(z)=11+ezf(z)=0.5+0.5z1+|z|f(z)=11+ez

Saturation pourY=1

Pour et , le coût d'un seul échantillon incorrectement classé (c'est-à-dire que ) est le suivant:P(Y=1|z)=11+ezY=1m=1

J(z)=log(P(Y=1|z))=log(11+ez)=log(ez1+ez)=z+log(1+ez)

Nous pouvons voir qu'il existe un composant linéaire . Maintenant, nous pouvons examiner deux cas:z

  • Lorsque est grand, la prédiction du modèle était correcte puisque . Dans la fonction de coût, le terme asymptote en pour les grands . Ainsi, cela annule approximativement le , ce qui entraîne un coût approximativement nul pour cet échantillon et un gradient faible. Cela a du sens, car le modèle prédit déjà la classe correcte.zY=1log(1+ez)zzz
  • Lorsque est petit (mais est grand), la prédiction du modèle n'était pas correcte, car . Dans la fonction de coût, le terme asymptote à pour les petits . Ainsi, le coût global de cet échantillon est approximativement à , ce qui signifie que le gradient par rapport à est approximativement à . Cela permet au modèle de corriger sa prédiction erronée en fonction du gradient constant qu'il reçoit. Même pour les très petits , il n'y a pas de saturation, ce qui causerait des gradients qui disparaissent.z|z|Y=1log(1+ez)0zzz1z

Saturation pourY=0

Ci-dessus, nous nous sommes concentrés sur le cas . Pour , la fonction de coût se comporte de manière analogue, ne fournissant de forts gradients que lorsque la prédiction du modèle est erronée.Y=1Y=0

C’est la fonction de coût pour :J(z)Y=1

entrez la description de l'image ici

C'est la fonction softplus inversée horizontalement. Pour , c'est la fonction softplus.Y=0

Des alternatives

Vous avez mentionné les alternatives à la fonction sigmoïde logistique, par exemple . Normalisé à , cela voudrait dire que nous modélisons .z1+|z|[0,1]P(Y=1|z)=0.5+0.5z1+|z|

Pendant MLE, la fonction de coût pour serait alorsY=1

J(z)=log(0.5+0.5z1+|z|) ,

qui ressemble à ceci:

entrez la description de l'image ici

Vous pouvez voir que le gradient de la fonction de coût devient de plus en plus faible pour .z


Que voulez-vous dire quand vous écrivez "quand le modèle est faux"?
Gabriel Romon

@ GabrielRomon Je veux dire lorsque la prédiction du modèle est fausse. Donc, pour un échantillon d'apprentissage , nous aurions par exemple , c'est-à-dire que notre prédiction est la classe 1, mais que . z = 5 y i = 0(xi,yi)z=5yi=0
Kilian Batzner

6

Puisque la question initiale mentionnait le problème de la dégradation du gradient, j'aimerais simplement ajouter que, pour les couches intermédiaires (où il n'est pas nécessaire d'interpréter les activations comme des probabilités de classe ou des sorties de régression), les autres non-linéarités sont souvent préférées aux fonctions sigmoïdales. Les plus importantes sont les fonctions de redressement (comme dans les ReLU ), qui sont linéaires sur le domaine positif et nuls sur le négatif. L'un de leurs avantages est qu'ils sont moins sujets au problème du gradient, car la dérivée est constante sur le domaine positif. Les ReLU sont devenues populaires au point que sigmoids ne peut probablement plus être appelé le standard de facto.

Glorot et al. (2011) . Réseaux neuronaux à redresseur creux et profonds


2
Oui. Je pense que la raison pour laquelle la fonction logistique était si populaire était due à son importation à partir de statistiques. Relu est le plus populaire dans beaucoup de domaines de nos jours.
Ricardo Cruz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.