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)P(y=0|z)=σ(z)=11+e−z=1−σ(z)=11+ez
que se puede escribir de manera más compacta como .P(y|z)=σ(z)y(1−σ(z))1−y
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))=∑im−yizi+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+e−yzj)
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+e−yzj)
El caso es trivial para mostrar. Si , entonces en el lado izquierdo y en el lado derecho.yi=1yi≠1yi=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)
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) y x w
Como la regresión logística es binaria, la probabilidad es simplemente 1 menos el término anterior.P(y=0|x)
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=1 P(y=1) y=0 P(y=0) m
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) ith 1 y(i)=1 1−y(i) 0 y=0 1−y(i) 0
Si luego reemplazamos y con las expresiones anteriores, entonces obtenemos:P(y=1) P(y=0)
Puede leer más sobre este formulario en estas notas de clase de Stanford .
fuente
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.
Cuando los juntamos tenemos:
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 (1−y) y=1 y=0 y=0 y=1
Si no desea utilizar un
for
bucle, puede probar una forma vectorizada de la ecuación anteriorLa explicación completa se puede ver en Cheatsheet de Machine Learning .
fuente