SenseiTeoría desde cero0/21

1 · Lo básico de MLLección 1 de 8

Qué es un modelo

What a model is

Un modelo es una función con perillas. Qué sale de ella, cómo se vuelve una probabilidad y una decisión, y contra qué se compara para saber si sirve.

⏱ 57 min lo esencial · 76 min todo20 conceptos nuevos3 calculadoras10 ejerciciosModelo
Secciones16
  1. 01Un modelo es una función
  2. 02Las perillas por dentro extra
  3. 03Qué le puedes preguntar: los tipos de tarea
  4. 04Logits y softmax: de puntajes a probabilidades
  5. 05Sigmoide: un sí o un no por etiqueta
  6. 06Por dentro de softmax y sigmoide extra
  7. 07Probabilidad y confianza: qué significa «94 %»
  8. 08Del puntaje a la decisión: argmax, top-k y umbral
  9. 09Decidir cerca de la línea: empates y umbrales extra
  10. 10El baseline: el rival que hay que vencer
  11. 11Errores comunes
  12. 12En la vida real extra
  13. 13Ejercicios
  14. 14Lo que sigue
  15. 15Palabras que vas a oír
  16. 16Chequeo
La pregunta

Cuando el modelo dice «Tenis, 94 %», ¿de dónde sale ese número, qué tanto le puedo creer y cómo sé si el modelo sirve?

Antes de esta lección: El camino completo.
01

Un modelo es una función

Esencial

A model is a function

En la lección anterior viste que un modelo aprende de ejemplos en vez de seguir reglas escritas a mano. Ahora vamos a abrir la caja. Lo primero que hay adentro es una idea de tu clase de matemáticas.

Una función es una regla que a cada entrada le asigna exactamente una salida. Con f(x) = 2x + 1, si entra 3 sale 2 × 3 + 1 = 7. Si vuelve a entrar 3, vuelve a salir 7: una función no cambia de opinión.

Un modelo es exactamente eso: entran números y salen números. Tiene dos diferencias con las funciones de la escuela: es enorme, y una parte de ella no la escribe nadie.

Un modelo de dos perillas

Imagina que el marketplace quiere sugerirle a Ana un precio para sus tenis usados. Un modelo muy chico podría ser:

precio = w × años + b

La forma («multiplica los años por algo y súmale algo») la eligió una persona. Los números w y b son los parámetros: las perillas del modelo. Sus letras vienen de weight (peso) y bias (sesgo), nombres que vas a ver en todas partes. Nadie los pone a mano: el entrenamiento los ajusta mirando miles de ventas pasadas, hasta que el modelo se equivoca lo menos posible con ellas.

Una predicción con las perillas ya puestasLa cuenta
La entradaunos tenis con 2 años de uso
años
2
Multiplicar por ww = −300, supuesta para el ejemplo
−300 × 2
−600
Sumar bb = 1,500, también supuesta
−600 + 1,500
900
Resultado
Precio sugerido: 900 pesos.

Con las mismas perillas, unos tenis nuevos salen en 1,500 pesos y unos de 4 años en −1,200 + 1,500 = 300. Si el entrenamiento hubiera dejado w = −200 y b = 1,800, los de 2 años saldrían en −400 + 1,800 = 1,400. Misma forma, otras perillas, otra respuesta.

Fíjate en algo: con 6 años sale −300 × 6 + 1,500 = −300 pesos. El modelo no sabe que un precio no puede ser negativo. No tiene sentido común: solo calcula. Todo lo que «sabe» quedó en sus perillas, y lo que esté lejos de lo que vio al entrenar lo puede responder muy mal sin avisar.

Del modelo de juguete a la ResNet-50 de C01

El modelo de C01 es una ResNet-50, una red neuronal diseñada para fotos: muchísimas cuentas como la del juguete (multiplicar cada entrada por su peso y sumar), encadenadas, donde lo que sale de un paso entra al siguiente. La idea es la del juguete, solo que mucho más grande:

Modelo de jugueteResNet-50 de C01
Qué entra1 número (los años)150,528 números: la foto ya preparada, de 224 × 224 píxeles (sus puntitos de color), con 3 números de color cada uno. Lo ves en la siguiente lección
Qué sale1 número (el precio)500 números, uno por categoría
Perillas2≈ 24.5 millones (la ResNet-50 original, de 1,000 categorías, tiene 25.6 millones)
Cuentas por respuesta1 multiplicación y 1 suma≈ 4 mil millones de multiplicaciones, cada una con su suma

A la forma de la función («ResNet-50», «multiplica y suma») se le llama arquitectura (architecture). A los valores de las perillas también se les dice pesos (weights). Calcular una respuesta, de la entrada a la salida, se llama forward pass: es lo que pasa en cada inferencia.

El archivo del modelo que se guarda después de entrenar son, sobre todo, esos 24.5 millones de números. Un byte es la unidad con que se mide la memoria, y cada uno de esos números ocupa 4 bytes en float32, la forma más común de guardar un número con decimales. El archivo pesa 24.5 millones × 4 bytes = 98 millones de bytes ≈ 98 MB (megabytes).

02

Las perillas por dentro

Extra

Inside the knobs

Esta sección es para una segunda pasada. Vuelve al modelo de juguete para ver qué hace cada perilla, qué pasa cuando hay más entradas y por qué los modelos grandes no son una sola suma.

Qué hace cada perilla

Si dibujas el precio contra los años, este modelo es una recta. Por eso se le llama modelo lineal (linear model), y en los libros aparece como y = w·x + b.

  • b es la altura de la recta cuando x vale 0: el precio de unos tenis nuevos. Moverla sube o baja la recta entera.
  • w es la inclinación: cuánto cambia el precio por cada año. Con w = −300, cada año le quita 300 pesos. Con w = 0 la recta queda plana: el modelo ignora los años y siempre dice b.
Un modelo lineal: el precio sugerido contra los años de uso. Los puntos son ventas pasadas de ejemplo, que bajan de unos 1,300 pesos con menos de un año a unos 150 con 4.5 años. La recta llena es w = −300 y b = 1,500: empieza en 1,500 con 0 años y baja 300 pesos por año, hasta −300 pesos con 6 años, un precio imposible. La recta punteada es w = −200 y b = 1,800: empieza más arriba y baja más despacio. PRECIO = w × AÑOS + b 1,500 1,000 500 0 −500 0 1 2 3 4 5 6 AÑOS DE USO b 1 año −300 6 años: −300 pesos ZONA DE PRECIOS NEGATIVOS w = −300 · b = 1,500 w = −200 · b = 1,800 venta pasada b: dónde empieza la recta · w: cuánto baja por año
Ventas pasadas (puntos de ejemplo) y dos modelos lineales. Entrenar es buscar la recta que pasa más cerca de los puntos. Con 6 años, la recta llena ya predice un precio negativo.
El modelo lineal: mueve las perillasCalculadora

precio = w × años + b. Mueve las dos perillas y mira cómo cambian todas las predicciones a la vez.

Precio sugerido para esos tenisw × años + b, en pesos900
Tenis nuevos (0 años)1,500
Con 2 años900
Con 4 años300
Con 6 añossi sale negativo, el modelo no lo sabe-300

Con w = 0 la recta queda plana: el modelo ignora los años y siempre dice b. Con w positiva, unos tenis viejos valdrían más que unos nuevos.

Reto: encuentra la recta que da 1,200 pesos con 2 años y 400 con 6 años. Solo hay una.

Más entradas, una perilla por cada una

Un precio no depende solo de los años. Si agregas una segunda entrada, por ejemplo si los tenis traen su caja (1 si sí, 0 si no), el modelo gana una perilla:

precio = w₁ × años + w₂ × caja + b

Con w₁ = −300, w₂ = 400 y b = 1,500, unos tenis de 2 años con caja salen en −600 + 400 + 1,500 = 1,300 pesos, y sin caja en 900. Son 3 parámetros: dos pesos y un sesgo. Esta cuenta (multiplicar cada entrada por su peso, sumar todo y agregar el sesgo) se llama suma ponderada, y es el ladrillo de casi todo: una neurona hace justo esa cuenta y luego la dobla un poco. Lo ves en «Redes neuronales y CNNs».

Una suma ponderada sola no se puede doblar. Con una entrada es una recta; con mil, algo así como un plano de mil dimensiones, pero siempre derecho. Si el precio real baja rápido el primer año y luego despacio, ninguna recta lo sigue bien. Por eso los modelos grandes apilan muchas sumas ponderadas con dobleces entre ellas.

03

Qué le puedes preguntar: los tipos de tarea

Esencial

Kinds of tasks

Antes de elegir un modelo se decide qué tipo de pregunta le vas a hacer. Eso es la tarea. La tarea fija tres cosas: qué forma tiene lo que sale, cómo se mide si acertó y qué hace el producto con la respuesta. En una entrevista de la Ronda, ponerle nombre a la tarea es de lo primero que se califica (M01).

Clasificación: elegir de una lista

En la clasificación el modelo elige de una lista fija de opciones. A cada opción se le llama clase. Hay tres variantes, y confundirlas rompe sistemas:

  • Binaria: dos clases, sí o no. ¿Este pago es fraude? ¿Este correo es spam? Es la clasificación binaria. A la clase que buscas (fraude, spam) se le dice positiva; a la otra, negativa.
  • Multiclase: más de dos clases, y cada ejemplo tiene exactamente una correcta. Es la multiclase. C01 es así: cada foto va en una sola de 500 categorías.
  • Multietiqueta: varias clases, y cada ejemplo puede tener varias a la vez, o ninguna. Es la multietiqueta (multi-label): cada clase recibe su propio sí o no.

El ejemplo clásico de multietiqueta es la moderación de contenido, el caso C06 de la Ronda. Una red social revisa cada post contra 7 políticas: spam, amenazas y violencia, odio, desnudez y otras. Un mismo post puede ser spam y violento, como un mensaje que vende seguidores falsos y amenaza a quien lo reporte. Si el modelo tuviera que elegir una sola clase, se le escaparía la otra. Por eso el modelo de C06 da un score por política.

Regresión: dar un número

