Essentiellement, ma question est que dans les Perceptrons multicouches, les perceptrons sont utilisés avec une fonction d'activation sigmoïde. Alors que dans la règle de mise à jour y est calculée comme suit
En quoi ce Perceptron "sigmoïde" diffère-t-il alors d'une régression logistique?
Je dis qu'un perceptron sigmoïde mono-couche est équivalente à une régression logistique dans la mesure où une utilisation y = 1 dans la règle de mise à jour. En outre,foisretourdans la prédiction. Cependant, dans les perceptrons multicouches, la fonction d'activation sigmoïde est utilisée pour renvoyer une probabilité, pas un signal d'activation contrairement à la régression logistique et un perceptron monocouche.
Je pense que l'utilisation du terme "Perceptron" peut être un peu ambiguë, alors permettez-moi de fournir quelques informations sur la base de ma compréhension actuelle des perceptrons monocouche:
Règle de perceptron classique
Tout d'abord, le perceptron classique de F. Rosenblatt où nous avons une fonction de pas:
pour mettre à jour les poids
Alors que y est calculé comme
Descente graduelle
En utilisant la descente de gradient, nous optimisons (minimisons) la fonction de coût
où nous avons des nombres "réels", donc je vois cela essentiellement analogue à la régression linéaire avec la différence que notre sortie de classification est seuillée.
Ici, nous faisons un pas dans la direction négative du gradient lorsque nous mettons à jour les poids
Mais ici, nous avons y = w T x i au lieu de y = signe ( w T x i )
De plus, nous calculons la somme des erreurs quadratiques pour un passage complet sur l'ensemble des données d'entraînement (en mode d'apprentissage par lots) contrairement à la règle classique du perceptron qui met à jour les poids à mesure que de nouveaux échantillons d'apprentissage arrivent (analogue à la descente de gradient stochastique - en ligne apprentissage).
Fonction d'activation sigmoïde
Maintenant, voici ma question:
Dans les Perceptrons multicouches, les perceptrons sont utilisés avec une fonction d'activation sigmoïde. Alors que dans la règle de mise à jour y est calculée comme suit
En quoi ce Perceptron "sigmoïde" diffère-t-il alors d'une régression logistique?
Réponses:
Si vous minimisez l'erreur quadratique moyenne, c'est différent de la régression logistique. La régression logistique est normalement associée à la perte d'entropie croisée, voici une page d'introduction de la bibliothèque scikit-learn .
(Je suppose que les perceptrons multicouches sont la même chose que les réseaux de neurones.)
Si vous avez utilisé la perte d'entropie croisée (avec régularisation) pour un réseau neuronal monocouche, alors ce sera le même modèle (modèle log-linéaire) que la régression logistique. Si vous utilisez plutôt un réseau multicouche, il peut être considéré comme une régression logistique avec des fonctions de base non linéaires paramétriques.
La sortie de la régression logistique et des réseaux de neurones avec fonction d'activation sigmoïde peut être interprétée comme une probabilité. Comme la perte d'entropie croisée est en fait la probabilité logarithmique négative définie par la distribution de Bernoulli.
la source
Parce que la descente de gradient met à jour chaque paramètre de manière à réduire l'erreur de sortie qui doit continuer de fonctionner en fonction de tous les paramètres. L'activation basée sur le seuil n'est pas différenciable, c'est pourquoi l'activation sigmoïde ou tanh est utilisée.
Voici un NN monocouche
si la fonction d'activation était une fonction de pas de base (seuil), dérivée deJ wrt zk serait non différenciable.
voici un lien qui l'explique en général.
Edit: Peut-être, j'ai mal compris ce que vous entendez par perceptron. Si je ne me trompe pas, le perceptron est la somme pondérée des intrants. Si vous modifiez la détention avec la fonction logistique, cela se transforme en régression logistique. Le NN multicouche avec des fonctions d'activation sigmoïde (logistique) est constitué de couches en cascade composées de régressions logistiques.
la source
Intuitivement, je pense à un perceptron multicouche comme calculant une transformation non linéaire sur mes entités en entrée, puis alimentant ces variables transformées en une régression logistique.
Le cas multinomial (c'est-à-dire N> 2 étiquettes possibles) peut rendre cela plus clair. Dans la régression logistique traditionnelle, pour un point de données donné, vous voulez calculer un "score",βjeX , pour chaque classe, je . Et la façon dont vous les convertissez en probabilités consiste simplement à prendre le score de la classe donnée sur la somme des scores de toutes les classes,βjeX∑jβjX . Ainsi, une classe avec un score élevé a une plus grande part du score combiné et donc une probabilité plus élevée. Si vous êtes obligé de prédire une seule classe, vous choisissez la classe avec la plus grande probabilité (qui est également le score le plus élevé).
Je ne sais pas pour vous, mais dans mes cours de modélisation et de recherche, j'ai essayé toutes sortes de transformations sensibles et stupides des fonctionnalités d'entrée pour améliorer leur signification et la prédiction globale du modèle. Squaring des choses, prendre des journaux, combiner deux en un taux, etc. Je n'avais aucune honte, mais j'avais une patience limitée.
Un perceptron multicouche est comme un étudiant diplômé avec beaucoup trop de temps sur ses mains. Grâce à l'entraînement à la descente en gradient et aux activations sigmoïdes, il va calculer des combinaisons non linéaires arbitraires de vos variables d'entrée d'origine. Dans la dernière couche du perceptron, ces variables deviennent effectivement leX dans l'équation ci-dessus, et votre descente de gradient calcule également une finale associée βje . Le cadre MLP n'est qu'une abstraction de cela.
la source