Quelle fonction de perte est correcte pour la régression logistique?

31

J'ai lu deux versions de la fonction de perte pour la régression logistique, laquelle est correcte et pourquoi?

  1. De Machine Learning , Zhou ZH (en chinois), avec :β=(w,b) and βTx=wTx+b

    (1)l(β)=i=1m(yiβTxi+ln(1+eβTxi))

  2. De mon cours collégial, avec :zi=yif(xi)=yi(wTxi+b)

    (2)L(zi)=log(1+ezi)


Je sais que le premier est une accumulation de tous les échantillons et le second est pour un seul échantillon, mais je suis plus curieux de la différence sous la forme de deux fonctions de perte. D'une certaine manière, j'ai le sentiment qu'ils sont équivalents.

xtt
la source

Réponses:

31

La relation est la suivante: l(β)=iL(zi) .

Définissez une fonction logistique comme f(z)=ez1+ez=11+ez . Ils possèdent la propriété f(z)=1f(z) . Ou en d'autres termes:

11+ez=ez1+ez.

Si vous prenez l'inverse des deux côtés, alors prenez le journal que vous obtenez:

ln(1+ez)=ln(1+ez)+z.

Soustrayez z des deux côtés et vous devriez voir ceci:

yiβTxi+ln(1+eyiβTxi)=L(zi).

Modifier:

En ce moment, je cette réponse et je ne sais pas comment j'ai obtenu que soit égal à . Il y a peut-être une faute de frappe dans la question d'origine.yiβTxi+ln(1+eβTxi)yiβTxi+ln(1+eyiβTxi)

Modifier 2:

Dans le cas où il n'y avait pas de faute de frappe dans la question d'origine, @ManelMorales semble correct pour attirer l'attention sur le fait que, lorsque , la fonction de masse de probabilité peut être écrite comme , en raison de la propriété que . Je le réécris différemment ici, car il introduit une nouvelle équivoque sur la notation . Le reste suit en prenant la log-vraisemblance négative pour chaque codage . Voir sa réponse ci-dessous pour plus de détails.y{1,1}P(Yi=yi)=f(yiβTxi)f(z)=1f(z)ziy

Taylor
la source
42

OP croit à tort que la relation entre ces deux fonctions est due au nombre d'échantillons (c.-à-d. Un seul vs tous). Cependant, la différence réelle est simplement la façon dont nous sélectionnons nos étiquettes de formation.

Dans le cas d'une classification binaire, nous pouvons attribuer les étiquettes ou .y=±1y=0,1

Comme cela a déjà été dit, la fonction logistique est un bon choix car elle a la forme d'une probabilité, c'est-à-dire et comme . Si nous choisissons les étiquettes nous pouvons attribuer σ(z)σ(z)=1σ(z)σ(z)(0,1)z±y=0,1

P(y=1|z)=σ(z)=11+ezP(y=0|z)=1σ(z)=11+ez

qui peut être écrit de manière plus compacte comme .P(y|z)=σ(z)y(1σ(z))1y

Il est plus facile de maximiser la probabilité de journalisation. Maximiser la log-vraisemblance équivaut à minimiser la log-vraisemblance négative. Pour échantillons , après avoir pris le logarithme naturel et quelques simplifications, nous découvrirons:m{xi,yi}

l(z)=log(imP(yi|zi))=imlog(P(yi|zi))=imyizi+log(1+ezi)

Une dérivation complète et des informations supplémentaires peuvent être trouvées sur ce carnet jupyter . D'un autre côté, nous avons peut-être plutôt utilisé les étiquettes . Il est alors assez évident que nous pouvons attribuery=±1

P(y|z)=σ(yz).

Il est également évident que . En suivant les mêmes étapes que précédemment, nous minimisons dans ce cas la fonction de perteP(y=0|z)=P(y=1|z)=σ(z)

L(z)=log(jmP(yj|zj))=jmlog(P(yj|zj))=jmlog(1+eyzj)

Où la dernière étape suit après que nous prenons l'inverse qui est induit par le signe négatif. Bien que nous ne devrions pas assimiler ces deux formes, étant donné que dans chaque forme, prend des valeurs différentes, ces deux formes sont néanmoins équivalentes:y

yizi+log(1+ezi)log(1+eyzj)

Le cas est trivial à montrer. Si , alors sur le côté gauche et sur le côté droit.yi=1yi1yi=0yi=1