En la regresión sale un número en una escala continua: el precio de la sección anterior, el tiempo que tarda un envío o cuántos litros de leche va a vender una tienda mañana. El nombre es histórico y no ayuda: no tiene nada que ver con «regresar».

La diferencia con la clasificación está en cómo se mide el error. En clasificación aciertas o no. En regresión importa qué tan lejos quedaste: sugerir 950 pesos cuando el par se vendió en 900 es un error chico; sugerir 3,000 es uno grande.

Ranking: ordenar

En el ranking el modelo ordena una lista. Cuando Ana busca «tenis» hay miles de publicaciones, y alguien tiene que decidir cuáles ve primero. El modelo le da un puntaje a cada una y se ordenan. Aquí importa el orden, no el número exacto. Muchas veces el puntaje es la probabilidad de un clasificador binario, por ejemplo la de que esa persona haga clic.

Visión: mirar dentro de la foto

Con imágenes hay tareas que no se conforman con una respuesta para toda la foto:

  • Detección de objetos: encuentra cada objeto y dibuja una caja alrededor. Por cada caja da cuatro números (dónde está y qué tamaño tiene), una clase y una confianza. Una foto puede dar cero cajas o cincuenta. Es el cuadrito que dibuja la cámara de tu celular alrededor de las caras.
  • Segmentación: le pone una clase a cada píxel de la imagen (cada uno de los puntitos de color que la forman). No dice «hay un tenis más o menos aquí», sino exactamente qué píxeles son tenis y cuáles son fondo. Es parte de lo que usa el «modo retrato» para desenfocar el fondo.
  • OCR (optical character recognition): lee el texto que aparece en la imagen y lo devuelve como texto que la computadora puede usar, como la talla en la etiqueta de un tenis.
Cuatro tareas con fotos parecidas. Clasificación: una categoría para toda la foto, Tenis 94 %. Detección: una caja y una categoría por cada objeto que aparece, un tenis y un balón. Segmentación: una etiqueta por cada píxel, tenis o fondo. OCR: el texto escrito en la imagen, TALLA 27. CLASIFICACIÓN Una categoría paratoda la foto: Tenis · 94 % DETECCIÓN Una caja y unacategoría por cada objeto que aparece SEGMENTACIÓN Una etiqueta porcada píxel: tenis o fondo OCR El texto escritoen la imagen: «TALLA 27» TENIS BALÓN TALLA 27
La misma idea, cuatro preguntas distintas. Cada una devuelve algo con otra forma: una categoría, cajas, una máscara de píxeles o texto.

Todas juntas

TareaQué saleEjemplo de todos los díasDónde la vas a ver en la Ronda
Clasificación binariauna de 2 clases, con su probabilidad¿este correo es spam?C09 (fraude)
Multiclaseuna de muchas clases¿de qué categoría es esta foto?C01 (500 categorías)
Multietiquetaun sí o no por cada claselas etiquetas de una foto: #playa #perroC06 (7 políticas)
Regresiónun número¿en cuánto vendo estos tenis?C14 (pronóstico de demanda)
Rankinguna lista ordenada¿qué publicaciones veo primero?C07 (búsqueda), C08 (recomendación), C15 (anuncios)
Deteccióncajas con clase y confianzael cuadrito en las caras de la cámaraC02 (video), C03 (planta)
Segmentaciónuna clase por píxeldesenfocar el fondo en «modo retrato»C04 (imágenes médicas)
OCRtextocopiar el texto de una fotoC05 (documentos)
04

Logits y softmax: de puntajes a probabilidades

Esencial

Logits and softmax

Aquí viene la primera sorpresa. El modelo de C01 no devuelve la palabra «Tenis». Devuelve 500 números, uno por categoría, siempre en el mismo orden. Esos números crudos se llaman logits.

Un logit es un puntaje: entre más alto, más se inclina el modelo por esa clase. Pero no es un porcentaje:

  • Puede ser cualquier número: 3.0, 0, −12.7 o 41.
  • No suma nada en especial: 500 logits pueden sumar 87 o −300.
  • Solo no dice mucho. Un logit de 3 es alto solo si los de las demás clases son más bajos.

Para seguir las cuentas con lápiz, usemos solo tres categorías. La foto de Ana da estos logits: Tenis 3.0, Botas 1.0 y Sandalias 0.0. El modelo prefiere «Tenis», pero ¿qué tanto? Con estos números no se puede decir todavía.

Softmax en tres pasos

Queremos convertir los logits en números que cumplan tres cosas: que cada uno quede entre 0 y 1, que sumen 1 entre todos y que el orden no cambie. La cuenta que hace eso se llama softmax.

Para el primer paso necesitas un número famoso: e ≈ 2.718 (el número de Euler). «e elevado a x» se escribe eˣ. Si x es un entero, es multiplicar e por sí mismo x veces: e³ = e × e × e ≈ 20.09. Si tiene decimales, la tecla eˣ de la calculadora lo resuelve. Su gracia: el resultado siempre es positivo, aunque x sea negativo (e⁻¹ ≈ 0.37).

Softmax de los logits 3, 1 y 0La cuenta
1. Elevar e a cada logite⁰ = 1, como cualquier número elevado a 0
e³ · e¹ · e⁰
20.09 · 2.72 · 1.00
2. Sumar todo
20.09 + 2.72 + 1.00
23.81
3. Dividir cada uno entre la suma
20.09 ÷ 23.81 · 2.72 ÷ 23.81 · 1.00 ÷ 23.81
0.844 · 0.114 · 0.042
Revisar
0.844 + 0.114 + 0.042
1.000
Resultado
Tenis 84.4 %, Botas 11.4 % y Sandalias 4.2 %.

Escrito como fórmula, para la clase i: pᵢ = e^(logitᵢ) ÷ (suma de e^(logit) de todas las clases). En C01 la suma lleva 500 términos en vez de 3, pero la cuenta es la misma.

Softmax paso a paso con tres logits: Tenis 3.0, Botas 1.0 y Sandalias 0.0. Paso 2, la exponencial: e³ = 20.09, e¹ = 2.72 y e⁰ = 1.00, que suman 23.81. Paso 3, dividir cada uno entre la suma: 84.4 %, 11.4 % y 4.2 %, que suman 100 % y conservan el orden. 1 · EL MODELO DA LOGITS Tenis3.0 Botas1.0 Sandalias0.0 e elevado a cada uno 2 · EXPONENCIAL: TODO QUEDA POSITIVO Tenise³ = 20.09 Botase¹ = 2.72 Sandaliase⁰ = 1.00 Suma23.81 ÷ 23.81 a cada uno 3 · PROBABILIDADES Tenis84.4 % Botas11.4 % Sandalias4.2 % Suman 100 % y el orden no cambia.
Softmax con tres logits. Las barras amarillas y las azules tienen la misma proporción: dividir entre la suma no cambia el tamaño relativo, solo hace que todo sume 100 %.
Softmax en vivoCalculadora

Mueve los tres logits y mira cómo cambian las probabilidades. La temperatura divide los tres logits antes del softmax.

P(Tenis)84.4 %
P(Botas)11.4 %
P(Sandalias)4.2 %
Suma de las exponencialesel denominador23.8
Tenis contra Botascon temperatura 1, e elevado a la diferencia de logits7.39×

Súmale lo mismo a los tres logits: nada cambia. Sube la temperatura: las barras se emparejan; bájala: el favorito se lleva casi todo. En ningún caso cambia el orden.

Pon los tres logits iguales: cada uno se queda con un tercio. Después súbele 1 al de Tenis y mira cuánto gana.

Tres cosas que conviene notar

Lo que cuenta es la diferencia entre logits. Súmales 10 a todos: 13, 11 y 10. Las probabilidades salen idénticas: 84.4 %, 11.4 % y 4.2 %. La razón: e¹³ = e³ × e¹⁰, y ese e¹⁰ aparece arriba y abajo de cada división, así que se cancela.

La exponencial exagera las diferencias. El logit de Tenis (3) le gana al de Botas (1) por 2 puntos, pero su probabilidad es 84.4 ÷ 11.4 ≈ 7.4 veces mayor. Cada punto de diferencia multiplica por e ≈ 2.72: 2 puntos son 2.72 × 2.72 ≈ 7.4 veces; 5 puntos, ≈ 148 veces.

Nunca da exactamente 0 ni 100 %. Sandalias, con logit 0, todavía se lleva 4.2 %. En C01, las 495 categorías que no entran al top-5 tienen probabilidades diminutas, pero ninguna es cero.

Softmax en Python

Son tres líneas, una por paso. Cópialo y córrelo: no necesita instalar nada.

python
import math

def softmax(logits):
    exps = [math.exp(z) for z in logits]   # 1. e elevado a cada logit
    total = sum(exps)                      # 2. sumar
    return [e / total for e in exps]       # 3. dividir entre la suma

logits = [3.0, 1.0, 0.0]                   # Tenis, Botas, Sandalias
print([round(p, 3) for p in softmax(logits)])
print(round(sum(softmax(logits)), 6))
print([round(p, 3) for p in softmax([z + 10 for z in logits])])   # sumar 10 a todos
print([round(p, 3) for p in softmax([z * 2 for z in logits])])    # multiplicar por 2
Salida
[0.844, 0.114, 0.042]
1.0
[0.844, 0.114, 0.042]
[0.98, 0.018, 0.002]

La última línea es un adelanto de la temperatura, en la sección extra «Por dentro de softmax y sigmoide»: multiplicar los logits no cambia el orden, pero el favorito se ve mucho más seguro.

05

Sigmoide: un sí o un no por etiqueta

Esencial

Sigmoid: a yes or no per label

Softmax sirve cuando hay que repartir el 100 % entre clases que compiten. Hay dos casos donde eso no es lo que quieres: cuando la pregunta es un solo sí o no, y cuando un ejemplo puede tener varias clases a la vez. Para los dos está la sigmoide.

Una sola pregunta

En la clasificación binaria basta un solo logit, que se suele llamar z: positivo si el modelo se inclina por el «sí», negativo si se inclina por el «no». La sigmoide lo convierte en la probabilidad del «sí»:

p = 1 ÷ (1 + e^(−z))

