Setup. Caso del deck: clasificar 10 categorías del catálogo de Inditex. La curva dorada es accuracy con backbone ResNet-50 preentrenado en ImageNet (1,3 millones de imágenes ya pagadas por otros); la curva tinta es la misma arquitectura entrenada desde cero solo con tus fotos. Ambas son leyes de potencia acc(n) = a∞(1−A·n−α) con parámetros realistas: preentrenada (a∞ = 0,95, A = 0,9, α = 0,45), desde cero (a∞ = 0,93, A = 2,2, α = 0,38). La línea horizontal punteada de abajo es el nivel azar (10 %).
Juega. Mueve n y mira la distancia vertical entre curvas: es máxima entre 100 y 5 000 etiquetas, el rango donde de verdad operan los proyectos de empresa. Después fija un objetivo de accuracy: el lector invierte la ley de potencia, n = (A/(1−t/a∞))1/α, y te dice cuántas etiquetas necesita cada estrategia y cuántas te ahorra el transfer.
Lee así. A 3 minutos por foto etiquetada, cada 1 000 etiquetas son unas 50 horas-persona. El "ahorro de etiquetas" del lector se traduce directamente en semanas de trabajo y miles de euros que no gastas.
Mensaje. Transfer learning no es una técnica exótica: es la diferencia entre un proyecto de visión viable con 200 fotos (Repsol y sus grietas) y uno que exige 50 000. Por eso el Día 05 empieza aquí.
Términos. Backbone: tronco convolucional que extrae rasgos. Preentrenar: entrenar primero en un dataset enorme ajeno. Ley de potencia: mejora proporcional a n−α; cada etiqueta nueva rinde menos que la anterior. θ0: pesos preentrenados que descargas del Hub.
Setup. Modelo de juguete exacto del transfer gap. Las dos nubes son las dos clases de tu problema vistas en el espacio de rasgos del backbone congelado (2D para poder dibujarlo): centros en ±r·u(φ) con r = 1,5 y ruido gaussiano σ(φ). La línea tinta es la frontera que traes de fábrica (la óptima del dominio fuente, vertical); la dorada es la que aprende una cabeza nueva con tus n etiquetas por clase: el clasificador de medias μ̂B−μ̂A, calculado de verdad sobre la muestra que ves. Las accuracies del lector son exactas (Φ del margen proyectado), no conteos.
Juega. φ pequeño = dominio parecido a ImageNet (retail, fotos de calle); φ grande = dominio lejano (satélite Iberdrola, radiografías). Observa que el orden de las tres cifras del lector es siempre origen ≥ cabeza nueva ≥ congelado, y que las dos brechas miden cosas distintas: orientación (recuperable barato) y calidad de rasgos (cara).
Lee así. El "techo con backbone congelado" del panel inferior es la cifra que debes mirar antes de decidir régimen: si está por debajo del objetivo de negocio, no hay cabeza que te salve y toca descongelar.
Mensaje. El eje "similitud con ImageNet" del gráfico de decisión del deck no es una metáfora: es d(Dsrc, Dtgt) actuando sobre tu accuracy a través de cosφ y σ(φ).
Términos. Espacio de rasgos: salida del backbone (2048 números por imagen en ResNet-50). Frontera de decisión: hiperplano que separa clases en ese espacio. Φ: CDF de la normal estándar. Zero-shot / congelado: usar el modelo tal cual, sin entrenar nada.
Setup. El gráfico de decisión del deck, hecho calculadora. Eje x: etiquetas disponibles (escala log, de 100 a 500 000). Eje y: similitud de tu dominio con ImageNet (la φ de la slide anterior, normalizada al revés). Cada color es el régimen recomendado: pálido = L1 feature extraction, dorado medio = L2 parcial, dorado oscuro = L3 total. La regla implementada: lo asumible por datos (n < 10³ ⇒ L1; < 10⁴ ⇒ L2; si no L3), lo necesario por dominio (s ≥ 0,66 ⇒ L1; ≥ 0,33 ⇒ L2; si no L3), y recomendación = mínimo de ambos, con aviso si necesitas más de lo que tus datos soportan (rayado gris).
Juega. Los cuatro rombos del mapa son los casos del Tema 2: Repsol (200; 0,85), BBVA OCR (1 500; 0,35), Mercadona (12 000; 0,50) e Iberdrola satélite (50 000; 0,15). Coloca tu punto encima de cada uno y comprueba que la calculadora reproduce la decisión del deck.
Lee así. El lector traduce el régimen a números operativos: parámetros entrenables (20 490 / ≈9,5 M / ≈23,5 M) y los learning rates de partida que usarás en la receta.
Mensaje. Elegir régimen no es gusto del data scientist: es leer dos coordenadas de tu proyecto (cuántas etiquetas, cuán raro es tu dominio) en un mapa que sale de la cota de la slide 1.
Términos. L1 / feature extraction: backbone congelado, solo cabeza. L2 / parcial: se descongelan los últimos bloques con LR pequeño. L3 / total: todo entrenable. Sobreajuste: memorizar el train y fallar en test; llega cuando parámetros ≫ etiquetas.
Setup. La barra superior es un ResNet-50 real por bloques: stem (9,5 K parámetros), Conv2 (216 K), Conv3 (1,2 M), Conv4 (7,1 M), Conv5 (15,0 M) y la cabeza nueva de 10 clases (20 490). El ancho de cada caja es proporcional al log de sus parámetros; los bloques helados (❄) están congelados (requires_grad = False), los dorados entrenan. El slider congela desde la entrada, que es como se hace en la práctica: lo universal está abajo.
Juega. El panel inferior pinta, para cada nivel de congelado, los parámetros entrenables por ejemplo (escala log) con la frontera de riesgo en 300: por debajo, una cabeza regularizada generaliza; por encima, el modelo puede memorizar tu train. El tiempo por época usa tbatch = 0,085 s · (1+2fbwd) en una GPU T4 con batch 32, con la fracción fbwd calculada sobre los GFLOPs reales de cada bloque (0,12 / 0,68 / 1,0 / 1,45 / 0,81 / 0,004).
Lee así. Parámetros por ejemplo es la métrica honesta de riesgo: 25,6 con todo congelado y n = 800, 27 600 si descongelas hasta Conv4. La regla del deck (<1 000 fotos ⇒ feature extraction) sale sola de este cociente.
Mensaje. Congelar es la palanca que convierte un modelo de 23,5 millones de parámetros en un problema de 20 490: tres órdenes de magnitud que separan "necesito un cluster" de "me vale el portátil del aula".
Términos. Congelar: excluir parámetros del gradiente. requires_grad: flag de PyTorch que lo implementa. GFLOPs: miles de millones de operaciones por imagen. Batch: grupo de imágenes que se procesa de una vez (aquí 32).
Setup. Descenso por gradiente DE VERDAD (cada punto de las trayectorias es un paso w ← w − η∇L calculado en vivo) sobre un valle cuadrático con curvaturas λ = (4, 0,5) girado 30°: el modelo mínimo de un fine-tuning. El fondo del valle (aspa dorada) es el óptimo de TU tarea; el punto tinta θ0 son los pesos preentrenados, que caen cerca porque la tarea fuente se parece; el arranque gris es una inicialización aleatoria, lejos. El mapa de calor es la pérdida (claro = bajo).
Juega. El slider de η barre de 0,005 a 1,2 en escala log; el precipicio teórico está en 2/λmax = 0,5 y lo verás exactamente ahí. El panel inferior muestra L(wt) en escala log para ambos arranques; el lector añade el olvido ‖wT−θ0‖ comparado con la distancia natural ‖w*−θ0‖ = 1,17 que sí hay que recorrer.
Lee así. Badge verde: convergencia con olvido acotado (η bajo el límite y ‖w−θ0‖ del orden de la distancia al óptimo). Badge rojo: o diverges o has acabado mucho más lejos de θ0 de lo necesario.
Mensaje. El catastrophic forgetting no es una metáfora poética: es ‖w−θ0‖ creciendo porque tu η supera lo que la curvatura local admite. La receta del deck (lr = 2e-5, scheduler coseno) existe para que nunca te acerques al precipicio.
Términos. ∇L: gradiente, dirección de máximo crecimiento de la pérdida. λmax: curvatura máxima del valle (autovalor mayor del Hessiano). Scheduler coseno: bajar η gradualmente durante el entrenamiento. w*: óptimo de la tarea objetivo.
Setup. Una red de L = 12 capas (un ViT-base, el backbone del caso Repsol-marcas del deck). El panel superior pinta el perfil ηℓ = η0·rL−ℓ en escala log: una recta descendente de la cabeza hacia la entrada, cuya pendiente controla r. El panel inferior convierte ese perfil en deriva relativa esperada de cada capa tras T pasos (Δwℓ = ηℓ·T con ‖g‖ = 1, dividida por la norma típica de los pesos, 30), con dos fronteras: por debajo del 1 % una capa apenas cambia; por encima del 10 % se está reescribiendo.
Juega. r es el dial fino entre L1 y L3: con r → 0 recuperas feature extraction (todo congelado de facto salvo la cabeza); con r = 1 recuperas fine-tuning total. Los valores intermedios son el L2 del deck, pero con transición suave en vez de un corte brusco por bloques.
Lee así. El lector da η de cabeza y de capa 1 y su cociente r11: con r = 0,5 son tres órdenes de magnitud — el mismo salto que vimos en parámetros entrenables, ahora en velocidad de aprendizaje.
Mensaje. Discriminative LR es congelar con dimmer en vez de con interruptor: proteges lo universal no prohibiéndole moverse, sino dándole un paso tan corto que tu dataset pequeño no puede arrastrarlo.
Términos. ℓ: índice de capa (1 = entrada, L = cabeza). r: factor multiplicativo de decaimiento (0,5 ó 0,1 típicos). Deriva: cuánto se aleja una capa de sus pesos preentrenados. Dimmer: regulador continuo, frente al on/off de congelar.
Setup. Entrenamiento real (descenso por gradiente full-batch, 60 épocas, ηh = 0,35) del modelo de dos capas sobre n = 48 datos generados con y = x + ruido. El mapa muestra la pérdida en el plano (a, b): los valles oscuros forman la hipérbola a·b = 1; la línea horizontal discontinua marca b = 1, el backbone preentrenado intacto. La trayectoria pinta en gris la fase 1 (warmup: solo se actualiza a) y en dorado la fase 2 (se actualizan a y b, con ηb = ηh·fracción del slider).
Juega. Este es el paso 3-4 de la receta exprés del deck en versión microscopio: "congelar backbone, entrenar 1–3 épocas para inicializar la cabeza, descongelar con discriminative LR". El slider W es ese "1–3 épocas"; el slider ηb/ηh es el discriminative LR de la slide anterior.
Lee así. El lector da la pérdida final, el punto (a, b) alcanzado y la excursión máxima del backbone máxt|bt−1| (con el mínimo que b llegó a tocar). El panel inferior muestra la pérdida por época con la frontera de fases: fíjate en que el warmup ya se come casi todo el descenso — la cabeza era el problema, no el backbone.
Mensaje. El warmup de cabeza no es superstición de cocina: decide si el backbone sobrevive al aterrizaje. Mismo dato, mismas épocas, pérdida final parecida — y en un caso lo heredado queda intacto y en el otro se arrasó y se re-aprendió de 48 puntos.
Términos. Warmup de cabeza: épocas iniciales con backbone congelado. Full-batch: el gradiente usa todos los datos a la vez. Hipérbola de óptimos: conjunto a·b = 1 donde la pérdida es mínima. Excursión: máxima desviación de b respecto a b0 durante el entrenamiento; mide el arrasamiento transitorio.
Setup. Una estantería sintética pero realista de 8 checkpoints del Hub (tamaños, accuracies de benchmark y licencias del orden de los reales; los modelos de documentos son los tres de la nota técnica del caso BBVA). El scatter pinta calidad vs latencia con el área del punto proporcional a la VRAM; la zona pálida es la región factible en latencia. Solo compiten los modelos del dominio de TU tarea (genérica o documentos, según el checkbox): un benchmark de documentos no es comparable con uno de ImageNet. Los grises violan alguna restricción; el anillo dorado marca el ganador.
Juega. Tus sliders son las preguntas que el deck manda hacer antes de bajar nada del Hub: qué GPU tengo (VRAM), qué exige el negocio (latencia: caja de supermercado ≈ 30 ms, backoffice de facturas ≈ 300 ms), y para qué lo voy a usar (licencia). La tabla en vivo se filtra con cada movimiento.
Lee así. Si el badge se pone rojo es que NINGÚN modelo cumple tus restricciones: la respuesta correcta es relajar una (fp16, más hardware, menos latencia) — no ignorar la licencia.
Mensaje. "Antes de entrenar, busca" — pero buscar bien es optimizar con restricciones, y la licencia es una de ellas. Apache-2.0 y MIT permiten uso comercial; CC BY-NC y similares, no.
Términos. Checkpoint: pesos entrenados publicados. VRAM: memoria de la GPU. fp16: pesos en 16 bits en vez de 32. Apache-2.0 / MIT: licencias permisivas. CC BY-NC: prohíbe uso comercial.
Setup. Las tres rectas C(t) de las tres estrategias para montar el OCR de facturas: entrenar desde cero (tinta), fine-tunear DiT del Hub (dorado) y pagar una API de visión por documento (gris). Costes iniciales: etiquetas (desde cero necesita 25×n, el factor de ahorro de la slide 1) y GPU de entrenamiento (120 h frente a ≈4 h). Pendientes: servir en GPU propia — fracción de instancia según tu volumen, mínimo 10 % — frente a pagar por mil imágenes.
Juega. Cada slider es una pregunta de negocio real: ¿cuánto cuesta tu etiqueta (0,1 € un crowdworker, 3 € un experto)?, ¿cuántas inferencias harás de verdad?, ¿cuánto vivirá el producto? La tabla en vivo recalcula el total al horizonte y subraya en dorado la ganadora.
Lee así. El break-even t* del lector es el número que resume todo: horizonte < t* ⇒ API; horizonte > t* ⇒ fine-tune. Desde cero casi nunca gana: necesita a la vez etiquetas baratas, volumen enorme y un dominio donde ningún preentrenado sirva.
Mensaje. "¿Fine-tuneamos o pagamos API?" no se responde con opiniones: son dos rectas y un punto de cruce. Tu trabajo como analista es poner números honestos en los sliders.
Términos. Break-even: mes en que dos estrategias igualan coste acumulado. Self-host: servir el modelo en tu propia infraestructura. Pendiente mensual: coste recurrente de servir. Horizonte: vida útil esperada del producto.
Setup. El caso BBVA del deck y de la nota: OCR de facturas con DiT fine-tuneado, y la pregunta de negocio que nadie hace a tiempo: ¿cuántas facturas etiquetamos? El panel superior muestra la ley de escala F1(n) con los tres puntos medidos (rombos tinta) y el codo n* (línea vertical dorada). El panel inferior superpone el valor marginal en euros de la siguiente etiqueta, V·100·dF1/dn, contra su coste c: el cruce es n*, calculado en cerrado con la fórmula del panel de ecuaciones.
Juega. V por defecto (≈8 000 €/punto/año) sale de un cálculo de servilleta: medio millón de facturas al año, cada punto de F1 son 5 000 revisiones manuales evitadas a ≈1,6 € cada una. Cámbialo a tu realidad.
Lee así. A la izquierda de n*, el cociente valor/coste de la próxima etiqueta es >1 (el lector lo muestra): se etiqueta. A la derecha, es <1: ese dinero rinde más en otra parte (mejor backbone, más aumentado de datos, o simplemente no gastarlo).
Mensaje. "Invertir en datos hasta el codo de la curva, no más allá" (nota técnica). El codo no se intuye: se calcula con una derivada y dos números de negocio. Esta es la slide que convierte el Día 05 en decisiones de presupuesto.
Términos. F1: media armónica de precisión y recall; estándar en extracción de campos. Rendimiento marginal: mejora que aporta la siguiente unidad. Codo n*: punto donde valor marginal = coste marginal. Punto (porcentual): 0,01 de F1.
En una frase. Transfer learning convierte el deep learning en una decisión de negocio bien planteada: heredas gratis lo universal, entrenas lo justo con learning rates que no destruyen lo heredado, y cada elección — régimen, checkpoint, etiquetas — tiene una fórmula y un número delante.