¿Qué función de pérdida es correcta para la regresión logística?

31

Leí sobre dos versiones de la función de pérdida para regresión logística, ¿cuál de ellas es correcta y por qué?

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

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

  2. De mi curso universitario, con :zi=yif(xi)=yi(wTxi+b)

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


Sé que la primera es una acumulación de todas las muestras y la segunda es para una sola muestra, pero tengo más curiosidad acerca de la diferencia en la forma de dos funciones de pérdida. De alguna manera tengo la sensación de que son equivalentes.

xtt
fuente

Respuestas:

31

La relación es la siguiente: .l(β)=iL(zi)

Defina una función logística como . Poseen la propiedad de que . O en otras palabras:f(z)=ez1+ez=11+ezf(z)=1f(z)

11+ez=ez1+ez.

Si toma el recíproco de ambos lados, tome el registro que obtiene:

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

Resta de ambos lados y deberías ver esto:z

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

Editar:

En este momento estoy releyendo esta respuesta y estoy confundido acerca de cómo obtuve para ser igual a . Quizás haya un error tipográfico en la pregunta original.- y i β T x i + l n ( 1 + e y i β T x i )yiβTxi+ln(1+eβTxi)yiβTxi+ln(1+eyiβTxi)

Edición 2:

En el caso de que no hubiera un error tipográfico en la pregunta original, @ManelMorales parece ser correcto para llamar la atención sobre el hecho de que, cuando , la función de masa de probabilidad se puede escribir como , debido a la propiedad de que . Lo estoy reescribiendo de manera diferente aquí, porque introduce una nueva equivocación en la notación . El resto sigue tomando la probabilidad de registro negativa para cada codificación . Vea su respuesta a continuación para más detalles.P ( Y i = y i ) = f ( y i β T x i ) f ( - z ) =y{1,1}P(Yi=yi)=f(yiβTxi)z i yf(z)=1f(z)ziy

Taylor
fuente
42

OP cree erróneamente que la relación entre estas dos funciones se debe a la cantidad de muestras (es decir, individuales frente a todas). Sin embargo, la diferencia real es simplemente cómo seleccionamos nuestras etiquetas de entrenamiento.

En el caso de la clasificación binaria, podemos asignar las etiquetas o .y=±1y=0,1