La sigmoide de z = 2La cuenta
e elevado a menos el logit
e^(−2)
0.135
Sumarle 1
1 + 0.135
1.135
Dividir 1 entre eso
1 ÷ 1.135
0.881
Resultado
Probabilidad del «sí»: 88.1 %.

Tres cosas que se ven en la cuenta y en la figura:

  • En z = 0 da exactamente 50 %, porque e⁰ = 1 y 1 ÷ (1 + 1) = 0.5. Un logit de 0 es «no sé».
  • Es simétrica. z = −2 da 1 ÷ (1 + e²) = 1 ÷ 8.39 ≈ 11.9 %, que es justo 100 % − 88.1 %.
  • Nunca llega a 0 ni a 100 %. Con z = 4 ya da 98.2 % y con z = 8, 99.97 %, pero en la cuenta exacta siempre falta un poquito. (En la computadora sí puede salir 1.0: con z = 40, lo que falta es tan chico que Python lo redondea.)
La sigmoide, p = 1 entre 1 más e a la menos z, dibujada para logits z de menos 6 a 6. Es una curva en forma de S que va de casi 0 a casi 100 por ciento. Con z = −2 da 11.9 %, con z = 0 da 50 % y con z = 2 da 88.1 %. Un umbral de 0.5 corta la curva en z = 0: a la izquierda la decisión es «no» y a la derecha «sí». Un umbral de 0.9 la corta en z = 2.2. LA SIGMOIDE p = 1 ÷ (1 + e^(−z)) 0 % 50 % 100 % −6 −4 −2 0 2 4 6 umbral 0.9 → z ≥ 2.2 umbral 0.5 z = −2 → 11.9 % z = 0 → 50 % z = 2 → 88.1 % «no» «sí» LOGIT z · DECISIÓN CON UMBRAL 0.5 El umbral no cambia la curva: solo dónde se corta.
La sigmoide convierte cualquier logit en un número entre 0 y 1. Un umbral de 0.5 corta la curva justo en z = 0; uno de 0.9 pide un logit de al menos 2.2.

La sigmoide da una probabilidad, no una decisión. La decisión la pone un umbral: si p queda arriba, «sí». Con umbral 0.5, decir «sí» es lo mismo que pedir un logit de 0 o más. Con un umbral más exigente, como 0.9, hace falta un logit de al menos 2.2 (de dónde sale ese número está en la sección extra que sigue).

Sigmoide y umbralCalculadora

Un clasificador binario da un solo logit. La sigmoide lo vuelve la probabilidad del «sí», y el umbral decide.

e elevado a −zel paso de en medio0.14
Probabilidad del «sí»1 ÷ (1 + e elevado a −z)88.1 %
Decisión · 1 = «sí», 0 = «no»1
Logit mínimo para decir «sí»ln(umbral ÷ (1 − umbral))0.00

Con umbral 0.5, la decisión es «sí» justo cuando z es 0 o más. Subir el umbral es pedirle al modelo un logit más alto: con 0.9 hace falta 2.2.

Mueve el logit hasta que la decisión cambie. Después sube el umbral y busca otra vez el punto de cambio.

Varias preguntas a la vez

Regresa a C06. El modelo da un logit por política, y cada uno pasa por su propia sigmoide. Las probabilidades no compiten: cada una contesta su propia pregunta, y no tienen por qué sumar 100 %.

Los mismos tres logits de un post, spam 2.0, violencia 1.0 y odio menos 3.0, con softmax y con una sigmoide por política. Con softmax compiten por el 100 %: spam 72.7 %, violencia 26.8 % y odio 0.5 %; la violencia queda debajo de la línea de 50 %. Con una sigmoide por política, cada una se contesta sola: spam 88.1 %, violencia 73.1 % y odio 4.7 %; spam y violencia pasan la línea. Juntas suman 165.9 %, y está bien, porque son tres preguntas distintas. LOS LOGITS DE UN POST spam 2.0 · violencia 1.0 · odio −3.0 SOFTMAX: COMPITEN 50 % spam 72.7 % violencia 26.8 % odio 0.5 % Suman 100 %: si el spam sube, la violencia baja. UNA SIGMOIDE POR POLÍTICA 50 % spam 88.1 % violencia 73.1 % odio 4.7 % Cada una de 0 a 100 %: suman 165.9 %, y está bien.
Los mismos tres logits. Con softmax compiten y suman 100 %; con una sigmoide por política, cada una se contesta sola. La línea marca 50 %: con softmax, la violencia no llega.

La tarea decide cómo termina el modelo

TareaQué saca el modeloQué se le aplicaCómo se decide
Binaria1 logituna sigmoideun umbral
Multiclaseun logit por clasesoftmaxel ganador o las k mejores
Multietiquetaun logit por etiquetauna sigmoide por etiquetaun umbral por etiqueta
Regresiónun númeronada: el número es la respuestalo usa el producto (un pedido, un precio)
Rankingun puntaje por opcióna veces una sigmoideordenar
06

Por dentro de softmax y sigmoide

Extra

Inside softmax and sigmoid

Esta sección es para una segunda pasada. Explica de dónde viene el nombre «logit», por qué softmax y sigmoide son la misma idea, qué hace la temperatura, por qué las librerías no calculan el softmax tal cual y quién lo calcula en C01.

El logit es un momio con logaritmo

En las apuestas se habla de momios (odds): «4 a 1» quiere decir que algo pasa 4 veces por cada vez que no pasa. Una probabilidad se convierte en momio dividiéndola entre su contraria: con p = 0.8, el momio es 0.8 ÷ 0.2 = 4.

El logaritmo natural, ln, deshace lo que hace eˣ: ln 4 es el número al que hay que elevar e para que dé 4, y vale ≈ 1.39 (porque e^1.39 ≈ 4). El logit de una probabilidad es el ln de su momio: ln(p ÷ (1 − p)). Con p = 0.8 da ln 4 ≈ 1.39. Y es la inversa exacta de la sigmoide: la sigmoide de 1.39 da otra vez 0.8. De ahí viene el nombre: un logit es, literalmente, «el logaritmo del momio».

LogitMomio (e^logit)Probabilidad
01 a 150 %
12.72 a 173.1 %
27.39 a 188.1 %
320.1 a 195.3 %

Cada punto de logit multiplica el momio por e ≈ 2.72. Con esta tabla sale el número de la sección anterior: un umbral de 0.9 es un momio de 0.9 ÷ 0.1 = 9, y ln 9 ≈ 2.2. Un umbral de 0.3 es ln(0.3 ÷ 0.7) ≈ −0.85.

Una sigmoide es un softmax de dos

Toma un softmax de dos clases con logits z y 0. La primera recibe eᶻ ÷ (eᶻ + 1). Si divides arriba y abajo entre eᶻ, queda 1 ÷ (1 + e⁻ᶻ): la sigmoide. Con z = 2: 7.39 ÷ (7.39 + 1) = 0.881, igual que en la cuenta de la sigmoide.

En general, un softmax de dos logits a y b le da a la primera clase la sigmoide de a − b: otra vez, solo importa la diferencia. Por eso un clasificador binario puede terminar en 1 logit con sigmoide o en 2 logits con softmax. Es lo mismo escrito de dos formas.

Temperatura: afilar o aplanar

Multiplica los logits de Ana por 2: quedan 6, 2 y 0. Ahora e⁶ ≈ 403.4, e² ≈ 7.39 y e⁰ = 1 suman 411.8, y las probabilidades son 98.0 %, 1.8 % y 0.2 %. El orden no cambió, pero el modelo «se ve» mucho más seguro. Divídelos entre 2 (1.5, 0.5 y 0) y sale 62.9 %, 23.1 % y 14.0 %: mismo orden, menos seguridad.

Dividir los logits entre un número antes del softmax se llama usar una temperatura. Una temperatura mayor que 1 aplana las probabilidades y una menor que 1 las afila. Sirve para dos cosas que vas a ver: corregir un modelo que se cree demasiado (la Ronda lo llama temperature scaling, y no cambia el orden del top-5) y, en los LLMs (los modelos que escriben texto, como ChatGPT), elegir palabras más o menos arriesgadas. La calculadora de softmax tiene una perilla de temperatura para que lo pruebes.

Números que no caben

Una computadora guarda cada número en un espacio fijo, y hay un máximo. En float32 (4 bytes) el número más grande es ≈ 3.4 × 10³⁸, y e⁸⁹ ya se pasa. En los números de Python (8 bytes) el tope es ≈ 1.8 × 10³⁰⁸, y e⁷¹⁰ ya no cabe. Un logit de 1,000 parece exagerado, pero llegar ahí es fácil: con una temperatura de 0.01, un logit de 20 se vuelve 2,000.

La solución usa la primera propiedad del softmax: restarle lo mismo a todos los logits no cambia nada. Las librerías le restan a todos el más alto, así el mayor exponente es e⁰ = 1 y nada se desborda.

python
import math

def softmax_ingenuo(logits):
    exps = [math.exp(z) for z in logits]
    return [e / sum(exps) for e in exps]

def softmax_estable(logits):
    m = max(logits)                              # restar el más alto no cambia el resultado...
    exps = [math.exp(z - m) for z in logits]     # ...y el exponente más grande queda en 0
    total = sum(exps)
    return [e / total for e in exps]

logits = [1000.0, 999.0, 998.0]
try:
    print(softmax_ingenuo(logits))
except OverflowError as error:
    print("ingenuo:", error)
print("estable:", [round(p, 4) for p in softmax_estable(logits)])
Salida
ingenuo: math range error
estable: [0.6652, 0.2447, 0.09]

¿Quién calcula el softmax?

Muchas veces, el propio modelo no. El modelo entrega logits, y el softmax lo aplica el programa que lo rodea. En C01, el servidor de modelos (Triton, en la Ronda) devuelve los 500 logits, de 4 bytes cada uno: 2,000 bytes, unos 2 KB. El programa que está frente a él calcula el softmax, el top-5 y los nombres de categoría en ≈ 1 ms.

