22 votos

¿Entropía cruzada de Tensorflow para regresión?

¿Tiene sentido el coste de la entropía cruzada en el contexto de la regresión? (Si es así, ¿podría dar un ejemplo de juguete a través de tensorflow y si no, ¿por qué no?

Estaba leyendo sobre la entropía cruzada en Redes neuronales y aprendizaje profundo por Michael Nielsen y parece algo que podría ser utilizado naturalmente para la regresión, así como la clasificación, pero no entiendo cómo se podría aplicar de manera eficiente en tensorflow ya que las funciones de pérdida toman logits (que realmente no entiendo tampoco) y que están listados en Clasificación aquí

15voto

user777 Puntos 10934

No, no tiene sentido utilizar 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 sobre 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 un gran número de funciones de pérdida de entropía cruzada; sin embargo, es una convención en el aprendizaje automático referirse a esta pérdida en particular como pérdida de "entropía cruzada".

Si miramos más allá de las funciones de TensorFlow que enlazas, entonces por supuesto que hay cualquier número de posibles funciones de entropía cruzada. Esto se debe a que el concepto general de la entropía cruzada trata de la comparación de dos distribuciones de probabilidad. Dependiendo de qué dos distribuciones de probabilidad desee comparar, puede llegar a una pérdida diferente de la típica pérdida de entropía cruzada categórica. Por ejemplo, la entropía cruzada de un objetivo gaussiano con una media variable pero una covarianza diagonal fija se reduce al error cuadrático medio. El concepto general de entropía cruzada se describe con más detalle en estas preguntas:

13voto

La respuesta dada por @Sycorax es correcta. Sin embargo, vale la pena mencionar que el uso de la entropía cruzada (binaria) en una tarea de regresión en la que los valores de salida están en el rango [0,1] es algo válido y razonable. De hecho, se utiliza en autocodificadores de imágenes (p. ej. aquí y este documento ). Quizá le interese ver una sencilla demostración matemática de por qué funciona en este caso en esta respuesta .

6voto

Ludwi Puntos 188

Los marcos de aprendizaje profundo suelen mezclar modelos y pérdidas y referirnos a la entropía cruzada de un modelo multinomial con no linealidad softmax mediante cross_entropy lo cual es engañoso. En general, se puede definir entropía cruzada para modelos arbitrarios .

Para un modelo gaussiano con media variable pero covarianza diagonal fija, equivale al MSE. Para una covarianza general, la entropía cruzada correspondería a un cuadrado de Distancia Mahalanobis . Para una distribución exponencial, la pérdida de entropía cruzada sería la siguiente fθ(x)ylogfθ(x),fθ(x)ylogfθ(x), donde yy es continua pero no negativa. Así que la entropía cruzada puede utilizarse para la regresión.

5voto

dedObed Puntos 139

Lamentablemente, la respuesta de @Sycorax, aunque detallada, es incorrecta.

En realidad, un excelente ejemplo de regresión mediante entropía cruzada categórica -- Wavenet -- ha sido implementado en TensorFlow .

El principio consiste en discretizar el espacio de salida y, a continuación, el modelo sólo predice la casilla correspondiente; véase la sección 2.2 del documento papel para ver un ejemplo en el ámbito de la modelización del sonido. Así pues, aunque técnicamente el modelo realiza una clasificación, la tarea resuelta en última instancia es la regresión.

Una desventaja obvia es que se pierde resolución de salida. Sin embargo, esto puede no ser un problema (al menos creo que el asistente artificial de Google. habló una voz muy humana ) o puede jugar con algún postprocesado, por ejemplo interpolando entre el contenedor más probable y sus dos vecinos.

Por otra parte, este enfoque hace que el modelo sea mucho más potente en comparación con la salida habitual de una sola unidad lineal, es decir, permite expresar predicciones multimodales o evaluar su confianza. Hay que tener en cuenta, no obstante, que esto último puede conseguirse de forma natural por otros medios, por ejemplo, con una salida de varianza (logarítmica) explícita, como en los autocodificadores variacionales.

De todos modos, este enfoque no se adapta bien a salidas más dimensionales, porque entonces el tamaño de la capa de salida crece exponencialmente, lo que lo convierte en un problema tanto computacional como de modelado

2voto

Rivten Puntos 128

He revisado esta pregunta porque ahora no estoy de acuerdo con la respuesta que acepté anteriormente. La pérdida de entropía cruzada PUEDE utilizarse en regresión (aunque no es habitual).

Todo se reduce al hecho de que la entropía cruzada es un concepto que sólo tiene sentido cuando se comparan dos distribuciones de probabilidad. Podríamos pensar en una red neuronal cuya predicción fuera la media y la desviación típica de una distribución normal. Entonces sería castigada más duramente por tener más confianza en las malas predicciones. Así que sí, tiene sentido, pero sólo si la salida es una distribución en algún sentido. El enlace de @SiddharthShakya en un comentario a mi pregunta original muestra esto.

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