Escalado de temperatura y ECE: calibra la confianza del modelo paso a paso
Trabaja con softmax, ajusta una temperatura sobre seis predicciones, calcula el ECE y descubre por qué una mejor verosimilitud aún puede producir una peor puntuación de calibración agrupada.
Seis predicciones pueden ser correctas cuatro de cada seis veces y, aun así, contar dos historias de probabilidad muy distintas. En el ejemplo desarrollado a continuación, la clase ganadora nunca cambia. Dividir cada logit por una temperatura ajustada solo reduce o aumenta la confianza asociada a cada ganadora.
Ese pequeño ajuste mejora la verosimilitud logarítmica negativa media de a . Después ocurre algo incómodo: el error de calibración esperado, calculado con cuatro intervalos de igual anchura, aumenta del al .
La aritmética no indica un fallo del escalado de temperatura. Expone una lección más útil: la calibración es una relación entre las probabilidades predichas y los resultados observados, mientras que el ECE es una estimación de esa relación que depende de la muestra y de los intervalos. Al terminar, podrás ajustar la temperatura, calcular el ECE, reproducir ambos resultados en Python y explicar por qué ninguno de los dos números puede trasladarse sin cambios a una nueva población de despliegue.
El trabajo actual de evaluación hace práctica esta distinción. Un piloto de Google DeepMind publicado el 27 de agosto mantuvo ocultos entre sí los pesos propietarios del modelo y los prompts de prueba externos, mientras que MLCommons proporcionó un subconjunto reservado de AILuminate. Esos controles protegen el material de prueba. No deciden qué población debe describir una probabilidad. NIST AI 800-3 plantea el mismo punto para la exactitud: el rendimiento en preguntas fijas de referencia y el rendimiento en un universo más amplio de preguntas similares son objetivos de medición distintos.
Un pronóstico probabilístico hace una promesa comprobable
Supón que un clasificador predice la clase con una confianza de en muchos ejemplos independientes. Una confianza calibrada significa que alrededor del de esas predicciones son correctas. De forma más formal, si es la clase predicha y su confianza declarada, la calibración perfecta de la etiqueta principal exige
Esta definición no dice que el clasificador sea exacto. Un modelo que predice con confianza y acierta el de las veces está calibrado aunque se equivoque a menudo. Un modelo también puede ordenar correctamente cada ejemplo y, sin embargo, informar de para casos que solo aciertan el de las veces. La exactitud pregunta quién ganó; la calibración comprueba si la probabilidad asociada cumplió su promesa.
El evento y la población necesitan nombres. «Correcto» puede significar coincidencia exacta de clase, finalización de una tarea u otro resultado puntuado. Los ejemplos pueden ser solicitudes de asistencia al cliente en un idioma, preguntas de referencia o el tráfico de producción de mañana. Cambia cualquiera de los dos lados y también cambia la afirmación probabilística. Para conocer el flujo de evaluación más amplio que sustenta esa elección, consulta cómo las evaluaciones dan forma a los productos de IA.
La temperatura gira el dial de confianza
Un clasificador suele emitir logits: puntuaciones sin restricciones para clases. Softmax las convierte en probabilidades:
El escalado de temperatura introduce un número positivo :
Cuando , las diferencias entre los logits escalados se reducen y el vector de probabilidades se concentra menos. Cuando , las diferencias aumentan y el vector se vuelve más agudo. deja intactas las probabilidades originales.
Para el primer ejemplo, los logits son . Restar el logit máximo antes de exponenciar da el mismo softmax sin manejar números innecesariamente grandes:
Con , el vector se convierte aproximadamente en . La clase sigue ganando. De hecho, toda temperatura positiva conserva el orden de los logits, así que el escalado de temperatura no puede cambiar la clase predicha ni la exactitud de clasificación. Solo cambia la concentración de probabilidad.
Ajusta un escalar frente a etiquetas reservadas
El artículo de calibración revisado por pares de Guo y sus colegas ajusta minimizando la verosimilitud logarítmica negativa (NLL) en un conjunto de validación reservado, mientras mantiene fijos los parámetros de la red. Para ejemplos etiquetados, el objetivo es
donde es la probabilidad escalada asignada a la clase verdadera del ejemplo . Un error cometido con mucha confianza recibe una penalización grande porque la probabilidad de la clase verdadera es pequeña.
Este es el conjunto de validación sintético completo. Las etiquetas , y representan tres clases arbitrarias; no intervienen predicciones privadas ni de alto riesgo.
| Ejemplo | Logits | Clase real | Clase predicha | ¿Correcto? | Confianza con | Confianza con |
|---|---|---|---|---|---|---|
| 1 | A | A | Sí | 0.844 | 0.779 | |
| 2 | A | A | Sí | 0.766 | 0.701 | |
| 3 | B | A | No | 0.883 | 0.821 | |
| 4 | B | B | Sí | 0.574 | 0.537 | |
| 5 | C | C | Sí | 0.629 | 0.575 | |
| 6 | A | B | No | 0.518 | 0.496 |
La búsqueda de temperaturas positivas da . La NLL media baja de con a con el valor ajustado. La exactitud se mantiene en , exactamente como predice el orden de clases conservado.
Este conjunto es deliberadamente pequeño para facilitar el cálculo. No es lo bastante grande para aprobar un calibrador desplegado, y utilizar las mismas seis filas para ajustar y declarar el rendimiento produciría una estimación optimista de la generalización.
El ECE comprime un diagrama de fiabilidad
Un diagrama de fiabilidad, también llamado curva de calibración, agrupa las predicciones por confianza. Para cada intervalo , calcula
y
El indicador vale para una predicción correcta y en caso contrario. Un intervalo se encuentra en la diagonal ideal cuando su exactitud coincide con su confianza media.
El error de calibración esperado toma un promedio ponderado por muestra de las diferencias absolutas entre intervalos:
El cálculo siguiente utiliza cuatro intervalos de confianza fijos y de igual anchura: , , y . Los intervalos vacíos no contribuyen.
| Temperatura | Intervalo de confianza | Ejemplos | Confianza media | Exactitud |
|---|---|---|---|---|
| 1.00 | [0.50, 0.75) | 3 | 0.574 | 0.667 |
| 1.00 | [0.75, 1.00] | 3 | 0.831 | 0.667 |
| 1.23 | [0.25, 0.50) | 1 | 0.496 | 0.000 |
| 1.23 | [0.50, 0.75) | 3 | 0.604 | 1.000 |
| 1.23 | [0.75, 1.00] | 2 | 0.800 | 0.500 |
Antes del escalado, las tres predicciones de contribuyen
y las tres de contribuyen aproximadamente . Su suma es , o un .
Después del escalado, una predicción cruza por debajo de y los otros ejemplos forman grupos de tres y dos. Las tres contribuciones de los intervalos son aproximadamente , y , lo que da , o un .
Mejor verosimilitud, peor ECE
La temperatura ajustada optimizó la NLL, no el ECE de cuatro intervalos. La NLL evalúa la probabilidad completa asignada a cada clase verdadera y cambia suavemente con . El ECE arroja las predicciones en intervalos, descarta el detalle dentro de cada uno y cambia bruscamente cuando una confianza cruza un borde.
Seis ejemplos amplifican esa inestabilidad. Un error en un intervalo de un solo ejemplo tiene una exactitud del ; un resultado correcto haría que el mismo intervalo tuviera una exactitud del . Mover el borde o elegir un número distinto de intervalos puede producir otro ECE sin cambiar ninguna predicción. Guo et al. señalan explícitamente que el ECE es una aproximación agrupada y que el esquema de agrupación puede afectar a los resultados. La guía de calibración de scikit-learn también acompaña la curva con un histograma porque un punto sin su recuento de muestras se puede sobreinterpretar fácilmente.
Así que el ejemplo respalda tres afirmaciones separadas:
- la seleccionada mejora la NLL en estas seis filas;
- el escalado de temperatura deja sin cambios sus clases predichas y su exactitud;
- el ECE de cuatro intervalos empeora en las mismas filas.
Nada de esto implica que el calibrador vaya a mejorar las probabilidades de una muestra nueva. Esa cuestión requiere datos de evaluación intactos extraídos de la población a la que se refiere la decisión de despliegue.
Reproduce todos los números con NumPy
El siguiente programa realiza una búsqueda densa sobre un escalar positivo. La cuadrícula es deliberadamente transparente; el código de producción puede usar un optimizador escalar acotado y debe conservar un conjunto de evaluación final independiente.
import numpy as np
logits = np.array([
[3.0, 1.0, 0.0],
[2.5, 1.0, 0.0],
[3.0, 0.5, 0.0],
[1.5, 2.0, 0.0],
[0.5, 0.0, 1.5],
[2.0, 2.2, 0.0],
])
labels = np.array([0, 0, 1, 1, 2, 0])
def probabilities(temperature):
scaled = logits / temperature
scaled -= scaled.max(axis=1, keepdims=True)
exp = np.exp(scaled)
return exp / exp.sum(axis=1, keepdims=True)
def nll(temperature):
p = probabilities(temperature)
return -np.log(p[np.arange(len(labels)), labels]).mean()
temperatures = np.linspace(0.25, 4.0, 15_001)
temperature = temperatures[np.argmin([nll(t) for t in temperatures])]
def ece(temperature, edges=np.linspace(0.0, 1.0, 5)):
p = probabilities(temperature)
predictions = p.argmax(axis=1)
confidence = p.max(axis=1)
correct = predictions == labels
total = 0.0
for lower, upper in zip(edges[:-1], edges[1:]):
in_bin = (confidence >= lower) & (confidence < upper)
if upper == 1.0:
in_bin = (confidence >= lower) & (confidence <= upper)
if in_bin.any():
total += in_bin.mean() * abs(
correct[in_bin].mean() - confidence[in_bin].mean()
)
return total
print(f"T={temperature:.5f}")
print(f"NLL: {nll(1.0):.5f} -> {nll(temperature):.5f}")
print(f"ECE: {ece(1.0):.3f} -> {ece(temperature):.3f}")
La salida esperada es aproximadamente:
T=1.22975
NLL: 0.82278 -> 0.81243
ECE: 0.129 -> 0.380
Un calibrador pertenece a un contrato de medición
Un registro de calibración defendible debe indicar el punto de control del modelo, los logits sin escalar, la definición del resultado, la población, las ventanas temporales de los datos, el método de división, la ajustada, el objetivo de optimización, los límites de los intervalos de fiabilidad, sus recuentos y al menos una regla de puntuación adecuada, como la NLL. Ajusta el calibrador con ejemplos que no se hayan utilizado para entrenar el clasificador y evalúalo después con datos intactos.
El cambio de distribución es el caso límite decisivo. Una temperatura ajustada con preguntas de referencia limpias puede ser incorrecta para prompts cortos, otro idioma, una mezcla de clases nueva o entradas recopiladas después de que cambie el producto. El escalado de temperatura no puede reparar un ordenamiento de clases deficiente, detectar un dominio no observado ni demostrar que un sistema es seguro. Solo reescala los logits bajo los supuestos de validación utilizados para ajustar un número.
Por eso, una revisión del despliegue debe mantener la curva de fiabilidad y los recuentos de muestras junto al ECE, en lugar de tratar el escalar como un certificado. Si una nueva cohorte aleja esos puntos de la diagonal, la siguiente tarea no es defender el ECE antiguo. Es identificar qué población cambió, reunir suficientes etiquetas para medirlo y decidir si el contrato de calibración aún describe el sistema en uso.