Función de Pérdida
Durante el entrenamiento de una red neuronal, es necesario medir cuán precisamente el modelo predice los resultados correctos. Esto se realiza utilizando una función de pérdida, que calcula la diferencia entre las predicciones del modelo y los valores objetivo reales. El objetivo del entrenamiento es minimizar esta pérdida, logrando que las predicciones sean lo más cercanas posible a las salidas verdaderas.
Para tareas de clasificación binaria, una de las funciones de pérdida más utilizadas es la pérdida de entropía cruzada, que resulta especialmente eficaz para modelos que generan probabilidades como salida.
Derivación de la pérdida de entropía cruzada
Para comprender la pérdida de entropía cruzada, se debe considerar el principio de máxima verosimilitud. En un problema de clasificación binaria, el objetivo es entrenar un modelo que estime la probabilidad y^ de que una entrada dada pertenezca a la clase 1. La etiqueta verdadera y puede tomar uno de dos valores: 0 o 1.
Un modelo eficaz debe asignar altas probabilidades a las predicciones correctas. Esta idea se formaliza mediante la función de verosimilitud, que representa la probabilidad de observar los datos reales dados las predicciones del modelo.
Para un solo ejemplo de entrenamiento, asumiendo independencia, la verosimilitud puede expresarse como:
P(y∣x)=y^y(1−y^)1−yEsta expresión significa lo siguiente:
- Si y=1, entonces P(y∣x)=y^ — el modelo debe asignar una alta probabilidad a la clase 1;
- Si y=0, entonces P(y∣x)=1−y^ — el modelo debe asignar una alta probabilidad a la clase 0.
En ambos casos, el objetivo es maximizar la probabilidad que el modelo asigna a la clase correcta.
P(y∣x) significa la probabilidad de observar la etiqueta de clase real y dado el conjunto de entradas x.
Para simplificar la optimización, se utiliza la log-verosimilitud en lugar de la función de verosimilitud, ya que al aplicar el logaritmo se convierten productos en sumas, lo que facilita la diferenciación:
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Dado que el entrenamiento busca maximizar la log-verosimilitud, la función de pérdida se define como su valor negativo para que el proceso de optimización se convierta en un problema de minimización:
L=−(ylog(y^)+(1−y)log(1−y^))Esta es la función de pérdida de entropía cruzada binaria, comúnmente utilizada para problemas de clasificación.
Dado que la variable output representa y^ para un ejemplo de entrenamiento particular, y la variable target representa y para este ejemplo de entrenamiento, esta función de pérdida puede implementarse de la siguiente manera:
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
¿Por qué esta fórmula?
La pérdida de entropía cruzada tiene una interpretación intuitiva clara:
- Si y=1, la pérdida se simplifica a −log(y^), lo que significa que la pérdida es baja cuando y^ está cerca de 1 y muy alta cuando y^ está cerca de 0;
- Si y=0, la pérdida se simplifica a −log(1−y^), lo que significa que la pérdida es baja cuando y^ está cerca de 0 y muy alta cuando está cerca de 1.
Dado que los logaritmos crecen negativamente grandes a medida que su entrada se acerca a cero, las predicciones incorrectas son fuertemente penalizadas, lo que incentiva al modelo a realizar predicciones correctas y seguras.
Si se pasan múltiples ejemplos durante la propagación hacia adelante, la pérdida total se calcula como el promedio de la pérdida en todos los ejemplos:
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))donde N es el número de muestras de entrenamiento.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain how cross-entropy loss differs from mean squared error?
What happens if the model predicts exactly 0 or 1 for the output?
Can you show how this loss function is used during neural network training?
Awesome!
Completion rate improved to 4
Función de Pérdida
Desliza para mostrar el menú
Durante el entrenamiento de una red neuronal, es necesario medir cuán precisamente el modelo predice los resultados correctos. Esto se realiza utilizando una función de pérdida, que calcula la diferencia entre las predicciones del modelo y los valores objetivo reales. El objetivo del entrenamiento es minimizar esta pérdida, logrando que las predicciones sean lo más cercanas posible a las salidas verdaderas.
Para tareas de clasificación binaria, una de las funciones de pérdida más utilizadas es la pérdida de entropía cruzada, que resulta especialmente eficaz para modelos que generan probabilidades como salida.
Derivación de la pérdida de entropía cruzada
Para comprender la pérdida de entropía cruzada, se debe considerar el principio de máxima verosimilitud. En un problema de clasificación binaria, el objetivo es entrenar un modelo que estime la probabilidad y^ de que una entrada dada pertenezca a la clase 1. La etiqueta verdadera y puede tomar uno de dos valores: 0 o 1.
Un modelo eficaz debe asignar altas probabilidades a las predicciones correctas. Esta idea se formaliza mediante la función de verosimilitud, que representa la probabilidad de observar los datos reales dados las predicciones del modelo.
Para un solo ejemplo de entrenamiento, asumiendo independencia, la verosimilitud puede expresarse como:
P(y∣x)=y^y(1−y^)1−yEsta expresión significa lo siguiente:
- Si y=1, entonces P(y∣x)=y^ — el modelo debe asignar una alta probabilidad a la clase 1;
- Si y=0, entonces P(y∣x)=1−y^ — el modelo debe asignar una alta probabilidad a la clase 0.
En ambos casos, el objetivo es maximizar la probabilidad que el modelo asigna a la clase correcta.
P(y∣x) significa la probabilidad de observar la etiqueta de clase real y dado el conjunto de entradas x.
Para simplificar la optimización, se utiliza la log-verosimilitud en lugar de la función de verosimilitud, ya que al aplicar el logaritmo se convierten productos en sumas, lo que facilita la diferenciación:
logP(y∣x)=ylog(y^)+(1−y)log(1−y^)Dado que el entrenamiento busca maximizar la log-verosimilitud, la función de pérdida se define como su valor negativo para que el proceso de optimización se convierta en un problema de minimización:
L=−(ylog(y^)+(1−y)log(1−y^))Esta es la función de pérdida de entropía cruzada binaria, comúnmente utilizada para problemas de clasificación.
Dado que la variable output representa y^ para un ejemplo de entrenamiento particular, y la variable target representa y para este ejemplo de entrenamiento, esta función de pérdida puede implementarse de la siguiente manera:
import numpy as np
loss = -(target * np.log(output) + (1 - target) * np.log(1 - output))
¿Por qué esta fórmula?
La pérdida de entropía cruzada tiene una interpretación intuitiva clara:
- Si y=1, la pérdida se simplifica a −log(y^), lo que significa que la pérdida es baja cuando y^ está cerca de 1 y muy alta cuando y^ está cerca de 0;
- Si y=0, la pérdida se simplifica a −log(1−y^), lo que significa que la pérdida es baja cuando y^ está cerca de 0 y muy alta cuando está cerca de 1.
Dado que los logaritmos crecen negativamente grandes a medida que su entrada se acerca a cero, las predicciones incorrectas son fuertemente penalizadas, lo que incentiva al modelo a realizar predicciones correctas y seguras.
Si se pasan múltiples ejemplos durante la propagación hacia adelante, la pérdida total se calcula como el promedio de la pérdida en todos los ejemplos:
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))donde N es el número de muestras de entrenamiento.
¡Gracias por tus comentarios!