Bien qu'il puisse y avoir des raisons fondamentales pour lesquelles nous avons deux formes différentes (voir Pourquoi il y a deux formulations / notations de pertes logistiques différentes ), une des raisons de choisir la première est pour des considérations pratiques. Dans le premier, nous pouvons utiliser la propriété pour calculer trivialement et , les deux étant nécessaires pour l'analyse de convergence (c'est-à-dire pour déterminer la convexité de la fonction de perte en calculant la Hesse ).σ(z)/z=σ(z)(1σ(z))l(z)2l(z)

Manuel Morales
la source
La fonction de perte logistique est-elle convexe?
user85361
2
Log reg EST convexe, mais pas -convex. Ainsi, nous ne pouvons pas limiter la durée de la descente du gradient de convergence. Nous pouvons ajuster la forme de pour la rendre fortement convexe en ajoutant un terme de régularisation: avec une constante positive définir notre nouvelle fonction comme étant st est fortement convexe et nous pouvons maintenant prouver la limite de convergence de . Malheureusement, nous minimisons maintenant une fonction différente! Heureusement, nous pouvons montrer que la valeur de l'optimum de la fonction régularisée est proche de la valeur de l'optimum de l'original. l(z)αlλl(z)=l(z)+λz2l(z)λl
Manuel Morales
Le cahier que vous avez mentionné est parti, j'ai une autre preuve: statlect.com/fundamentals-of-statistics/…
Domi.Zhang
2
J'ai trouvé que c'était la réponse la plus utile.
mohit6up le
@ManuelMorales Avez-vous un lien vers la valeur optimale de la fonction régularisée proche de l'original?
Mark
19

J'ai appris la fonction de perte pour la régression logistique comme suit.

La régression logistique effectue une classification binaire, et donc les sorties d'étiquette sont binaires, 0 ou 1. Soit la probabilité que la sortie binaire soit 1 étant donné le vecteur de caractéristique d'entrée . Les coefficients sont les poids que l'algorithme essaie d'apprendre.P(y=1|x)yxw

P(y=1|x)=11+ewTx

La régression logistique étant binaire, la probabilité est simplement de 1 moins le terme ci-dessus.P(y=0|x)

P(y=0|x)=111+ewTx

La fonction de perte est la somme de (A) la sortie multipliée par et (B) de la sortie multipliée par pour un exemple d'apprentissage, additionnée plus de exemples de formation.J(w)y=1P(y=1)y=0P(y=0)m

J(w)=i=1my(i)logP(y=1)+(1y(i))logP(y=0)

où indique l' étiquette dans vos données d'entraînement. Si une instance d'apprentissage a une étiquette de , alors , en laissant le sommet gauche en place mais en faisant le sommet droit avec devenir . D'un autre côté, si une instance d'apprentissage a , alors le sommet droit avec le terme reste en place, mais le sommet gauche devient . La probabilité logarithmique est utilisée pour faciliter le calcul.y(i)ith1y(i)=11y(i)0y=01y(i)0

Si nous remplaçons alors et par les expressions précédentes, alors nous obtenons:P(y=1)P(y=0)

J(w)=i=1my(i)log(11+ewTx)+(1y(i))log(111+ewTx)

Vous pouvez en savoir plus sur ce formulaire dans ces notes de cours de Stanford .

stackoverflowuser2010
la source
Cette réponse fournit également une perspective pertinente ici.
GeoMatt22
6
L'expression que vous avez n'est pas une perte (à minimiser), mais plutôt une log-vraisemblance (à maximiser).
xenocyon
2
@xenocyon true - cette même formulation est généralement écrite avec un signe négatif appliqué à la sommation complète.
Alex Klibisz
1

Au lieu de l'erreur quadratique moyenne, nous utilisons une fonction de coût appelée entropie croisée, également connue sous le nom de perte de journal. La perte d'entropie croisée peut être divisée en deux fonctions de coût distinctes: une pour y = 1 et une pour y = 0.

j(θ)=1mi=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=log(hθ(x))if y=1Cost(hθ(x),y)=log(1hθ(x))if y=0

Lorsque nous les assemblons, nous avons:

j(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x)(i))]

La multiplication par et dans l'équation ci-dessus est une astuce sournoise qui nous permet d'utiliser la même équation pour résoudre à la fois les cas et . Si , le premier côté s'annule. Si , le deuxième côté s'annule. Dans les deux cas, nous n'effectuons que l'opération que nous devons effectuer.y(1y)y=1y=0y=0y=1

Si vous ne voulez pas utiliser de forboucle, vous pouvez essayer une forme vectorisée de l'équation ci-dessus

h=g(Xθ)J(θ)=1m(yTlog(h)(1y)Tlog(1h))

L'explication complète peut être consultée sur Cheatsheet Machine Learning .

Emanuel Fontelles
la source