Entropía, entropía cruzada y divergencia KL
Índice de contenidos
- Puntos clave
- ¿Qué es la entropía (Shannon)?
- La entropía cruzada
- La divergencia KL
- Relación entre las tres
- Uso en aprendizaje profundo
- Preguntas frecuentes
- ¿Por qué la divergencia KL no es una distancia?
- ¿Cuál es la diferencia entre entropía cruzada y divergencia KL?
- ¿En qué unidades se miden estas cantidades?
- Conclusión
- Fuentes
La entropía mide la incertidumbre media de una distribución en bits, la entropía cruzada mide el coste de codificar los datos reales con un modelo equivocado y la divergencia KL es la diferencia entre ambas. Por eso minimizar la entropía cruzada al entrenar equivale a minimizar la divergencia KL frente a las etiquetas.
La entropía mide la incertidumbre de una distribución, y la divergencia KL mide cuánto pierdes al describir esa distribución con otra distinta. Son tres ideas encadenadas de la teoría de la información: la entropía, la entropía cruzada y la divergencia KL. Aparecen juntas cada vez que una red neuronal calcula su pérdida, porque entrenar un clasificador es, literalmente, acercar la distribución que predice el modelo a la distribución real de las etiquetas. Entender la relación entre las tres aclara por qué la entropía cruzada es la función de coste por defecto en casi toda la clasificación. La misma explicación está disponible en inglés.
Puntos clave
- La entropía de Shannon $H(P) = -\sum P\log P$ mide la incertidumbre media de una distribución; una moneda justa tiene 1 bit y un dado de 6 caras unos $2{,}585$ bits.
- La entropía cruzada $H(P,Q) = -\sum P\log Q$ mide el coste de codificar datos que siguen $P$ usando un modelo $Q$ equivocado.
- La divergencia KL $D_{\mathrm{KL}}(P|Q) = \sum P\log\frac{P}{Q}$ es exactamente la diferencia: los bits de más que gastas por usar $Q$ en lugar de $P$.
- La identidad que une todo es $H(P,Q) = H(P) + D_{\mathrm{KL}}(P|Q)$: entropía cruzada igual a entropía más divergencia.
- Como $H(P)$ no depende del modelo, minimizar la entropía cruzada al entrenar equivale a minimizar la divergencia KL frente a las etiquetas.
¿Qué es la entropía (Shannon)?
La entropía nació en 1948 con el artículo de Claude Shannon «A Mathematical Theory of Communication»[1], el texto que fundó la teoría de la información. Como escribió Shannon, «el problema fundamental de la comunicación es reproducir en un punto, de forma exacta o aproximada, un mensaje seleccionado en otro punto». Para medir cuánta información hace falta transmitir, definió la entropía de una distribución de probabilidad $P$:
$$H(P) = -\sum P\log P$$
Cuando el logaritmo es en base 2, la entropía se mide en bits: es el número medio de bits necesarios para codificar cada resultado si usamos el mejor código posible. Una moneda justa, con dos resultados igual de probables, tiene una entropía de exactamente 1 bit. Un dado de 6 caras equilibrado sube a $\log_2(6) \approx 2{,}585$ bits, porque hay más incertidumbre que resolver. Una moneda trucada que sale cara el 90 % de las veces baja a unos $0{,}469$ bits: es más predecible, así que informa menos. La entropía es máxima cuando todo es igual de probable y mínima (cero) cuando el resultado es seguro. Puedes repasar la base logarítmica en exponencial y logaritmo natural en deep learning, y el marco general en el mapa de las matemáticas de las redes neuronales.
La entropía cruzada
La entropía supone que conocemos la distribución real $P$. Pero un modelo casi nunca la conoce: trabaja con su propia estimación $Q$. La entropía cruzada mide qué pasa cuando codificamos datos que en realidad siguen $P$ usando el código óptimo para $Q$:
$$H(P,Q) = -\sum P\log Q$$
Si $Q$ acierta y coincide con $P$, la entropía cruzada iguala a la entropía y no se desperdicia nada. Si $Q$ se equivoca, la entropía cruzada es mayor: gastamos más bits de los necesarios. Este es exactamente el número que una red minimiza al clasificar. La red produce una distribución $Q$ (por ejemplo, con una función softmax) y la compara con la distribución real de la etiqueta. El caso de dos clases es la entropía cruzada binaria, que sale de la sigmoide. La intuición visual de por qué el logaritmo cuenta bits está muy bien contada en Visual Information Theory de Christopher Olah[2].
La divergencia KL
Si la entropía cruzada siempre es mayor o igual que la entropía, la pregunta natural es cuánto mayor. Esa diferencia es la divergencia de Kullback-Leibler, propuesta en 1951:
$$D_{\mathrm{KL}}(P|Q) = \sum P\log\frac{P}{Q}$$
Mide los bits de más que gastas por usar el modelo $Q$ cuando la realidad es $P$. Tiene tres propiedades que conviene grabar. Primero, nunca es negativa: $D{\mathrm{KL}}(P|Q) \ge 0$ siempre, un resultado conocido como desigualdad de Gibbs. Segundo, vale cero solo cuando $Q$ es idéntica a $P$, así que actúa como una medida de lo lejos que está el modelo de la verdad. Tercero, no es simétrica: $D{\mathrm{KL}}(P|Q)$ casi nunca coincide con $D_{\mathrm{KL}}(Q|P)$, y por eso no es una distancia en sentido estricto.
La desigualdad de Gibbs garantiza que la divergencia KL nunca es negativa, así que la entropía cruzada nunca puede quedar por debajo de la entropía: siempre pagas un peaje en bits por usar un modelo imperfecto, y ese peaje solo llega a cero cuando el modelo acierta la distribución real.
Un ejemplo aclara la asimetría. Sean $P = [0{,}5,\ 0{,}5]$ y $Q = [0{,}9,\ 0{,}1]$. En bits, $D{\mathrm{KL}}(P|Q) \approx 0{,}737$, mientras que $D{\mathrm{KL}}(Q|P) \approx 0{,}531$. Son valores distintos, así que el orden de los argumentos importa. La entrada de la divergencia KL en Wikipedia[3] recoge estas propiedades y sus usos en estadística.
Relación entre las tres
Aquí encaja todo. Si desarrollamos la divergencia KL separando el logaritmo del cociente, aparece la identidad central:
$$D_{\mathrm{KL}}(P|Q) = \sum P\log\frac{P}{Q} = -H(P)+H(P,Q)$$
Reordenando: $H(P,Q) = H(P) + D_{\mathrm{KL}}(P|Q)$. En palabras, la entropía cruzada es la entropía más la divergencia KL. La entropía es el coste inevitable de la incertidumbre real; la divergencia KL es el coste extra por tener un modelo imperfecto. La entropía cruzada es la suma de ambos.
Ver la derivación
Parte de la definición y separa el logaritmo del cociente: $D_{\mathrm{KL}}(P\|Q) = \sum P\log\frac{P}{Q} = \sum P\log P-\sum P\log Q$. El primer sumatorio es $\sum P\log P = -H(P)$ por la propia definición de entropía, y el segundo es $-\sum P\log Q = H(P,Q)$, la entropía cruzada. Sustituyendo queda $D_{\mathrm{KL}}(P\|Q) = -H(P)+H(P,Q)$, y despejando se obtiene $H(P,Q) = H(P) + D_{\mathrm{KL}}(P\|Q)$.
El libro de referencia Deep Learning de Goodfellow, Bengio y Courville[4] presenta estas tres cantidades justo en este orden dentro de su capítulo de teoría de la información, porque es la manera más limpia de derivar las funciones de pérdida.
Uso en aprendizaje profundo
Ahora la consecuencia práctica. Al entrenar un clasificador, $P$ es la distribución real de la etiqueta y $Q$ la que predice la red. Como la etiqueta suele venir en formato one-hot (un 1 en la clase correcta y ceros en el resto), su entropía $H(P)$ es exactamente 0: no hay incertidumbre en el dato de entrenamiento. Al ser $H(P)$ una constante que no depende de los pesos, minimizar $H(P,Q)$ es idéntico a minimizar $D_{\mathrm{KL}}(P|Q)$. Por eso, aunque las bibliotecas hablen de «pérdida de entropía cruzada», por dentro estás empujando la divergencia KL hacia cero.
Esta equivalencia también explica por qué la entropía cruzada castiga con dureza los errores seguros: si el modelo asigna una probabilidad diminuta a la clase correcta, el término $-\log Q$ se dispara. El gradiente resultante es limpio y estable, lo que la convierte en la elección por defecto frente a alternativas como el error cuadrático medio. La misma maquinaria escala a modelos enormes: un modelo de lenguaje se entrena minimizando la entropía cruzada sobre miles de millones de tokens, un token cada vez.
Preguntas frecuentes
¿Por qué la divergencia KL no es una distancia?
Porque no es simétrica: $D{\mathrm{KL}}(P|Q)$ y $D{\mathrm{KL}}(Q|P)$ dan valores distintos, como ocurría en el ejemplo ($0{,}737$ frente a $0{,}531$ bits). Una distancia matemática exige simetría y cumplir la desigualdad triangular, y la divergencia KL no hace ninguna de las dos. Es una medida de disimilitud dirigida, no una métrica.
¿Cuál es la diferencia entre entropía cruzada y divergencia KL?
La entropía cruzada $H(P,Q)$ incluye la entropía de fondo $H(P)$; la divergencia KL solo mide el exceso, $H(P,Q)-H(P)$. Cuando las etiquetas son one-hot, $H(P) = 0$ y ambas coinciden numéricamente, por eso al entrenar redes se usan casi como sinónimos aunque conceptualmente sean cosas distintas.
¿En qué unidades se miden estas cantidades?
Depende de la base del logaritmo. Con logaritmo en base 2 se miden en bits, que es lo habitual en teoría de la información. Con logaritmo natural se miden en nats, que es lo que usan por dentro casi todas las bibliotecas de aprendizaje profundo por comodidad de cálculo. La forma de la fórmula no cambia, solo la escala.
Conclusión
Entropía, entropía cruzada y divergencia KL son tres piezas de la misma historia: la entropía mide la incertidumbre real, la entropía cruzada mide el coste de un modelo imperfecto y la divergencia KL es la diferencia entre ambas. La identidad $H(P,Q) = H(P) + D_{\mathrm{KL}}(P|Q)$ las une y, como $H(P)$ es constante durante el entrenamiento, minimizar una es minimizar la otra. El siguiente paso natural es ver cómo esta idea se concreta en la salida de un clasificador con la función softmax.