¿Por qué no lo hace el modelo? Porque al entrenar, la cuenta que mide qué tan mal le fue, la pérdida (pérdida), ya trae el softmax adentro y trabaja directamente con logits. La ves en «Cómo aprende un modelo». Si además el modelo terminara con un softmax, se aplicaría dos veces, y ese es uno de los errores comunes de esta lección.

07

Probabilidad y confianza: qué significa «94 %»

Esencial

Probability and confidence

Una probabilidad es un número de 0 a 1 (o de 0 % a 100 %) que dice qué tan posible es algo. 0.25 es «una de cada cuatro veces». Las de todas las opciones juntas suman 1, como las que salen del softmax.

La confianza de un modelo es la probabilidad que le da a su respuesta favorita, la del primer lugar. En la Ronda también la vas a ver como score o «score top-1». Cuando la app de Ana dice «Tenis, 94 %», la confianza es 0.94.

Ahora, la pregunta importante: ¿94 % quiere decir que acertó? No. Es lo seguro que dice estar el modelo, calculado con los patrones que vio al entrenar. No es una garantía, por tres razones.

1. Puede estar mal calibrado

Un modelo está bien calibrado cuando sus porcentajes cumplen lo que dicen: de todas las fotos a las que les da alrededor de 94 %, acierta en unas 94 de cada 100. Eso se revisa con datos, y se llama calibración.

En C01 esto importa porque el score se le muestra a Ana y decide si una foto es «dudosa». Por eso el contrato de la API de la Ronda (lo que promete devolverle a la app) dice «scores calibrados», y la evaluación antes de aprobar un modelo nuevo revisa la calibración.

2. Solo reparte entre lo que conoce

Softmax siempre reparte el 100 % entre las 500 categorías. Siempre. Si alguien sube la foto de un pastel en forma de tenis, el modelo no puede decir «esto no es nada de mi lista»: va a repartir el 100 % entre sus 500 categorías, y bien puede darle 90 % a «Calzado › Tenis». Es el caso de «bolsas» del Dojo: antes de que exista esa categoría, la foto de una bolsa recibe su 100 % repartido entre las categorías viejas, y la más parecida puede salir con una confianza alta.

3. El mundo cambia

Cuando llegan fotos distintas a las del entrenamiento (el drift de la lección anterior), el modelo acierta menos, y su confianza no siempre baja al mismo ritmo. Por eso, en el monitoreo de la Ronda, la confianza es una alarma temprana y no una prueba: si de pronto muchas fotos salen con confianza baja, algo cambió; pero que la confianza siga alta no prueba que todo esté bien.

08

Del puntaje a la decisión: argmax, top-k y umbral

Esencial

From scores to decisions: argmax, top-k and threshold

Ya tenemos 500 probabilidades. Falta decidir qué ve Ana. Para eso hay tres herramientas, y ninguna es parte del modelo: las pone el producto.

Argmax: el ganador

El argmax de una lista es la posición de su valor más alto, no el valor. Con los logits 3.0, 1.0 y 0.0 de Tenis, Botas y Sandalias, el máximo es 3.0 y el argmax es la posición de Tenis. Esa posición, traducida a su nombre, es la respuesta top-1 del modelo.

¿Por qué da lo mismo sacarlo de los logits o de las probabilidades? Porque softmax no cambia el orden. eˣ crece cuando x crece, así que el logit más alto da la exponencial más alta, y dividir todas entre la misma suma no cambia cuál es la mayor. Para saber cuál gana no hace falta el softmax; hace falta para saber por cuánto.

python
logits = {"Tenis": 3.0, "Botas": 1.0, "Sandalias": 0.0, "Fútbol": -0.5, "Calcetines": -1.2}

orden = sorted(logits, key=logits.get, reverse=True)   # de mayor a menor logit
print("argmax (top-1):", orden[0])
print("top-3:", orden[:3])
Salida
argmax (top-1): Tenis
top-3: ['Tenis', 'Botas', 'Sandalias']

Top-k: más de una sugerencia

Top-k es quedarte con las k opciones más probables, en orden: es el argmax repetido k veces. Top-1 es la favorita; top-5, las cinco primeras. C01 devuelve el top-5 de sus 500 categorías, cada una con su score. La app las muestra como sugerencias ordenadas: Ana toca una, o busca otra en el selector de categorías.

LugarCategoríaProbabilidad
1Calzado › Tenis0.62
2Calzado › Botas0.14
3Calzado › Sandalias0.08
4Deportes › Fútbol0.05
5Ropa › Calcetines0.03
las otras 495 juntas0.08

Revisa la suma: 0.62 + 0.14 + 0.08 + 0.05 + 0.03 + 0.08 = 1.00.

¿Por qué cinco y no una? Por la diferencia que hace en la práctica. En la Ronda, el modelo de C01 acierta con la primera sugerencia en ≈ 85 de cada 100 fotos, y la correcta está entre las cinco en ≈ 96 de cada 100. Con cinco opciones, Ana casi nunca tiene que buscar a mano. A esas dos medidas se les llama top-1 y top-5 accuracy (top-k accuracy). Como softmax no cambia el orden, el top-5 de los logits y el de las probabilidades son el mismo: el softmax solo hace falta para mostrar el porcentaje y compararlo con un umbral.

Umbral: una línea que pone una persona

Un umbral (threshold) es una línea: si la confianza queda arriba, se hace una cosa; si queda abajo, otra. No lo decide el modelo. Lo elige una persona mirando datos, es una regla del producto y se puede cambiar sin reentrenar nada.

En la Ronda, C01 usa 0.3 como la línea de «baja confianza»: si el top-1 es menor que 0.3, la foto cuenta como dudosa. Con eso pasan dos cosas:

  • La foto se aparta para que una persona le ponga su categoría. Son las fotos que más le pueden enseñar al siguiente modelo.
  • Se cuenta. Si la proporción de fotos dudosas llega al doble de su promedio de los últimos 7 días durante media hora, salta una alerta: algo cambió (un error al preparar las fotos, un tipo de foto nueva, un modelo malo).

Fíjate en lo que esa regla no hace en la Ronda: no cambia lo que ve Ana. Ella recibe sus cinco sugerencias de todos modos. El selector de categorías, donde Ana busca a mano, aparece por otra razón: cuando el modelo no contesta a tiempo (en C01, si no hay respuesta en 300 ms) o falla. Un producto podría usar también un umbral para lo que ve Ana, por ejemplo no marcar ninguna sugerencia cuando el top-1 es muy bajo. Sería otra regla, y también la pondría una persona.

De los logits a lo que ve Ana, y la regla de baja confianza · Lo que pasa en cada foto y lo que decide la regla de baja confianza. Prueba los dos recorridos: cuando el modelo está seguro y cuando duda.
  • Foto · ya preparada
    Está aquí porque el modelo solo entiende números: es la foto de Ana ya convertida en números, del tamaño exacto que espera. Cómo se prepara es la siguiente lección.
  • Modelo · ResNet-50
    Es la única caja que aprendió algo. Hace la inferencia: miles de millones de multiplicaciones y sumas con sus parámetros fijos. Entrega 500 logits, uno por categoría, no una respuesta.
  • Softmax + top-5 · logits → %
    Está aquí porque los logits no se pueden mostrar ni comparar con una línea. Softmax los vuelve 500 probabilidades que suman 1, y el top-k se queda con las 5 más altas, con su nombre de categoría. En C01 lo hace el programa que está frente al modelo, no el modelo.
  • Sugerencias · Ana elige una
    Es lo que el sistema le da a Ana: las cinco categorías en orden, cada una con su score. Ella toca la correcta o, si ninguna es, busca en el selector de categorías.
  • Regla · ¿top-1 < 0.3?
    Un umbral que eligió una persona, no el modelo, y que se puede cambiar sin reentrenar. Está aquí para encontrar las fotos dudosas: en C01, un top-1 menor que 0.3 es «baja confianza». No cambia lo que ve Ana.
  • Etiquetado · una persona revisa
    Está aquí porque las fotos dudosas son las que más le pueden enseñar al modelo: se apartan para que una persona les ponga su etiqueta y entren al siguiente entrenamiento.
  • Alerta · ¿el doble de lo normal?
    Está aquí porque la tasa de fotos dudosas avisa en minutos que algo cambió. En C01 salta si llega al doble de su promedio de 7 días durante 30 minutos: un error al preparar las fotos, un tipo de foto nueva o un modelo malo.
09

Decidir cerca de la línea: empates y umbrales

Extra

Deciding near the line

Esta sección es para una segunda pasada. Explica qué pasa cuando dos categorías quedan casi empatadas y por qué mover un umbral siempre cuesta algo.

Empates y casi empates

El argmax no tiene término medio: gana una sola posición, aunque sea por una centésima.

Si dos logits empatan exacto, las librerías suelen quedarse con la primera posición. Es una regla arbitraria: el modelo no tiene preferencia.

Mover el umbral siempre cuesta algo

Con un clasificador binario se ve más claro. Imagina el modelo de moderación de un marketplace: para cada publicación da la probabilidad de que esté prohibida, y si pasa del umbral, se bloquea.

No hay un umbral gratis. Una buena publicación bloqueada por error es un falso positivo; una prohibida que se escapa es un falso negativo. Subir el umbral cambia unos por otros, y la pregunta de fondo es cuál de los dos errores duele más en tu producto. Eso lleva a dos medidas que ves en «¿Aprendió de verdad?»: la precision (de lo que bloqueaste, qué parte sí era prohibido) y el recall (de lo prohibido, qué parte atrapaste). Con el umbral de 0.35, la precision es 4 de 6 y el recall, 4 de 4.

10

El baseline: el rival que hay que vencer

Esencial

Baselines: the rival to beat

Imagina que alguien presume: «mi modelo de fraude acierta 99.9 % de las veces». Suena increíble. La pregunta correcta es: ¿comparado con qué?

Un baseline (línea base) (línea base) es la solución más simple con la que comparas tu modelo. Si tu modelo no le gana, no aprendió nada que valga la pena, por bonito que se vea su número. La accuracy (la fracción de aciertos) del ejemplo lo muestra:

