61 votos

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

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

  1. Desde Aprendizaje automático , Zhou Z.H (en chino), con $\beta = (w, b)\text{ and }\beta^Tx=w^Tx +b$ :

    $$l(\beta) = \sum\limits_{i=1}^{m}\Big(-y_i\beta^Tx_i+\ln(1+e^{\beta^Tx_i})\Big) \tag 1$$

  2. Desde mi curso universitario, con $z_i = y_if(x_i)=y_i(w^Tx_i + b)$ :

    $$L(z_i)=\log(1+e^{-z_i}) \tag 2$$


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 por la diferencia en la forma de dos funciones de pérdida. De alguna manera tengo la sensación de que son equivalentes.

76voto

user161433 Puntos 1554

OP cree erróneamente que la relación entre estas dos funciones se debe al número de muestras (es decir, una sola 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 $y=\pm1$ o $y=0,1$ .

Como ya se ha dicho, la función logística $\sigma(z)$ es una buena opción ya que tiene la forma de una probabilidad, es decir $\sigma(-z)=1-\sigma(z)$ y $\sigma(z)\in (0,1)$ como $z\rightarrow \pm \infty$ . Si elegimos las etiquetas $y=0,1$ podemos asignar

\begin{equation} \begin{aligned} \mathbb{P}(y=1|z) & =\sigma(z)=\frac{1}{1+e^{-z}}\\ \mathbb{P}(y=0|z) & =1-\sigma(z)=\frac{1}{1+e^{z}}\\ \end{aligned} \end{equation}

que puede escribirse de forma más compacta como $\mathbb{P}(y|z) =\sigma(z)^y(1-\sigma(z))^{1-y}$ .

Es más fácil maximizar la log-verosimilitud. Maximizar la log-verosimilitud es lo mismo que minimizar la log-verosimilitud negativa. Para $m$ muestras $\{x_i,y_i\}$ Después de tomar el logaritmo natural y alguna simplificación, encontraremos

\begin{equation} \begin{aligned} l(z)=-\log\big(\prod_i^m\mathbb{P}(y_i|z_i)\big)=-\sum_i^m\log\big(\mathbb{P}(y_i|z_i)\big)=\sum_i^m-y_iz_i+\log(1+e^{z_i}) \end{aligned} \end{equation}

La derivación completa y la información adicional se pueden encontrar en este cuaderno jupyter . Por otro lado, podríamos haber utilizado en su lugar las etiquetas $y=\pm 1$ . Es bastante obvio entonces que podemos asignar

\begin{equation} \mathbb{P}(y|z)=\sigma(yz). \end{equation}

También es obvio que $\mathbb{P}(y=0|z)=\mathbb{P}(y=-1|z)=\sigma(-z)$ . Siguiendo los mismos pasos que antes minimizamos en este caso la función de pérdida

\begin{equation} \begin{aligned} L(z)=-\log\big(\prod_j^m\mathbb{P}(y_j|z_j)\big)=-\sum_j^m\log\big(\mathbb{P}(y_j|z_j)\big)=\sum_j^m\log(1+e^{-yz_j}) \end{aligned} \end{equation}

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

\begin{equation} \begin{aligned} -y_iz_i+\log(1+e^{z_i})\equiv \log(1+e^{-yz_j}) \end{aligned} \end{equation}

El caso $y_i=1$ es trivial de mostrar. Si $y_i \neq 1$ entonces $y_i=0$ en el lado izquierdo y $y_i=-1$ en el lado derecho.

Aunque puede haber razones fundamentales para que tengamos dos formas diferentes (véase ¿Por qué hay dos formulaciones / notaciones de pérdidas logísticas diferentes? ), una de las razones para elegir la primera es por consideraciones prácticas. En la primera podemos utilizar la propiedad $\partial \sigma(z) / \partial z=\sigma(z)(1-\sigma(z))$ para calcular trivialmente $\nabla l(z)$ y $\nabla^2l(z)$ , ambos necesarios para el análisis de convergencia (es decir, para determinar la convexidad de la función de pérdida por calcular el hessiano ).

42voto

Taylor Puntos 692

La relación es la siguiente: $l(\beta) = \sum_i L(z_i)$ .

Defina una función logística como $f(z) = \frac{e^{z}}{1 + e^{z}} = \frac{1}{1+e^{-z}}$ . Poseen la propiedad que $f(-z) = 1-f(z)$ . O en otras palabras:

$$ \frac{1}{1+e^{z}} = \frac{e^{-z}}{1+e^{-z}}. $$

Si tomas el recíproco de ambos lados, y luego tomas el logaritmo obtienes:

$$ \ln(1+e^{z}) = \ln(1+e^{-z}) + z. $$

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

$$ -y_i\beta^Tx_i+ln(1+e^{y_i\beta^Tx_i}) = L(z_i). $$

Editar:

En este momento estoy releyendo esta respuesta y estoy confundido sobre cómo he conseguido $-y_i\beta^Tx_i+ln(1+e^{\beta^Tx_i})$ para que sea igual a $-y_i\beta^Tx_i+ln(1+e^{y_i\beta^Tx_i})$ . Tal vez haya un error tipográfico en la pregunta original.

Editar 2:

En el caso de que no hubiera una errata en la pregunta original, @ManelMorales parece tener razón al llamar la atención sobre el hecho de que, cuando $y \in \{-1,1\}$ la función de masa de probabilidad puede escribirse como $P(Y_i=y_i) = f(y_i\beta^Tx_i)$ debido a la propiedad de que $f(-z) = 1 - f(z)$ . Lo reescribo aquí de forma diferente, porque introduce un nuevo equívoco en la notación $z_i$ . El resto se obtiene tomando la log-verosimilitud negativa para cada $y$ codificación. Vea su respuesta más abajo para más detalles.

23voto

Dib Puntos 319

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 las etiquetas son binarias, 0 o 1. Sea $P(y=1|x)$ sea la probabilidad de que la salida binaria $y$ es 1 dado el vector de características de entrada $x$ . Los coeficientes $w$ son los pesos que el algoritmo intenta aprender.

$$P(y=1|x) = \frac{1}{1 + e^{-w^{T}x}}$$

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

$$P(y=0|x) = 1- \frac{1}{1 + e^{-w^{T}x}}$$

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

$$J(w) = \sum_{i=1}^{m} y^{(i)} \log P(y=1) + (1 - y^{(i)}) \log P(y=0)$$

donde $y^{(i)}$ indica el $i^{th}$ en sus datos de entrenamiento. Si una instancia de entrenamiento tiene una etiqueta de $1$ entonces $y^{(i)}=1$ dejando el sumando de la izquierda en su lugar pero haciendo el sumando de la derecha con $1-y^{(i)}$ convertirse en $0$ . Por otro lado, si una instancia de entrenamiento tiene $y=0$ , entonces el sumando derecho con el término $1-y^{(i)}$ permanece en su lugar, pero el sumando de la izquierda se convierte en $0$ . La probabilidad logarítmica se utiliza para facilitar el cálculo.

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

$$J(w) = \sum_{i=1}^{m} y^{(i)} \log \left(\frac{1}{1 + e^{-w^{T}x}}\right) + (1 - y^{(i)}) \log \left(1- \frac{1}{1 + e^{-w^{T}x}}\right)$$

Puede leer más sobre este formulario en estos Notas de la conferencia de Stanford .

2voto

Rohit Puntos 16

En lugar del error cuadrático medio, utilizamos una función de coste denominada entropía cruzada, también conocida como pérdida logarítmica. La pérdida de entropía cruzada puede dividirse en dos funciones de coste distintas: una para y=1 y otra para y=0.

\begin{align}\newcommand{\Cost}{{\rm Cost}}\newcommand{\if}{{\rm if}} j(\theta) &= \frac 1 m \sum_{i=1}^m \Cost(h_\theta(x^{(i)}), y^{(i)}) & & \\ \Cost(h_\theta(x), y) &= -\log(h_\theta(x)) & \if\ y &= 1 \\ \Cost(h_\theta(x), y) &= -\log(1-h_\theta(x)) & \if\ y &= 0 \end{align}

Cuando los juntamos tenemos:

$$ j(\theta) = \frac 1 m \sum_{i=1}^m \big[y^{(i)}\log(h_\theta(x^{(i)})) + (1-y^{(i)})\log(1-h_\theta(x)^{(i)}) \big] $$

Multiplicando por $y$ y $(1−y)$ en la ecuación anterior es un truco que nos permite utilizar la misma ecuación para resolver ambos $y=1$ y $y=0$ casos. Si $y=0$ el primer lado se anula. Si $y=1$ El segundo lado se anula. En ambos casos sólo realizamos la operación que necesitamos.

Si no quiere utilizar un for se puede intentar una forma vectorizada de la ecuación anterior

\begin{align} h &= g(X\theta) \\ J(\theta) &= \frac 1 m \cdot \big(-y^T\log(h)-(1-y)^T\log(1-h)\big) \end{align}

La explicación completa puede verse en Hoja de trucos de aprendizaje automático .

0voto

Chuan Xu Puntos 1

Son las mismas funciones.

En el primero, $y_i$ es $0$ o $1$ . Mientras que en la segunda, $y_i$ es $-1$ o $1$ .

La segunda puede derivarse de la primera, ya que las probabilidades de la segunda función pueden escribirse como una sola ecuación, es decir, la función sigmoidea de $z_i y_i$ ( $z_i$ son las combinaciones lineales de características de la observación $i$ ; $y_i$ es $-1$ o $1$ basado en el hecho de la observación $i$ ).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X