Welche Verlustfunktion ist für die logistische Regression richtig?


31

Ich habe zwei Versionen der Verlustfunktion für die logistische Regression gelesen. Welche davon ist richtig und warum?

  1. Aus dem maschinellen Lernen , Zhou ZH (auf Chinesisch), mit β=(w,b) and βTx=wTx+b :

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

  2. Aus meinem College-Kurs mit zi=yif(xi)=yi(wTxi+b) :

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


Ich weiß, dass die erste eine Ansammlung aller Proben ist und die zweite für eine einzelne Probe, aber ich bin neugieriger auf den Unterschied in Form von zwei Verlustfunktionen. Irgendwie habe ich das Gefühl, dass sie gleichwertig sind.

Antworten:


31

Die Beziehung ist wie folgt: l(β)=iL(zi) .

Definieren Sie eine logistische Funktion als . Sie besitzen die Eigenschaft, dassf(-z)=1-f(z). Oder mit anderen Worten:f(z)=ez1+ez=11+ezf(z)=1f(z)

11+ez=ez1+ez.

Wenn Sie den Kehrwert beider Seiten nehmen, dann nehmen Sie das Protokoll, das Sie erhalten:

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

Subtrahiere von beiden Seiten und du solltest folgendes sehen:z

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

Bearbeiten:

Im Moment bin ich wieder lesen Sie diese Antwort und bin verwirrt darüber , wie ich bekam , um gleich - y i β T x i + l n ( 1 + e y i β T x i ) . Vielleicht liegt ein Tippfehler in der ursprünglichen Frage vor.yiβTxi+ln(1+eβTxi)yiβTxi+ln(1+eyiβTxi)

Bearbeiten 2:

Für den Fall, dass die ursprüngliche Frage keinen Tippfehler enthielt, scheint @ManelMorales richtig zu sein, um die Aufmerksamkeit auf die Tatsache zu lenken, dass, wenn , die Wahrscheinlichkeitsmassenfunktion als P ( Y) geschrieben werden kann i = y i ) = f ( y i & bgr; T x i ) , aufgrund der Eigenschaft, dass f ( - z ) = 1 - f ( z )y{1,1}P(Yi=yi)=f(yiβTxi)f(z)=1f(z). Ich schreibe es hier anders, weil er eine neue Zweideutigkeit in die Notation einführt . Der Rest folgt aus der negativen log-Wahrscheinlichkeit für jede y- Codierung. Siehe seine Antwort unten für weitere Details.ziy


42

OP glaubt fälschlicherweise, dass die Beziehung zwischen diesen beiden Funktionen auf die Anzahl der Stichproben zurückzuführen ist (dh Single vs All). Der eigentliche Unterschied besteht jedoch einfach darin, wie wir unsere Trainingsetiketten auswählen.

Bei der binären Klassifikation können wir die Bezeichnungen y=±1 oder y=0,1 .

Wie bereits ausgeführt, ist die logistische Funktion σ(z) eine gute Wahl, da sie die Form einer Wahrscheinlichkeit hat, dh σ(z)=1σ(z) und σ(z)(0,1) als z± . Wenn wir die Bezeichnungen y=0,1 auswählen , können wir sie zuweisen

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

which can be written more compactly as P(y|z)=σ(z)y(1σ(z))1y.

It is easier to maximize the log-likelihood. Maximizing the log-likelihood is the same as minimizing the negative log-likelihood. For m samples {xi,yi}, after taking the natural logarithm and some simplification, we will find out:

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

Full derivation and additional information can be found on this jupyter notebook. On the other hand, we may have instead used the labels y=±1. It is pretty obvious then that we can assign

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

It is also obvious that P(y=0|z)=P(y=1|z)=σ(z). Following the same steps as before we minimize in this case the loss function

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

Where the last step follows after we take the reciprocal which is induced by the negative sign. While we should not equate these two forms, given that in each form y takes different values, nevertheless these two are equivalent:

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

The case yi=1 is trivial to show. If yi1, then yi=0 on the left hand side and yi=1 on the right hand side.

σ(z)/z=σ(z)(1σ(z)) to trivially calculate l(z) and 2l(z), both of which are needed for convergence analysis (i.e. to determine the convexity of the loss function by calculating the Hessian).


Is logistic loss function convex?
user85361

2
Log reg l(z) IS convex, but not α-convex. Thus we can't place a bound on how long gradient descent takes to converge. We can adjust the form of l to make it strongly convex by adding a regularization term: with positive constant λ define our new function to be l(z)=l(z)+λz2 s.t l(z) is λ-strongly convex and we can now prove the convergence bound of l. Unfortunately, we are now minimizing a different function! Luckily, we can show that the value of the optimum of the regularized function is close to the value of the optimum of the original.
Manuel Morales

The notebook you referred has gone, I got another proof: statlect.com/fundamentals-of-statistics/…
Domi.Zhang

2
I found this to be the most helpful answer.
mohit6up

@ManuelMorales Do you have a link to the regularized function's optimum value being close to the original?
Mark

19

I learned the loss function for logistic regression as follows.

Logistic regression performs binary classification, and so the label outputs are binary, 0 or 1. Let P(y=1|x) be the probability that the binary output y is 1 given the input feature vector x. The coefficients w are the weights that the algorithm is trying to learn.

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

Because logistic regression is binary, the probability P(y=0|x) is simply 1 minus the term above.

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

The loss function J(w) is the sum of (A) the output y=1 multiplied by P(y=1) and (B) the output y=0 multiplied by P(y=0) for one training example, summed over m training examples.

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

where y(i) indicates the ith label in your training data. If a training instance has a label of 1, then y(i)=1, leaving the left summand in place but making the right summand with 1y(i) become 0. On the other hand, if a training instance has y=0, then the right summand with the term 1y(i) remains in place, but the left summand becomes 0. Log probability is used for ease of calculation.

If we then replace P(y=1) and P(y=0) with the earlier expressions, then we get:

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

You can read more about this form in these Stanford lecture notes.


This answer also provides some relevant perspective here.
GeoMatt22

6
The expression you have is not a loss (to be minimized), but rather a log-likelihood (to be maximized).
xenocyon

2
@xenocyon true - this same formulation is typically written with a negative sign applied to the full summation.
Alex Klibisz

1

Anstelle von Mean Squared Error verwenden wir eine Kostenfunktion namens Cross-Entropy, die auch als Log Loss bezeichnet wird. Der Cross-Entropy-Verlust kann in zwei separate Kostenfunktionen unterteilt werden: eine für y = 1 und eine für 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

When we put them together we have:

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

Multiplying by y and (1y) in the above equation is a sneaky trick that let’s us use the same equation to solve for both y=1 and y=0 cases. If y=0, the first side cancels out. If y=1, the second side cancels out. In both cases we only perform the operation we need to perform.

If you don't want to use a for loop, you can try a vectorized form of the equation above

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

The entire explanation can be view on Machine Learning Cheatsheet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.