El «modelo» que siempre dice «no es fraude»La cuenta
Pagos al díaC09, una plataforma de pagos
≈ 10 M
10,000,000
Fraudes≈ 0.08 % de los pagos
0.08 % × 10,000,000
8,000
Aciertos de «aprobar todo»acierta todos los buenos
10,000,000 − 8,000
9,992,000
Accuracy
9,992,000 ÷ 10,000,000
99.92 %
Fraudes atrapados
0 de 8,000
0 %
Resultado
Sin mirar nada, saca 99.92 % de accuracy y no atrapa ni un fraude. Ese 99.92 % es el piso, no un logro.
Una cuadrícula de 1,250 cuadritos, uno por pago. Todos son pagos buenos menos uno, marcado en naranja: el fraude, 0.08 % de los pagos, como en C09. El modelo que aprueba todo sin mirar nada acierta 1,249 de 1,250, un 99.92 % de accuracy, y atrapa 0 de 1 fraudes. Ese 99.92 % es el piso que cualquier modelo tiene que superar. 1,250 PAGOS · 1 ES FRAUDE (0.08 %) el fraude cada cuadrito es un pago «Aprobar todo», sin mirar nada Aciertos 1,249 de 1,250 = 99.92 % Fraudes atrapados 0 de 1 = 0 %
1,250 pagos, uno de ellos fraude (0.08 %, como en C09). «Aprobar todo» acierta 1,249 y deja pasar justo el que importaba.

El «99.9 %» que presumían al principio queda debajo de ese piso: ese modelo acierta menos que no hacer nada. Podría servir de todos modos, si atrapa muchos fraudes a cambio de rechazar a algunos clientes buenos, pero la accuracy sola no lo dice: hay que contar los fraudes atrapados y los clientes rechazados.

Cuatro rivales, de menos a más

  1. No usar ML: lo que se hace hoy. En C01, antes del modelo, Ana elegía la categoría a mano en el selector. Esa es la base contra la que se mide si las sugerencias ayudan; M01 lo escribe así: «Baseline: sin sugerencia». En C14 (supermercados), una hoja de cálculo sugiere pedir lo que se vendió el mismo día de la semana pasada.
  2. El modelo más tonto. Sin mirar la entrada: en clasificación, decir siempre la clase más común; en regresión, decir siempre el promedio. Es lo que tu modelo tiene que superar sí o sí.
  3. Una regla simple. En M01, para avisar que una foto está borrosa, el baseline es una cuenta que mide qué tan marcados son sus bordes, con un umbral: corre en milisegundos en una CPU (el procesador común de la computadora) y no se entrena. Solo si falla en casos concretos (fotos nocturnas, fondos lisos) se entrena una red.
  4. El modelo que ya existe. Cuando ya hay uno en producción, el nuevo se compara contra él con el mismo examen. En la Ronda al que ya está le dicen champion.

Por qué siempre hace falta uno

  • Para saber si aprendió algo. Un número solo no dice nada: 99.92 % parece excelente hasta que ves que no hacer nada da lo mismo.
  • Para saber si vale lo que cuesta. Un modelo pide datos, máquinas, monitoreo y gente. Si una regla de diez líneas logra casi lo mismo, la regla gana.
  • Para tener un plan B. Cuando el modelo falla o no contesta a tiempo, algo tiene que responder, y muchas veces es el baseline. En C01, si no hay respuesta en 300 ms, Ana ve el selector manual. En C09, si el modelo de fraude no contesta, deciden reglas de respaldo. En C14, si la corrida de la noche falla, se publica el pronóstico de ayer.

M01 lo resume en una frase: el baseline es a la vez tu punto de comparación y tu plan de degradación.

11

Errores comunes

Esencial

Common mistakes

  1. Aplicar softmax dos veces. Si el modelo ya devuelve probabilidades y alguien vuelve a aplicar softmax, nada truena, pero los números se aplanan. Con 0.844, 0.114 y 0.042: e^0.844 ≈ 2.326, e^0.114 ≈ 1.121 y e^0.042 ≈ 1.043 suman 4.490, y queda 51.8 %, 25.0 % y 23.2 %. El orden es el mismo, así que nadie lo nota a simple vista; pero el umbral, la alerta y lo que ve Ana se descomponen. Cómo evitarlo: que el contrato diga qué sale del modelo (logits o probabilidades) y revisar en una prueba que el top-1 de una foto clara sea alto.
  2. Leer la confianza como accuracy. «94 %» es lo que el modelo dice, no lo que logra. Cómo evitarlo: medir la calibración con datos etiquetados: de las veces que dijo ≈ 94 %, ¿cuántas acertó?
  3. Comparar logits entre modelos. Un logit solo vale junto a los demás del mismo modelo. Un modelo con logits 5, 4 y 4 da 57.6 % a su favorito; otro con 2, 0 y 0 da 78.7 %. El de logit más bajo está más seguro. Cómo evitarlo: comparar probabilidades calibradas o métricas sobre el mismo examen, nunca logits sueltos.
  4. Usar softmax en un problema multietiqueta. Obliga a las etiquetas a competir, y una esconde a la otra: el post con spam y amenaza que vimos. Cómo evitarlo: si un ejemplo puede tener varias clases a la vez, una sigmoide por etiqueta.
  5. Dejar el umbral en 0.5 porque sí. 0.5 no tiene nada de especial. El umbral sale de lo que cuesta cada error: en C09, para un pago de US$25 conviene rechazar desde ≈ 16 % (la cuenta está en «En la vida real»). Cómo evitarlo: elegirlo con datos y costos, y revisarlo con cada versión del modelo.
  6. Presumir un número sin baseline. 99.92 % de accuracy en fraude es lo que saca «aprobar todo». Cómo evitarlo: antes de entrenar, calcula lo que saca el rival más tonto y lo que se hace hoy, y escríbelo junto a tu número.
  7. Desacomodar la lista de nombres. El modelo dice «posición 137» y la app pega el nombre de otra categoría, sin ningún error. Cómo evitarlo: que los nombres viajen con el modelo y que el servidor revise al arrancar que hay tantos nombres como logits, como hace C01.
12

En la vida real

Extra

In real life

La misma función con perillas aparece en todos los casos de la Ronda. Lo que cambia es qué sale y cómo se decide.

C01: de 150,528 números a cinco sugerencias

La foto de Ana, ya preparada, son 150,528 números. La ResNet-50 los convierte en 500 logits; el programa que está frente al modelo aplica softmax, se queda con el top-5, le pega los nombres y agrega model_version. Todo eso tiene que pasar en p99 ≤ 200 ms del lado del servidor: el 99 % de las respuestas, en menos de 200 ms. Aparte, la regla de 0.3 aparta las fotos dudosas para etiquetarlas y alimenta la alerta. Y si no hay respuesta en 300 ms, el baseline (el selector manual) hace de plan B.

C05, OCR: la salida es una secuencia

En C05, una plataforma de créditos lee facturas, identificaciones y estados de cuenta. El OCR devuelve palabras, cada una con su caja y su confianza. Leer un campo son muchas clasificaciones seguidas, una por carácter, y el campo solo sirve si todas aciertan.

Por eso C05 calibra la confianza por campo, no por letra, y pone un umbral por campo: arriba, el campo pasa solo; abajo, una persona lo revisa con el recorte de la imagen. El éxito se mide con el STP (straight-through processing): qué porcentaje de documentos pasa sin que nadie lo toque.

C06, moderación: una sigmoide y sus umbrales por política

En C06, el modelo da un logit por cada una de las 7 políticas, y cada uno pasa por su sigmoide, como el post de spam y amenaza de la sección de la sigmoide. Después, cada política compara su probabilidad con sus propios umbrales: por ejemplo, uno para mandar a revisión y otro, mucho más alto, para no publicar sin que nadie lo mire.

Un modelo multietiqueta decide qué pasa con un post (C06) · Cómo decide C06 con un modelo multietiqueta. Prueba los tres recorridos; toca cada caja para ver por qué está ahí.
  • Post · texto de quien publica
    Está aquí porque hay que revisarlo antes de que alguien lo vea. En C06 llegan ≈ 30 millones de posts y 150 millones de comentarios al día, y el chequeo tiene un p99 de 150 ms: el 99 % de las veces termina en 150 ms o menos.
  • Modelo · un logit por política
    Un solo modelo de texto, multietiqueta: en una pasada da un logit por cada una de las 7 políticas. Agregar una política es agregarle una salida y reentrenar, no poner otro modelo en el camino.
  • 7 sigmoides · un % por política
    Está aquí porque cada política es su propia pregunta de sí o no. Una sigmoide por política convierte cada logit en una probabilidad de 0 a 1. No compiten ni tienen por qué sumar 100 %: con softmax, una política le quitaría probabilidad a la otra.
  • Decisión · cada política, su umbral
    Compara cada probabilidad con los umbrales de su política. Un post puede quedar marcado por dos políticas a la vez. El modelo da números; quien decide qué hacer es esta regla.
  • Config de política · umbrales con versión
    Los umbrales viven fuera del código, en una configuración con versión: por política, por gravedad y por superficie (post o comentario). Cada versión del modelo trae los suyos, porque cada versión reparte sus scores distinto.
  • Se publica · lo normal
    Casi todo lo que llega no viola nada: en C06, ≈ 0.5 % de lo publicado viola alguna política. Por eso lo que depende del modelo falla abierto: si no contesta a tiempo, el post se publica y se puntúa después.
  • Revisión · una persona decide
    Una persona mira el post. En C06 hay ≈ 600 moderadores para ≈ 216 mil revisiones al día, y esa capacidad es la que fija qué tan bajos pueden ser los umbrales de revisión.
  • No se publica · solo con score muy alto
    Aquí el sistema actúa solo, sin que nadie mire. Por eso su umbral es muy alto y se fija por precision (de lo que bloquea, qué parte de verdad viola): un error castiga a alguien que no hizo nada.

En Python, la sigmoide es una línea. Aquí está con aquel post y una regla distinta por política, como en C06:

python
import math

def sigmoide(z):
    return 1 / (1 + math.exp(-z))

for z in [-4, -2, 0, 2, 4]:
    print(f"z = {z:>2}  ->  p = {sigmoide(z):.3f}")

