Estoy jugando con redes neuronales convolucionales usando Keras+Tensorflow para clasificar datos categóricos. Puedo elegir entre dos funciones de pérdida: categorial_crossentropy
y sparse_categorial_crossentropy
.
Tengo una buena intuición sobre el categorial_crossentropy
función de pérdida, que se define como sigue:
$$ J(\textbf{w}) = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \text{log}(\hat{y}_i) + (1-y_i) \text{log}(1-\hat{y}_i) \right] $$
donde,
- $\textbf{w}$ se refieren a los parámetros del modelo, por ejemplo, los pesos de la red neuronal
- $y_i$ es la verdadera etiqueta
- $\hat{y_i}$ es la etiqueta prevista
Ambas etiquetas utilizan el esquema de codificación de un disparo.
Preguntas:
- ¿Cómo cambia la función de pérdida anterior en
sparse_categorial_crossentropy
? - ¿Cuál es la intuición matemática que hay detrás?
- ¿Cuándo utilizar uno sobre el otro?