Quelle est la différence entre la régression logistique et le perceptron?

30

Je passe en revue les notes de cours d'Andrew Ng sur l'apprentissage automatique.

Les notes nous initient à la régression logistique puis au perceptron. Tout en décrivant Perceptron, les notes disent que nous venons de changer la définition de la fonction de seuil utilisée pour la régression logistique. Après cela, nous pouvons utiliser le modèle Perceptron pour la classification.

Ma question est donc la suivante: si cela doit être spécifié et que nous considérons le Perceptron comme une technique de classification, quelle est exactement la régression logistique? Est-ce juste utilisé pour obtenir la probabilité qu'un point de données appartienne à l'une des classes?

GrowinMan
la source
Belle question, je trouve qu'il est très important de savoir comment commencer l'explication sur NN, surtout parce que NN peut être très compliqué à comprendre, pls. réfléchissez à ma réponse.
prosti

Réponses:

22

En bref, la régression logistique a des connotations probabilistes qui vont au-delà de l'utilisation du classificateur en ML. J'ai quelques notes sur la régression logistique ici .

L'hypothèse de régression logistique fournit une mesure de l'incertitude quant à l'occurrence d'un résultat binaire basé sur un modèle linéaire. La sortie est bornée asymptotiquement entre et 1 et dépend d'un modèle linéaire, de sorte que lorsque la ligne de régression sous-jacente a la valeur 0 , l'équation logistique est 0,5 = e 0010 , fournissant un point de coupure naturel à des fins de classification. Cependant, c'est au prix de jeter les informations de probabilité dans le résultat réel deh(ΘTx)=e Θ T x0,5=e01+e0 , ce qui est souvent intéressant (par exemple, probabilité de défaut de paiement en fonction du revenu, du pointage de crédit, de l'âge, etc.)h(ΘTX)=eΘTX1+eΘTX

L'algorithme de classification du perceptron est une procédure plus basique, basée sur les produits scalaires entre les exemples et les poids . Chaque fois qu'un exemple est mal classé, le signe du produit scalaire est en contradiction avec la valeur de classification ( et 1 ) dans l'ensemble d'apprentissage. Pour corriger cela, l'exemple de vecteur sera ajouté ou soustrait itérativement du vecteur de poids ou de coefficients, en mettant progressivement à jour ses éléments:-11

Vectorialement, les caractéristiques ou attributs d'un exemple sont x , et l'idée est de "passer" l'exemple si:X

ou ...1θjeXje>theshold

. La fonction signe donne1ou-1, par opposition à0et1en régression logistique.h(X)=signe(1θjeXje-theshold)1-101

Le seuil sera absorbé dans le coefficient de biais , . La formule est maintenant:+θ0

, ou vectorisé:h(x)=signe( θ T x).h(X)=signe(0θjeXje)h(X)=signe(θTX)

Les points mal classés auront le , ce qui signifie que le produit scalaire de Θ et x n sera positif (vecteurs dans la même direction), lorsque y n est négatif, ou le produit scalaire sera négatif (vecteurs dans des directions opposées), alors que y n est positif.signe(θTX)ynΘXnynyn


J'ai travaillé sur les différences entre ces deux méthodes dans un ensemble de données du même cours , dans lequel les résultats des tests dans deux examens distincts sont liés à l'acceptation finale au collège:

La frontière de décision peut être facilement trouvée avec la régression logistique, mais il était intéressant de voir que, bien que les coefficients obtenus avec le perceptron soient très différents de ceux de la régression logistique, la simple application de la fonction aux résultats a donné une classification aussi bonne algorithme. En fait, la précision maximale (la limite fixée par l'inséparabilité linéaire de certains exemples) a été atteinte par la deuxième itération. Voici la séquence des lignes de division des limites alors que 10 itérations se rapprochent des poids, à partir d'un vecteur aléatoire de coefficients:signe()dix

La précision de la classification en fonction du nombre d'itérations augmente rapidement et les plateaux à , ce qui correspond à la vitesse à laquelle une limite de décision presque optimale est atteinte dans le vidéoclip ci-dessus. Voici l'intrigue de la courbe d'apprentissage:90%

entrez la description de l'image ici


Le code utilisé est ici .

Antoni Parellada
la source
5

Il peut y avoir une certaine confusion ici. À l'origine, un perceptron faisait uniquement référence aux réseaux de neurones avec une fonction de pas comme fonction de transfert. Dans ce cas, bien sûr, la différence est que la régression logistique utilise une fonction logistique et le perceptron utilise une fonction pas à pas. En général, les deux algorithmes doivent produire la même limite de décision (au moins pour un seul perceptron neuronal). Toutefois:

  1. Le vecteur de paramètre pour le perceptron peut être arbitrairement mis à l'échelle par rapport à celui dérivé par régression logistique. Toute mise à l'échelle du vecteur de paramètres définira la même frontière, mais les probabilités calculées par régression logistique dépendent de la mise à l'échelle exacte.
  2. La sortie d'une fonction pas à pas ne peut bien sûr pas être interprétée comme une sorte de probabilité.
  3. Puisqu'une fonction pas n'est pas différenciable, il n'est pas possible d'entraîner un perceptron en utilisant les mêmes algorithmes que ceux utilisés pour la régression logistique.

Dans certains cas, le terme perceptron est également utilisé pour désigner les réseaux de neurones qui utilisent une fonction logistique comme fonction de transfert (cependant, ce n'est pas conforme à la terminologie d'origine). Dans ce cas, une régression logistique et un "perceptron" sont exactement les mêmes. Bien sûr, avec un perceptron, il est possible d'utiliser plusieurs neurones en utilisant tous une fonction de transfert logistique, qui devient quelque peu liée à l'empilement de la régression logistique (pas la même, mais similaire).

LiKao
la source
2

Vous pouvez utiliser la régression logistique pour construire un perceptron. La régression logistique utilise la fonction logistique pour construire la sortie à partir d'une entrée donnée. La fonction logistique produit une sortie fluide entre 0 et 1, vous avez donc besoin d'une chose de plus pour en faire un classificateur, qui est un seuil. Les perceptrons peuvent être construits avec d'autres formes fonctionnelles, bien sûr, pas seulement logistiques .

y(X1,X2|b)=eb0+b1X1+b2X21+eb0+b1X1+b2X2
b1,b2,b3eX1+eX

y(X|b)XbyOuiy~=0y(X|b)<Ouiy~=1y(X|b)Oui

Aksakal
la source
1

Ils appliquent tous deux la régression en estimant les paramètres du même modèle transformé par la logistique. Selon les propriétés des fonctions convexes, les valeurs des paramètres seront les mêmes de toute façon que vous choisirez pour les estimer. Pour me citer d'une réponse précédente:

La régression logistique modélise une fonction de la moyenne d'une distribution de Bernoulli comme une équation linéaire (la moyenne étant égale à la probabilité p d'un événement de Bernoulli). En utilisant le lien logit en fonction de la moyenne (p), le logarithme des cotes (log-odds) peut être dérivé analytiquement et utilisé comme réponse d'un soi-disant modèle linéaire généralisé. En plus de la prédiction, cela vous permet d'interpréter le modèle dans l'inférence causale. C'est quelque chose que vous ne pouvez pas réaliser avec un Perceptron linéaire.

Le Perceptron, prend la fonction logit (logistique) inverse de wx, et n'utilise pas d'hypothèses probabilistes pour ni le modèle ni son paramètre. La formation en ligne vous donnera exactement les mêmes estimations pour les poids / paramètres du modèle, mais vous ne pourrez pas les interpréter dans l'inférence causale en raison du manque de valeurs de p, d'intervalles de confiance et, bien, d'un modèle de probabilité sous-jacent.

Digio
la source
1

X1,,XNRny1,,yN{-1,1}1Xje

(1)minimiser1Nje=1Nmax(-yjeβTXje,0).
βRn+1

1Njeje(β)

je(β)=max(-yjeβTXje,0).
jeβ
g={0si -yjeβTXje0(alors yje et βTXje avoir le même signe)-yjeXjeautrement.
t>0)je
ββ-tg={βsi yje et βTXje avoir le même signeβ+tyjeXjeautrement.
t

littleO
la source
0

Andrew Ng a utilisé le terme «régression logistique» comme modèle pour résoudre le problème de classification binaire.

Comme vous pouvez le voir dans le document, il ne dessine jamais le modèle lui-même.

Permettez-moi d'ajouter quelques détails au seau afin que vous puissiez trouver le raisonnement sur la façon dont je pense qu'il a construit les conférences.

Le modèle utilisé pour la "régression logistique" est une perception à un niveau avec un nombre personnalisé d'entrées et une sortie allant de 0 à 1.

Dans les années 90, la fonction d'activation la plus appréciée était la fonction d'activation sigmoïdale, et il existe une excellente théorie mathématique en tant que sauvegarde.

C'est exactement le modèle qu'Andrew Ng utilise puisque cette fonction va de 0 à 1.

Aussi la dérivée s'(x) = s(x)(1−s(x)), où se s(x)trouve la fonction d'activation sigmoïdale.

Pour la fonction d'erreur, il utilise L2, bien que dans certains articles, il puisse utiliser une autre fonction pour cela.

Donc, pour récapituler, lorsque l'on considère la "régression logistique", il suffit de considérer la perception à un niveau avec la fonction d'activation sigmoïdale, le nombre personnalisé d'entrées et la sortie unique.


Juste quelques notes: il n'y a rien de mal à la fonction d'activation sigmoïdale, bien que pour l'arithmétique à virgule flottante, ReLU domine les couches cachées de nos jours, mais dans un avenir proche, les postures (ou d'autres unités arithmétiques) peuvent remettre la fonction d'activation sigmoïdale sur la table .

Personnalité, j'utiliserais un modèle plus simple avec la fonction ReLU pour expliquer le SLP (perceptron à un niveau) car il est plus utilisé aujourd'hui.

prosti
la source