Como ya se ha indicado, la función logística es una buena opción ya que tiene la forma de una probabilidad, es decir, y como . Si elegimos las etiquetas podemos asignar σ(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

que se puede escribir de manera más compacta como .P(y|z)=σ(z)y(1σ(z))1y

Es más fácil maximizar la probabilidad de registro. Maximizar la probabilidad logarítmica es lo mismo que minimizar la probabilidad logarítmica negativa. Para samples , después de tomar el logaritmo natural y alguna simplificación, descubriremos:m{xi,yi}

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

La derivación completa y la información adicional se pueden encontrar en este cuaderno jupyter . Por otro lado, es posible que hayamos usado las etiquetas . Es bastante obvio que podemos asignary=±1

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

También es obvio que . Siguiendo los mismos pasos que antes, minimizamos en este caso la función de pérdidaP(y=0|z)=P(y=1|z)=σ(z)

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

Donde sigue el último paso después de tomar el recíproco que es inducido por el signo negativo. Si bien no debemos equiparar estas dos formas, dado que en cada forma toma valores diferentes, sin embargo, estas dos son equivalentes:y

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

El caso es trivial para mostrar. Si , entonces en el lado izquierdo y en el lado derecho.yi=1yi1yi=0yi=1

Si bien puede haber razones fundamentales de por qué tenemos dos formas diferentes (consulte ¿Por qué hay dos formulaciones / anotaciones de pérdida logística diferentes? ), Una razón para elegir la primera es por consideraciones prácticas. En la primera, podemos usar la propiedad para calcular trivialmente y , los cuales son necesarios para el análisis de convergencia (es decir, para determinar la convexidad de la función de pérdida calculando el Hessian ).σ(z)/z=σ(z)(1σ(z))l(z)2l(z)

Manuel Morales
fuente
¿La función de pérdida logística es convexa?
user85361
2
Log reg IS convexo, pero no -convex. Por lo tanto, no podemos establecer un límite sobre cuánto tiempo tarda el descenso de la pendiente en converger. Podemos ajustar la forma de para hacerla fuertemente convexa agregando un término de regularización: con constante positiva defina nuestra nueva función como st es -fuertemente convexo y ahora podemos probar el límite de convergencia de . ¡Desafortunadamente, ahora estamos minimizando una función diferente! Afortunadamente, podemos mostrar que el valor del óptimo de la función regularizada está cerca del valor del óptimo del original. α l λ l ( z ) = l ( z ) + λ z 2 l ( z ) λ l l(z)αlλl(z)=l(z)+λz2l(z)λl
Manuel Morales
El cuaderno que usted refirió se ha ido, tengo otra prueba: statlect.com/fundamentals-of-statistics/…
Domi.Zhang
2
Encontré que esta es la respuesta más útil.
mohit6up
@ManuelMorales ¿Tiene un enlace al valor óptimo de la función regularizada que está cerca del original?
Mark
19

Aprendí la función de pérdida para la regresión logística de la siguiente manera.

La regresión logística realiza una clasificación binaria, por lo que las salidas de etiqueta son binarias, 0 o 1. Sea la probabilidad de que la salida binaria sea ​​1 dado el vector de características de entrada . Los coeficientes son los pesos que el algoritmo está tratando de aprender.P(y=1|x)yxw

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

Como la regresión logística es binaria, la probabilidad es simplemente 1 menos el término anterior.P(y=0|x)

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

La función de pérdida es la suma de (A) la salida multiplicada por y (B) la salida multiplicada por para un ejemplo de entrenamiento, sumado más de ejemplos de entrenamiento.J(w)y=1P(y=1)y=0P(y=0)m

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

donde indica la etiqueta en tus datos de entrenamiento. Si una instancia de entrenamiento tiene una etiqueta de , entonces , dejando el sumando izquierdo en su lugar pero haciendo que el sumando derecho con convierta en . Por otro lado, si una instancia de entrenamiento tiene , entonces el sumando derecho con el término permanece en su lugar, pero el sumando izquierdo se convierte en . La probabilidad de registro se usa para facilitar el cálculo.y(i)ith1y(i)=11y(i)0y=01y(i)0

Si luego reemplazamos y con las expresiones anteriores, entonces obtenemos:P(y=1)P(y=0)

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

Puede leer más sobre este formulario en estas notas de clase de Stanford .

stackoverflowuser2010
fuente
Esta respuesta también proporciona alguna perspectiva relevante aquí.
GeoMatt22
66
La expresión que tiene no es una pérdida (para ser minimizada), sino más bien una probabilidad logarítmica (para ser maximizada).
xenocyon
2
@xenocyon true: esta misma formulación generalmente se escribe con un signo negativo aplicado a la suma completa.
Alex Klibisz
1

En lugar de Error cuadrático medio, utilizamos una función de costo llamada Cross-Entropy, también conocida como Log Loss. La pérdida de entropía cruzada se puede dividir en dos funciones de costo separadas: una para y = 1 y otra para 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

Cuando los juntamos tenemos:

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

Multiplicar por y en la ecuación anterior es un truco engañoso que nos permite usar la misma ecuación para resolver los casos e . Si , el primer lado se cancela. Si , el segundo lado se cancela. En ambos casos solo realizamos la operación que necesitamos realizar.y(1y)y=1y=0y=0y=1

Si no desea utilizar un forbucle, puede probar una forma vectorizada de la ecuación anterior

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

La explicación completa se puede ver en Cheatsheet de Machine Learning .

Emanuel Fontelles
fuente