logits = {"spam": 2.0, "violencia": 1.0, "odio": -3.0}
reglas = {"spam": (0.98, "bloquear"), "violencia": (0.50, "revisar"), "odio": (0.60, "revisar")}
for politica, z in logits.items():
    p = sigmoide(z)
    umbral, accion = reglas[politica]
    print(f"{politica:<10} p = {p:.3f}  umbral {umbral:.2f}  ->  {accion if p >= umbral else 'nada'}")
Salida
z = -4  ->  p = 0.018
z = -2  ->  p = 0.119
z =  0  ->  p = 0.500
z =  2  ->  p = 0.881
z =  4  ->  p = 0.982
spam       p = 0.881  umbral 0.98  ->  nada
violencia  p = 0.731  umbral 0.50  ->  revisar
odio       p = 0.047  umbral 0.60  ->  nada

C08, recomendación: puntajes para ordenar

En C08, cada vez que alguien abre la pantalla de inicio del marketplace se juntan ≈ 1,000 publicaciones candidatas, y un modelo les da dos números a cada una: P(click), la probabilidad de que la toque, y P(contacto | click), la de que contacte al vendedor si la tocó. Se ordenan por un puntaje que combina las dos: P(click) × (P(contacto | click) + 0.05). Es un ranking: lo que importa es el orden.

La Ronda lo dice así: cuando solo ordenas, el valor exacto importa poco; cuando multiplicas dos salidas, cada una tiene que estar calibrada. Y el baseline de C08 es la pantalla de inicio de hoy («recientes en tu ciudad» y lo popular), que también es su plan B.

C09, fraude: binaria con un umbral que sale del dinero

En C09, un modelo da la probabilidad de fraude de cada pago, calibrada. Dejar pasar un fraude cuesta el monto más ≈ US$15 de comisión; rechazar a un cliente bueno, ≈ US$5–10 que fija el negocio (usemos el punto medio, US$7.5). Si solo puedes aprobar o rechazar, conviene rechazar cuando lo que esperas perder al aprobar, p × (monto + 15), supera lo que esperas perder al rechazar, (1 − p) × 7.5. Los dos empatan en p = 7.5 ÷ (monto + 15 + 7.5).

El umbral de un pago de US$25La cuenta
Costo de aprobar un fraudeel monto más la comisión
25 + 15
US$40
Costo de rechazar a un cliente buenoel negocio lo fija entre US$5 y US$10
(5 + 10) ÷ 2
US$7.5
Probabilidad donde los dos costos empatan
7.5 ÷ (40 + 7.5)
0.158
Resultado
Conviene rechazar desde p ≈ 16 %. Con un pago de US$250, el umbral baja a 7.5 ÷ 272.5 ≈ 2.8 %.

El umbral depende del monto, por eso C09 usa umbrales por segmento (tipo de comercio y rango de monto) y no uno solo. El sistema real tiene una tercera opción, pedir una verificación extra con el banco (step-up, por ejemplo un código en el celular), y con ella el rechazo para US$25 solo conviene desde ≈ 44 %. Su baseline son ≈ 400 reglas escritas a mano, que siguen como respaldo.

C14, demanda: regresión con su baseline

En C14, una cadena de ≈ 400 supermercados pronostica cada noche cuánto se va a vender de cada producto en cada tienda, para los siguientes 14 días. La salida son números: un valor central y uno alto, para pedir un poco de más por si se vende más de lo normal (el inventario de seguridad). El baseline es la hoja de siempre, «lo mismo que el mismo día de la semana pasada», y se mide con el WAPE: el error absoluto total ÷ las ventas totales. En los productos que más se venden, la hoja tiene WAPE ≈ 45 %: se desvía 45 unidades por cada 100 vendidas.

El baseline sirve hasta en el monitoreo: cada lunes, C14 compara el modelo contra la hoja en la misma semana. Si los dos empeoraron igual, la semana fue difícil; si solo empeoró el modelo, algo se rompió.

Fuera de la Ronda

  • El filtro de spam de tu correo es una clasificación binaria con umbral; la carpeta de spam es la acción.
  • La galería de tu celular, que encuentra «playa» y «perro» en la misma foto, es multietiqueta.
  • El teclado que sugiere tu siguiente palabra hace un ranking: le da un puntaje a cada palabra posible y te muestra las tres mejores, un top-3.
13

Ejercicios

Esencial

Exercises

Resuélvelos con lápiz (y una calculadora con la tecla eˣ) antes de abrir la solución.

  1. 1Fácil

    Un modelo lineal de precios tiene w = −250 y b = 2,000. ¿Qué precio sugiere para unos tenis de 3 años? ¿Con cuántos años llega a 0?

    Ver la solución paso a paso

    Con 3 años: −250 × 3 + 2,000 = −750 + 2,000 = 1,250 pesos.

    Llega a 0 cuando −250 × años + 2,000 = 0, o sea años = 2,000 ÷ 250 = 8. Después de 8 años predice precios negativos: el modelo no sabe que eso no tiene sentido.

  2. 2Fácil

    Calcula el softmax de los logits 2, 0 y 0.

    Ver la solución paso a paso

    e² ≈ 7.39 y e⁰ = 1 (dos veces). La suma es 7.39 + 1 + 1 = 9.39.

    Quedan 7.39 ÷ 9.39 ≈ 78.7 % y 1 ÷ 9.39 ≈ 10.7 % para cada una de las otras dos. Revisa: 78.7 + 10.7 + 10.7 = 100.1, que es 100 con el redondeo.

  3. 3Fácil

    ¿Qué tarea es cada una, y con qué termina el modelo? (a) ¿Este correo es spam? (b) La categoría de C01, de 500. (c) Las etiquetas de una foto de vacaciones: playa, perro, atardecer. (d) Cuántos minutos tarda un envío.

    Ver la solución paso a paso

    (a) Binaria: un logit y una sigmoide. (b) Multiclase: 500 logits y softmax. (c) Multietiqueta: un logit por etiqueta y una sigmoide para cada una, porque una foto puede tener las tres. (d) Regresión: un número, sin nada al final.

  4. 4Fácil

    Un clasificador binario da el logit z = −1. ¿Qué probabilidad da la sigmoide? Con umbral 0.5, ¿dice «sí»?

    Ver la solución paso a paso

    e^(−(−1)) = e¹ ≈ 2.72. Entonces p = 1 ÷ (1 + 2.72) = 1 ÷ 3.72 ≈ 26.9 %.

    Es menor que 0.5, así que dice no. Atajo: con umbral 0.5 basta ver el signo del logit; negativo es «no».

  5. 5Medio

    Un modelo de 5 categorías da los logits 1.2, 3.4, −0.5, 3.1 y 0.0. ¿Cuál es el argmax y cuál el top-2? ¿Cambian si aplicas softmax? ¿Y si les sumas 7 a todos?

    Ver la solución paso a paso

    El argmax es la segunda categoría (logit 3.4). El top-2 son la segunda y la cuarta (3.4 y 3.1).

    No cambian con softmax, porque softmax no cambia el orden. Tampoco sumando 7: el orden sigue igual, y además las probabilidades salen idénticas.

    Un detalle: la diferencia entre el primero y el segundo es 0.3, así que el primero es solo e^0.3 ≈ 1.35 veces más probable. Es una foto en la que el modelo duda.

  6. 6Medio

    Un post da los logits spam 1.5, violencia 0.5 y odio −2.0. Calcula sus probabilidades con una sigmoide por política y con softmax. Con un umbral de revisión de 0.5 en cada política, ¿qué se revisa en cada caso?

    Ver la solución paso a paso

    Sigmoides. Spam: 1 ÷ (1 + e^(−1.5)) = 1 ÷ (1 + 0.223) ≈ 81.8 %. Violencia: 1 ÷ (1 + 0.607) ≈ 62.2 %. Odio: 1 ÷ (1 + 7.39) ≈ 11.9 %. Se revisan spam y violencia.

    Softmax. e^1.5 ≈ 4.48, e^0.5 ≈ 1.65 y e^(−2) ≈ 0.14 suman 6.27. Quedan spam 71.5 %, violencia 26.3 % y odio 2.2 %. Solo se revisa spam: la violencia se escondió. Por eso la multietiqueta va con sigmoides.

  7. 7Medio

    En un sistema de moderación, 0.5 % de los posts viola alguna política. Un modelo saca 99.6 % de accuracy: de 100,000 posts, atrapa 300 de los que violan y marca por error 200 buenos. Revisa que eso da 99.6 % y di qué te dice de verdad.

    Ver la solución paso a paso

    De 100,000 posts, violan 0.5 % = 500.

    Baseline «nada viola»: acierta los 99,500 buenos, 99.5 %.

    Modelo: se equivoca en 200 que violan y se escaparon (500 − 300) y en 200 buenos marcados. Son 400 errores, así que acierta 99,600: 99.6 %. Apenas 0.1 puntos mejor que no hacer nada.

    Lo que importa: de los 500 que violan, atrapó 300 (60 %); y de los 500 que marcó (300 + 200), 300 eran de verdad (60 %). Esas dos medidas son el recall y la precision, y las ves en «¿Aprendió de verdad?».

  8. 8Medio

    Una tienda vendió esta semana, de lunes a domingo, 10, 8, 12, 9, 15, 22 y 18 litros de leche. El baseline («lo del mismo día de la semana pasada») había dicho 5, 12, 8, 15, 9, 14 y 26. Un modelo dijo 8, 10, 10, 11, 12, 19 y 21. Calcula el WAPE de cada uno (error absoluto total ÷ ventas totales).

    Ver la solución paso a paso

    Ventas totales: 10 + 8 + 12 + 9 + 15 + 22 + 18 = 94.

    Baseline. Errores: 5, 4, 4, 6, 6, 8 y 8, que suman 41. WAPE = 41 ÷ 94 ≈ 43.6 %.

    Modelo. Errores: 2, 2, 2, 2, 3, 3 y 3, que suman 17. WAPE = 17 ÷ 94 ≈ 18.1 %.

    El modelo le gana al baseline en esta semana. Una semana no prueba nada: C14 lo compara en muchas semanas y tiendas, y la hoja real tiene WAPE ≈ 45 %.

  9. 9Reto

    Un pago de US$100 tiene probabilidad de fraude calibrada p = 0.08. Aprobar un fraude cuesta el monto más US$15; rechazar a un cliente bueno, US$7.5. Solo puedes aprobar o rechazar. ¿Qué conviene? ¿Desde qué p conviene rechazar?

    Ver la solución paso a paso
    Aprobar o rechazar un pago de US$100La cuenta
    Perder si apruebasprobabilidad de fraude × lo que cuesta
    0.08 × (100 + 15)
    US$9.20
    Perder si rechazasprobabilidad de que sea bueno × US$7.5
    0.92 × 7.5
    US$6.90
    Umbral
    7.5 ÷ (115 + 7.5)
    0.061
    Resultado
    Conviene rechazar: cuesta menos en promedio. El umbral para US$100 es p ≈ 6.1 %.

    Fíjate en dos cosas. El umbral depende del monto (para US$25 era 16 %). Y todo esto funciona solo si p está calibrada: si el modelo dice 0.08 pero en realidad es 0.02, estás rechazando clientes buenos.

  10. 10Reto

    Alguien agrega por error un softmax extra al final del modelo de C01, que ya devolvía probabilidades. El top-1 de una foto era 0.9 y las otras 499 categorías se repartían el 0.1 restante. ¿Qué top-1 sale ahora? ¿Qué le pasa a la regla de baja confianza (top-1 menor que 0.3) y a su alerta?

    Ver la solución paso a paso

    El segundo softmax eleva e a cada probabilidad. El top-1 da e^0.9 ≈ 2.46. En promedio, cada una de las otras 499 vale ≈ 0.0002, y e^0.0002 ≈ 1.0002, así que entre todas suman ≈ 499.1. El total es ≈ 501.6.

    Top-1 nuevo: 2.46 ÷ 501.6 ≈ 0.0049, menos de 0.5 %. Ni una foto perfecta se salva: con 1.0, sale e¹ ÷ (e¹ + 499) ≈ 0.54 %.

    Así que todas las fotos quedan debajo de 0.3. La tasa de baja confianza salta a 100 %, la alerta (el doble de su promedio de 7 días durante 30 minutos) se dispara y la cola de etiquetado se inunda. Ana ve las mismas cinco sugerencias en el mismo orden, pero con porcentajes de 0.5 % para abajo. Nada truena, y por eso este error es peligroso.

