¿Tiene sentido el costo de la entropía cruzada en el contexto de la regresión (en oposición a la clasificación)? Si es así, ¿podría dar un ejemplo de juguete a través de TensorFlow? ¿Si no, porque no?
Estaba leyendo acerca de la entropía cruzada en Redes Neurales y Aprendizaje Profundo por Michael Nielsen y parece algo que podría usarse naturalmente para la regresión y la clasificación, pero no entiendo cómo lo aplicaría eficientemente en TensorFlow desde el las funciones de pérdida toman logits (que tampoco entiendo) y se enumeran aquí en la clasificación
regression
entropy
tensorflow
cross-entropy
JacKeown
fuente
fuente
Respuestas:
No, no tiene sentido usar las funciones de TensorFlow como
tf.nn.sigmoid_cross_entropy_with_logits
para una tarea de regresión. En TensorFlow, "entropía cruzada" es la abreviatura (o jerga) de "entropía cruzada categórica". La entropía cruzada categórica es una operación de probabilidades. Un problema de regresión intenta predecir resultados continuos, en lugar de clasificaciones.La jerga "entropía cruzada" es un poco engañosa, porque hay muchas funciones de pérdida de entropía cruzada; sin embargo, es una convención en el aprendizaje automático referirse a esta pérdida particular como pérdida de "entropía cruzada".
Si miramos más allá de las funciones de TensorFlow a las que se vincula, entonces, por supuesto, hay varias posibles funciones de entropía cruzada. Esto se debe a que el concepto general de entropía cruzada se trata de la comparación de dos distribuciones de probabilidad. Dependiendo de las dos distribuciones de probabilidad que desea comparar, puede llegar a una pérdida diferente a la pérdida categórica típica de entropía cruzada. Por ejemplo, la entropía cruzada de un objetivo gaussiano con alguna covarianza diagonal variable media pero fija se reduce a error cuadrático medio. El concepto general de entropía cruzada se describe con más detalle en estas preguntas:
¿Las redes neuronales aprenden una función o una función de densidad de probabilidad?
¿Cómo construir una pérdida de entropía cruzada para objetivos de regresión general?
fuente
La respuesta dada por @Sycorax es correcta. Sin embargo, vale la pena mencionar que usar la entropía cruzada (binaria) en una tarea de regresión donde los valores de salida están en el rango [0,1] es algo válido y razonable. En realidad, se usa en codificadores automáticos de imágenes (por ejemplo, aquí y este documento ). Es posible que le interese ver una prueba matemática simple de por qué funciona en este caso en esta respuesta .
fuente
Los marcos de aprendizaje profundo a menudo mezclan modelos y pérdidas y se refieren a la entropía cruzada de un modelo multinomial con no linealidad softmax por
cross_entropy
, lo cual es engañoso. En general, puede definir la entropía cruzada para modelos arbitrarios .fuente
Desafortunadamente, la respuesta aceptada ahora por @Sycorax, aunque detallada, es incorrecta.
En realidad, un ejemplo excelente de regresión a través de la entropía cruzada categórica - Wavenet - se ha implementado en TensorFlow .
El principio es que usted discretiza su espacio de salida y luego su modelo solo predice el bin respectivo; Consulte la Sección 2.2 del documento para ver un ejemplo en el dominio de modelado de sonido. Entonces, aunque técnicamente el modelo realiza la clasificación, la tarea final resuelta es la regresión.
Un inconveniente obvio es que pierde la resolución de salida. Sin embargo, esto puede no ser un problema (al menos creo que el asistente artificial de Google habló con una voz muy humana ) o puede jugar con algo de procesamiento posterior, por ejemplo, interpolar entre el bin más probable y sus dos vecinos.
Por otro lado, este enfoque hace que el modelo sea mucho más poderoso en comparación con la salida habitual de una sola unidad lineal, es decir, permite expresar predicciones multimodales o evaluar su confianza. Sin embargo, tenga en cuenta que esto último puede lograrse naturalmente por otros medios, por ejemplo, teniendo una salida de varianza explícita (log) como en los codificadores automáticos variacionales.
De todos modos, este enfoque no escala bien a una salida más dimensional, porque entonces el tamaño de la capa de salida crece exponencialmente, lo que lo convierte en un problema tanto de computación como de modelado.
fuente
He revisado esta pregunta ya que ahora no estoy de acuerdo con la respuesta que acepté anteriormente. La pérdida de entropía cruzada PUEDE usarse en regresión (aunque no es común).
Todo se reduce al hecho de que la entropía cruzada es un concepto que solo tiene sentido cuando se comparan dos distribuciones de probabilidad. Podría considerar una red neuronal que genera una desviación media y estándar para una distribución normal como su predicción. Entonces sería castigado con más dureza por tener más confianza en las malas predicciones. Entonces, sí, tiene sentido, pero solo si está produciendo una distribución en algún sentido. El enlace de @SiddharthShakya en un comentario a mi pregunta original muestra esto.
fuente