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?
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 .
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.
logistic
neural-networks
least-squares
Mark Horvath
la source
la source
Réponses:
Citation moi-même de cette réponse à une autre question:
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.
la source
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
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.
la source
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
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.z P(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:
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)=1−P(Y=1|z) Y=1 P(Y=1|z) z=wTx+b
Les exigences évidentes pour la fonction mappant sur sont les suivantes:f z P(Y=1|z)
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+e−z f(z)=0.5+0.5z1+|z| f(z)=11+e−z
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+e−z Y=1 m=1
Nous pouvons voir qu'il existe un composant linéaire . Maintenant, nous pouvons examiner deux cas:−z
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=1 Y=0
C’est la fonction de coût pour :J(z) Y=1
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
qui ressemble à ceci:
Vous pouvez voir que le gradient de la fonction de coût devient de plus en plus faible pour .z→−∞
la source
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.
la source