14

Lo que sigue

Esencial

What comes next

  • En la Ronda, M01 · El mapa y la entrevista: al plantear el problema se dice qué tarea es, qué error duele más (eso fija el umbral) y cuál es el baseline. Para C01, la medida principal sin usuarios es la top-5 accuracy.
  • M07 · Servidores de modelos: Triton devuelve 500 logits; el programa de enfrente hace softmax, top-5 y los nombres, y agrega model_version. Los nombres viajan con el modelo y se revisan al arrancar.
  • M08 · Optimización de modelos: al convertir el modelo a FP16, los logits cambian del orden de 0.01 y el argmax se puede mover en las fotos casi empatadas. Por eso se exige que el top-1 coincida en al menos 99.5 % de las fotos de prueba.
  • M12 · Monitoreo: la distribución del score top-1 y la tasa de baja confianza son alarmas que llegan en minutos, mucho antes que las etiquetas. Su trampa favorita: «la confianza no es accuracy».
  • C06 y C09 usan esta lección de punta a punta: un score por política con umbrales por política, y un umbral que sale del dinero.
  • En el Dojo, la estación 6, «Código de serving» (todavía no está lista), hace la cadena de esta lección: logits, softmax, top-5 y nombres.
  • Las siguientes lecciones: «Una foto, vista por un modelo» explica cómo se arman los 150,528 números que entran; «Cómo aprende un modelo», cómo el entrenamiento gira las perillas; «¿Aprendió de verdad?», cómo se mide un modelo contra su baseline; y «Redes neuronales y CNNs», qué hay entre la entrada y los logits.
15

Palabras que vas a oír

Esencial

Words you will hear

Estos son los conceptos que presentó esta lección.

FunciónfunctionUna regla que a cada entrada le asigna exactamente una salida. Un modelo es una función: entran números (una foto, una tabla) y salen números.Más

La de la escuela, f(x) = 2x + 1, da 7 si entra 3, y lo vuelve a dar cada vez que entra 3. Un modelo es una función enorme: su forma la elige una persona (la arquitectura) y sus números internos, los parámetros, los ajusta el entrenamiento. Con los parámetros fijos, la misma entrada da la misma salida.

Ejemplo. precio = −300 × años + 1,500 es una función de una entrada: con 2 años da 900 pesos. La ResNet-50 de C01 es una función de 150,528 números a 500.

Ver en el glosario →

TareataskEl tipo de pregunta que le haces a un modelo: elegir una categoría, dar un número, ordenar una lista, encontrar objetos… Decide qué sale del modelo y cómo se mide si acertó.Más

Se decide antes de elegir el modelo, a partir del problema del negocio. Las más comunes: clasificación (binaria, multiclase o multietiqueta), regresión, ranking, detección de objetos, segmentación y ocr. La tarea también decide cómo termina el modelo: una sigmoide, un softmax o nada. Un sistema real a veces combina varias.

Ejemplo. «Sugerir la categoría de una foto» es una tarea de clasificación multiclase. «Sugerir el precio» sería una regresión.

Ver en el glosario →

ClasificaciónclassificationLa tarea de elegir de una lista fija de clases. Puede ser binaria (sí o no), multiclase (una de muchas) o multietiqueta (varias a la vez).Más

El modelo da un puntaje (logit) por clase. En la multiclase, softmax los vuelve probabilidades que suman 1 y gana la más alta (argmax); en la clasificación binaria y la multietiqueta, cada logit pasa por una sigmoide y un umbral decide. Las clases se fijan al entrenar: el modelo no puede elegir una que no estaba en su lista.

Ejemplo. Un filtro de spam (2 clases), la categoría de una foto en C01 (500 clases) o las 7 políticas de moderación de C06 (multietiqueta).

Ver en el glosario →

Clasificación binariabinary classificationClasificación con solo dos clases: sí o no. ¿Este pago es fraude? ¿Este correo es spam?Más

Casi siempre el modelo da un solo logit, la sigmoide lo vuelve la probabilidad del «sí» y un umbral decide. A la clase que buscas (fraude, spam) se le dice positiva; a la otra, negativa. Suele haber desbalance de clases: en C09 el fraude es ≈ 0.08 % de los pagos, así que decir siempre «no» ya acierta 99.92 %.

Ejemplo. Logit 2 → sigmoide 0.881 → con umbral 0.5, «sí, es spam».

Ver en el glosario →

MulticlasemulticlassClasificación con más de dos clases en la que cada ejemplo tiene exactamente una respuesta correcta.Más

Se usa softmax, que obliga a repartir el 100 % entre las clases, y la respuesta es la de logit más alto (argmax) o las k mejores (top-k). Es distinta de la multietiqueta, donde un ejemplo puede tener varias respuestas correctas a la vez.

Ejemplo. C01: cada publicación va en una sola de 500 categorías.

Ver en el glosario →

Multietiquetamulti-label classificationClasificación en la que un ejemplo puede tener varias clases a la vez, o ninguna. Cada clase recibe su propio sí o no.Más

Se usa una sigmoide por etiqueta, no softmax: las probabilidades no compiten ni tienen por qué sumar 1. Cada etiqueta lleva su propio umbral. Con softmax, una etiqueta le quitaría probabilidad a la otra y la escondería.

Ejemplo. En C06 (moderación), el modelo da un score por cada una de 7 políticas. Un post con logits spam 2.0 y violencia 1.0 sale con 88.1 % y 73.1 % (con softmax habría sido 72.7 % y 26.8 %).

Ver en el glosario →

RegresiónregressionLa tarea de predecir un número en una escala continua: un precio, un tiempo, una cantidad.Más

El nombre es histórico y no ayuda: no significa «regresar». Lo que importa es que la salida es un número y que el error se mide por qué tan lejos quedó, no por si acertó o no. Su baseline (línea base) más común es decir siempre el promedio, o lo mismo que la vez anterior.

Ejemplo. Sugerir el precio de unos tenis usados, o pronosticar cuántos litros de leche se van a vender mañana en una tienda (C14).

Ver en el glosario →

RankingrankingLa tarea de ordenar una lista de opciones de la más a la menos relevante. Importa el orden, no el puntaje exacto.Más

Se usa en búsqueda, recomendaciones y anuncios. Muchas veces el modelo es un clasificador que estima una probabilidad (por ejemplo, de que alguien haga clic) y la lista se ordena por esa probabilidad. Si el puntaje combina dos probabilidades, las dos tienen que estar calibradas.

Ejemplo. En C08, unas 1,000 publicaciones candidatas se ordenan por P(click) × (P(contacto | click) + 0.05).

Ver en el glosario →

Detección de objetosobject detectionLa tarea de encontrar cada objeto en una imagen: por cada uno, una caja (dónde está), una clase (qué es) y una confianza.Más

Una caja son cuatro números: por ejemplo, las dos coordenadas de la esquina de arriba a la izquierda, el ancho y el alto, en píxeles. A diferencia de la clasificación, una foto puede dar cero, una o muchas cajas.

Ejemplo. Marcar cada casco y cada chaleco de seguridad en el video de una planta.

Ver en el glosario →

SegmentaciónsegmentationLa tarea de ponerle una clase a cada píxel de una imagen. El resultado es una máscara: una imagen del mismo tamaño donde cada píxel dice qué es.Más

Es más fina que la detección de objetos: no dice «aquí hay un tenis, más o menos en esta caja», sino exactamente qué píxeles son tenis y cuáles son fondo.

Ejemplo. Quitar el fondo de una foto de producto, o marcar qué píxeles de una tomografía son un tumor.

Ver en el glosario →

OCRoptical character recognitionReconocimiento óptico de caracteres: leer el texto que aparece en una imagen y devolverlo como texto que la computadora puede usar.Más

