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?
Réponses:
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 00 1 0 , 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:- 1 1
Vectorialement, les caractéristiques ou attributs d'un exemple sont x , et l'idée est de "passer" l'exemple si:ré X
ou ...∑1réθjeXje> theshold
. La fonction signe donne1ou-1, par opposition à0et1en régression logistique.h ( x ) = signe ( ∑1réθjeXje- theshold ) 1 - 1 0 1
Le seuil sera absorbé dans le coefficient de biais , . La formule est maintenant:+ θ0
, ou vectorisé:h(x)=signe( θ T x).h ( x ) = signe ( ∑0réθ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 Θ Xn yn yn
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 %
Le code utilisé est ici .
la source
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:
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).
la source
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 .
la source
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.
la source
la source
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ù ses(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.
la source