Casi siempre son dos pasos: detectar dónde hay texto y luego reconocer qué dice. La salida es una secuencia de caracteres, y un campo solo está bien si todos lo están: por eso la confianza se calibra por campo. Se usa para leer documentos, tickets, placas o etiquetas.

Ejemplo. Leer «TALLA 27» en la foto de la etiqueta de un tenis, o los 18 dígitos de una CLABE en un estado de cuenta (C05).

Ver en el glosario →

LogitlogitEl puntaje crudo que da un modelo de clasificación por cada clase, antes de convertirlo en probabilidad. Puede ser cualquier número, positivo o negativo.Más

Más alto significa que el modelo se inclina más por esa clase, pero un logit solo no dice mucho: importa comparado con los de las otras clases del mismo modelo. softmax o la sigmoide lo convierten en probabilidad. El nombre viene de la estadística: el logit de una probabilidad p es ln(p ÷ (1 − p)), el logaritmo de su momio, y es la inversa exacta de la sigmoide.

Ejemplo. Tres clases con logits 3.0, 1.0 y 0.0. En C01 el modelo devuelve 500 logits, uno por categoría. En un clasificador binario, con su sigmoide, un logit de 1.39 equivale a 80 %.

Ver en el glosario →

SoftmaxsoftmaxLa cuenta que convierte los puntajes crudos de un modelo (sus logits) en probabilidades: eleva e ≈ 2.718 a cada puntaje, suma todo y divide cada uno entre la suma. Quedan números entre 0 y 1 que suman 1.Más

Conserva el orden (el logit más alto queda con la probabilidad más alta, así que el argmax no cambia) y solo depende de las diferencias entre logits: sumarles a todos el mismo número no cambia nada. Como la exponencial exagera las diferencias, cada punto de diferencia multiplica por e ≈ 2.72. Se usa en la multiclase; en la multietiqueta se usa una sigmoide por etiqueta.

Ejemplo. Logits 3, 1 y 0 → e³ = 20.09, e¹ = 2.72, e⁰ = 1.00; suman 23.81; quedan 84.4 %, 11.4 % y 4.2 %.

Ver en el glosario →

SigmoidesigmoidLa función que convierte un solo número cualquiera (un logit) en una probabilidad entre 0 y 1: p = 1 ÷ (1 + e^(−z)). Tiene forma de S.Más

En 0 da 0.5; con logits grandes se acerca a 1 y con negativos a 0, sin llegar nunca. Se usa en la clasificación binaria y, una por cada etiqueta, en la multietiqueta. Es la inversa del logit: si p = sigmoide(z), entonces z = ln(p ÷ (1 − p)). Un softmax de dos clases es una sigmoide de la diferencia de sus logits.

Ejemplo. z = 2: e^(−2) ≈ 0.135; 1 ÷ 1.135 ≈ 0.881. z = −2 da 0.119, y z = 0 da 0.5.

Ver en el glosario →

ProbabilidadprobabilityUn número de 0 a 1 (o de 0 % a 100 %) que dice qué tan posible es algo. 0.25 es una de cada cuatro veces.Más

Las probabilidades de todas las opciones posibles suman 1. En un clasificador, las que salen de softmax o de la sigmoide son la estimación del modelo, no una verdad medida: qué tan buenas son se revisa con datos.

Ejemplo. Si de 1,000 fotos a las que el modelo les dio 0.9, aciertan 900, sus probabilidades de 0.9 están bien calibradas.

Ver en el glosario →

Confianzaconfidence scoreLa probabilidad que un modelo le da a su opción favorita, la del primer lugar. Es lo seguro que dice estar, no una garantía de que acierte.Más

En la Ronda también se le dice score o score top-1. Un modelo puede estar muy seguro y equivocado, sobre todo ante fotos distintas a las de su entrenamiento: softmax siempre reparte el 100 % entre las clases que conoce. Si está bien calibrado, de cada 100 respuestas con 94 % acierta unas 94. Ojo: en estadística, «intervalo de confianza» es otra cosa.

Ejemplo. «Tenis, 94 %»: la confianza es 0.94. En C01 se llama baja confianza a un top-1 menor que 0.3.

Ver en el glosario →

ArgmaxargmaxLa posición del valor más alto de una lista, no el valor. En un clasificador, la posición del logit más alto es la respuesta top-1.Más

Como softmax no cambia el orden, da lo mismo sacarlo de los logits o de las probabilidades: para saber cuál gana no hace falta softmax. Si dos valores empatan exacto, las librerías suelen devolver la primera posición. En las fotos casi empatadas, un cambio diminuto en los logits mueve el argmax: por eso C01 exige que el top-1 coincida en al menos 99.5 % de las fotos al cambiar de formato. El argmax repetido k veces es el top-k.

Ejemplo. Logits 3.0, 1.0 y 0.0 de Tenis, Botas y Sandalias: el máximo es 3.0 y el argmax es la posición de Tenis.

Ver en el glosario →

Top-ktop-kQuedarse con las k opciones de probabilidad más alta, en orden. Top-1 es la favorita; top-5, las cinco mejores.Más

Sirve para mostrar varias sugerencias en vez de una sola. Es el argmax repetido k veces. El orden de las probabilidades es el mismo que el de los logits, así que el top-k se puede sacar de cualquiera de los dos.

Ejemplo. C01 devuelve el top-5 de 500 categorías: en ≈ 85 de cada 100 fotos acierta la primera y en ≈ 96 la correcta está entre las cinco.

Ver en el glosario →

UmbralthresholdUna línea que pone una persona para convertir una probabilidad en una decisión: arriba del umbral se hace una cosa y abajo, otra.Más

No es parte del modelo: es una regla del producto, se elige con datos y se puede cambiar sin reentrenar. Moverlo cambia qué errores se cometen: subirlo da menos falsas alarmas, pero deja pasar más casos. 0.5 no tiene nada de especial: el umbral sale de lo que cuesta cada error. Al cambiar de modelo hay que revisarlo, porque cada versión reparte su confianza distinto.

Ejemplo. En C01, si la probabilidad del primer lugar es menor que 0.3, la foto cuenta como de baja confianza: se aparta para que una persona la etiquete, y se cuenta para una alerta. En C09, un pago de US$25 conviene rechazarlo desde una probabilidad de fraude de ≈ 16 %.

Ver en el glosario →

Baseline (línea base)baselineLa solución más simple con la que comparas un modelo: lo que se hace hoy, una regla sencilla o el modelo más tonto (siempre la clase más común). Si tu modelo no le gana, no sirve.Más

Sirve para tres cosas: saber si el modelo aprendió algo, decidir si vale la pena lo que cuesta y tener un plan B cuando el modelo falla o no contesta a tiempo. En monitoreo, «línea base» también se usa para el nivel normal de una métrica, como la tasa de baja confianza de los últimos 7 días en C01.

Ejemplo. En C09 el fraude es ≈ 0.08 % de los pagos: «aprobar todo» saca 99.92 % de accuracy y no atrapa ni un fraude. En C14, el baseline es «lo que se vendió el mismo día de la semana pasada», con WAPE ≈ 45 % en los productos que más se venden.

Ver en el glosario →

16

Chequeo

Esencial

Check

Intenta responder en tu cabeza antes de abrir cada respuesta.

  1. 1Un modelo da los logits 2, 2 y 0 para Tenis, Botas y Sandalias. ¿Qué probabilidades salen?Ver respuesta

    e² ≈ 7.39 dos veces y e⁰ = 1: suman 15.78. Quedan 7.39 ÷ 15.78 ≈ 46.8 % para Tenis, 46.8 % para Botas y 1 ÷ 15.78 ≈ 6.3 % para Sandalias. El modelo está empatado entre dos. Aunque el top-1 pase de 0.3, la diferencia entre el primero y el segundo es cero: en la Ronda, una foto con ese margen tan chico también se aparta para que una persona la etiquete.

  2. 2¿Por qué el modelo de moderación de C06 usa una sigmoide por política y no softmax?Ver respuesta

    Porque un post puede violar varias políticas a la vez. Softmax las haría competir por el 100 %, y una escondería a la otra: con logits 2 y 1, la violencia quedaría en 26.8 % con softmax y en 73.1 % con su sigmoide.

  3. 3El modelo dice «Tenis, 94 %». ¿Quiere decir que acertó?Ver respuesta

    No. Es su confianza, no una garantía. Si está bien calibrado, de cada 100 fotos con 94 % se equivoca en unas 6. Además, siempre reparte el 100 % entre las categorías que conoce, aunque la foto no sea de ninguna, y con fotos distintas a las del entrenamiento puede estar muy seguro y equivocado.

  4. 4¿Por qué el argmax de los logits es el mismo que el de las probabilidades?Ver respuesta

    Porque softmax no cambia el orden: eˣ crece con x, y dividir todo entre la misma suma no cambia cuál es el mayor. Softmax hace falta para saber por cuánto gana el primero, no cuál gana.

  5. 5Un detector de fraude saca 99.9 % de accuracy. ¿Qué preguntas primero?Ver respuesta

    Cuánto saca el baseline. Si el fraude es ≈ 0.08 % de los pagos, como en C09, «aprobar todo» saca 99.92 % sin atrapar ninguno: el 99.9 % acierta menos que no hacer nada, y aun así podría servir. Hay que ver cuántos fraudes atrapa y a cuántos clientes buenos rechaza.

  6. 6En C01 subes el umbral de baja confianza de 0.3 a 0.6. ¿Qué cambia?Ver respuesta

    Más fotos cuentan como dudosas. Llegan más a la cola de etiquetado, que cuesta dinero porque las revisa una persona, y la tasa de baja confianza sube de golpe: la alerta que la compara con su promedio de 7 días puede saltar sin que nada se haya roto, así que también hay que ajustarla. Ana ve lo mismo: en la Ronda, la regla no cambia sus sugerencias. El modelo es el mismo: solo cambió la regla.

Sigue · 02Una foto, vista por un modeloLo básico de ML Léelo en la RondaM01 · El mapa y la entrevistaLo que acabas de leer, con el ojo del entrevistador. ← 00 · El camino completo