Saltar al contenido
Lecciones de Finanzas

Deep Learning para Datos de Mercado

Entrenar y evaluar DL sin engañarte a ti mismo

Regularización agresiva para una muestra efectiva diminuta, evaluación con purga y embargo aplicada a redes profundas, el Sharpe desinflado para una búsqueda de arquitecturas, y la conclusión sobria: los árboles con gradient boosting son la línea base a batir — y en finanzas tabulares de baja señal, suelen ganar.

18 min Actualizado 19 jun 2026

Ya podéis construir todo el zoológico. RNN y LSTM que arrastran estado a lo largo del tiempo, TCN con convoluciones dilatadas, atención y transformers que miran una ventana entera de una vez, embeddings que convierten 4.000 símbolos de cotización en vectores densos. Tenéis el poder. Esta lección va de la habilidad mucho más difícil: no engañaros a vosotros mismos con él.

Esta es la edición de deep learning del credo que jurasteis en Machine Learning para Alfa. El sobreajuste es el enemigo. Un IC honesto vive en torno a 0,02–0,05. Purgas y embargas tu validación cruzada. Desinflas tu Sharpe por el número de pruebas. Bloqueas un conjunto de test, operas en simulado, monitorizas el IC en vivo y mantienes un interruptor de emergencia. Nada de eso se deroga porque hayas cambiado de ridge a un transformer. Se amplifica, porque una red profunda es una memorizadora de ruido infinitamente más ansiosa que cualquier modelo lineal que hayas entrenado antes.

La frase más útil de todo este curso: una red neuronal es una máquina para encontrar estructura, y en los rendimientos financieros la mayor parte de la “estructura” es ruido. Todo lo de abajo es control de daños alrededor de ese hecho.

Regularización para una muestra diminuta

Before you read — take a guess

Estás entrenando una LSTM sobre ~6.000 filas de rendimientos diarios, con una muestra efectiva mucho menor todavía. ¿Qué reflejo es el más defendible como punto de partida?

Piensa en la regularización como una correa para un perro demasiado entusiasta. El perro (tu red) perseguirá feliz cada ardilla (cada meneo ruidoso de los rendimientos de entrenamiento). La correa no vuelve al perro más tonto — le impide salir corriendo hacia el tráfico. Matemáticamente, cada técnica de abajo hace el mismo trabajo: cambia un poco de sesgo por una gran reducción de varianza, y en un régimen de SNR baja, la varianza es lo que te mata fuera de muestra.

Definición. La regularización es cualquier restricción, penalización o ruido añadido durante el entrenamiento que reduce la capacidad efectiva del modelo, bajando la varianza fuera de muestra a costa de un pequeño aumento de sesgo. La descomposición sesgo–varianza del error cuadrático esperado deja explícito el trato:

E[(yf^)2]=(E[f^]y)2sesgo2+Var(f^)varianza+σirreducible2\mathbb{E}\big[(y-\hat f)^2\big] = \underbrace{\big(\mathbb{E}[\hat f]-y\big)^2}_{\text{sesgo}^2} + \underbrace{\mathrm{Var}(\hat f)}_{\text{varianza}} + \sigma^2_{\text{irreducible}}

La caja de herramientas, y por qué cada una reduce la varianza:

TécnicaQué hacePor qué reduce la varianza
Dropout (p≈0,2–0,5)Pone a cero unidades al azar en cada pasoFuerza características redundantes y distribuidas; aproxima un gran ensemble
Decaimiento de pesos (L2)Añade λw22\lambda\lVert w\rVert_2^2 a la pérdidaEmpuja los pesos hacia 0, aplanando la función que puede representar
Parada tempranaDetener cuando la pérdida de validación purgada deja de mejorarLimita el número efectivo de parámetros ajustados
Aumento de datosInyección de ruido, (block-)bootstrap, mixupSintetiza muestras plausibles para que la red no memorice filas exactas
EnsemblesPromediar muchas semillas/modelosLa varianza de una media de kk modelos decorrelacionados cae hasta 1/k1/k
Modelos pequeñosMenos parámetros desde el principioMenor capacidad = menor varianza, sin más

Fíjate en el detalle del block-bootstrap: las filas financieras están autocorrelacionadas, así que remuestreas bloques contiguos, no días individuales — de lo contrario destruyes la propia estructura serial que tu RNN existe para capturar.

Ejemplo resuelto — regularización en un predictor de rendimientos

Entrenas una GRU para predecir rendimientos transversales del día siguiente e informas del Sharpe anualizado de la cartera long–short que implica.

ConfiguraciónSharpe en muestraSharpe fuera de muestra
GRU sin regularizar (grande, sin dropout)3,100,15
+ dropout 0,3, decaimiento de pesos λ=103\lambda=10^{-3}1,650,62
+ parada temprana en val purgada, tamaño oculto menor, ensemble de 5 semillas1,050,78

Lee las columnas con honestidad. La regularización destruyó el Sharpe en muestra —de 3,10 a 1,05, un recorte del 66%— y eso es exactamente lo que quieres. El hueco entre columnas es el impuesto del sobreajuste. El modelo sin regularizar pagó 3,100,15=2,953{,}10 - 0{,}15 = 2{,}95 de pura fantasía; el modelo final pagó solo 1,050,78=0,271{,}05 - 0{,}78 = 0{,}27. El número fuera de muestra, el único que paga el alquiler, se cuadruplicó de 0,15 a 0,78.

El error en muestra sigue cayendo; el de fuera de muestra sube y vuelve a bajar
In-sample (backtest)Out-of-sample (live)
Model complexity / strategies triedApparent performance
gap9%

La U clásica: el error fuera de muestra toca fondo con una complejidad modesta, luego trepa cuando la capacidad memoriza ruido. La regularización desplaza el punto óptimo hacia la izquierda.

Warning:

Un Sharpe en muestra de 3 es un síntoma, no un trofeo

Si una red profunda te entrega un Sharpe en muestra (o incluso de validación sin purgar) de 3 o más, tu primera suposición debería ser fuga o memorización, no genialidad. Las señales financieras honestas viven cerca de un IC de 0,02–0,05; una métrica de entrenamiento reluciente sobre una muestra diminuta y de SNR baja es el modelo recitando con orgullo el ruido que memorizó. Celebra un hueco pequeño entre dentro y fuera de muestra, nunca un número grande en muestra.

Cuándo usarlo

Siempre regularizas en este dominio — la pregunta es solo cuánto. Escala la correa al tamaño efectivo de muestra, no al recuento de filas: las etiquetas multidía solapadas y la autocorrelación pueden encoger ~6.000 filas a unos pocos cientos de observaciones independientes, así que trata tu nn efectivo como diminuto y regulariza en consecuencia. Compromiso: demasiada y subajustas la (ya tenue) señal hasta el olvido; la curva de validación purgada es tu árbitro para saber dónde dejar de apretar.

Une cada concepto con su definición.

Evaluación con purga y embargo para redes profundas

Before you read — take a guess

Comparado con la regresión ridge que purgaste y embargaste en ML para Alfa, ¿por qué la fuga suele ser PEOR para una red profunda con los mismos datos?

Repaso rápido de Fugas y validación cruzada purgada. Cuando las etiquetas abarcan varios días (un rendimiento a 5 días vista toca 5 días de características), una partición ingenua deja que las filas de entrenamiento cuya ventana de etiqueta solapa el periodo de test espíen el futuro.

  • Purga. Descarta las observaciones de entrenamiento cuya ventana de etiqueta solapa el tramo de test.
  • Embargo. Descarta una banda adicional de filas de entrenamiento inmediatamente después del tramo de test, porque la autocorrelación deja que la información se filtre hacia delante a través de la costura.

La analogía: purgar es negarte a estudiar de un libro de texto que contiene las respuestas del examen; el embargo es además saltarte el capítulo impreso justo al lado de esas respuestas, porque las parafrasea.

Purga el solapamiento, embarga la banda posterior
TrainTestPurgedEmbargo
earlierlater (time →)
Train26Test8Purged4Embargo2

Las etiquetas de entrenamiento que solapan la ventana de test se descartan (purga); se elimina un colchón adicional tras la ventana de test (embargo). El bloque de test se toca una sola vez.

Aquí viene la parte que muerde más fuerte con deep learning. Un pipeline neuronal fuga por canales que un ridge simple nunca tuvo:

  1. Escaladores / normalización ajustados sobre todo el conjunto de datos. Calcula la media y la desviación típica, o un rango min–max, sobre todas las filas y has contrabandeado estadísticas del conjunto de test al entrenamiento. Ajusta las transformaciones solo sobre el pliegue de entrenamiento, y luego aplícalas hacia delante.
  2. Estadísticas móviles de batch-norm. BatchNorm acumula media/varianza móviles. Deja que esas estadísticas vean minibatches futuros y el futuro se filtra al presente — prefiere LayerNorm, o congela/reajusta las estadísticas por pliegue.
  3. Tablas de embeddings (guiño a la Lección 5). Un embedding de ticker o sector aprendido usando el historial entero hornea la co-variación futura dentro de una búsqueda “estática”. Aprende los embeddings solo dentro de la ventana de entrenamiento.
  4. Minibatches barajados a través de la frontera. El reflejo de barajar para un SGD IID es veneno aquí — barajar mezcla filas a ambos lados de la costura. Construye minibatches que respeten el orden temporal y el hueco de purga.

El protocolo correcto es el reentrenamiento walk-forward: entrena sobre [t0,t1][t_0, t_1], purga + embargo, testea sobre [t1,t2][t_1, t_2]; luego haz rodar la ventana hacia delante, reajusta todo (escaladores, estadísticas de batch, embeddings, pesos) y testea sobre el siguiente bloque. Nunca reajustes con datos posteriores al bloque que estás puntuando.

Ejemplo resuelto — contar filas purgadas + embargadas

Tienes 2.000 días de entrenamiento. Las etiquetas son rendimientos a 10 días vista, el bloque de test son los siguientes 250 días y fijas un embargo de 5 días.

  • Purga: cualquier fila de entrenamiento cuya ventana de etiqueta a 10 días alcance el bloque de test debe irse. Eso son aproximadamente las últimas 101=910 - 1 = 9 filas de entrenamiento que rozan la costura.
  • Embargo: descarta 5 filas de material de entrenamiento que quedarían justo después del bloque de test en una partición rodada.
  • Filas de entrenamiento utilizables ≈ 200095=19862000 - 9 - 5 = 1986.

Perder 14 filas de 2.000 suena trivialmente barato — y lo es, que es exactamente por lo que saltárselo es inexcusable. Esas 14 filas son las únicas que cargan la fuga; consérvalas y tu Sharpe fuera de muestra reportado es silenciosamente ficticio.

Warning:

El escalador es el fugador silencioso

La fuga de DL más común en finanzas es la más aburrida: alguien llama a scaler.fit(X_all) una vez al principio del cuaderno, y luego parte. El modelo ahora conoce la media y la varianza del periodo de test antes de empezar a entrenar. Produce un backtest precioso y una señal en vivo inútil. Ajusta cada transformación —escaladores, PCA, embeddings, estadísticas de batch— solo dentro del pliegue de entrenamiento, y luego aplica hacia delante. Sin excepciones.

Cuándo usarlo

Siempre — no hay régimen en el que una evaluación sin purgar sea aceptable para etiquetas financieras solapadas. Compromiso: purga + embargo + walk-forward encoge cada pliegue de entrenamiento y multiplica el cómputo (reajustas por pliegue). Para redes profundas ese coste de reentrenamiento es real, pero es el precio de un número en el que puedes confiar. La alternativa barata es un backtest que te miente, y esa sale gratis hasta que deja de serlo.

Clasifica cada elemento según sea un canal de fuga específico de DL o parte del protocolo de evaluación correcto.

Coloca cada elemento en su grupo.

  • Escalador ajustado sobre todo el conjunto de datos antes de partir
  • Purgar filas de entrenamiento cuya ventana de etiqueta solapa el tramo de test
  • Estadísticas móviles de BatchNorm que abarcan minibatches futuros
  • Tabla de embeddings aprendida sobre todo el historial
  • Reajustar escaladores y embeddings dentro de cada pliegue walk-forward
  • Barajar minibatches a través de la costura train/test
  • Embargar una banda de filas tras el bloque de test

El Sharpe desinflado para una búsqueda de arquitecturas

Before you read — take a guess

Pruebas 200 configuraciones de arquitectura/hiperparámetros y te quedas con la mejor por Sharpe de validación. ¿Por qué el Sharpe destacado de la mejor está sistemáticamente inflado?

Recuerda la lección brutal de Sobreajuste de backtest y el Sharpe desinflado: cada configuración que pruebas es una prueba, y cuantos más boletos de lotería compras, más alto parece el mejor boleto aunque ninguno sea premiado. La analogía: dale a 200 monos una diana y el mejor mono parecerá un campeón — no porque sepa lanzar, sino porque tomaste el máximo sobre 200 lanzamientos ruidosos.

Definición. Bajo la hipótesis nula de habilidad verdadera cero, con NN pruebas independientes cada una produciendo un Sharpe con desviación típica σ\sigma, el máximo muestral esperado del Sharpe es aproximadamente

E[maxSR]σ2lnN.\mathbb{E}[\max \text{SR}] \approx \sigma\,\sqrt{2\ln N}.

Este término 2lnN\sqrt{2\ln N} es el listón de las pruebas múltiples: un Sharpe debe superarlo antes de que se te permita creer que es real. El Sharpe desinflado pregunta si tu valor observado supera esta hipótesis-nula-del-mejor, no meramente la hipótesis-nula-de-uno.

Ahora el giro de deep learning que debería quitarte el sueño. El espacio de hiperparámetros de DL es enorme — anchura, profundidad, tasa de aprendizaje, tasa de dropout, decaimiento de pesos, longitud de secuencia, optimizador, calendario de calentamiento y semilla aleatoria— y las semillas por sí solas pueden multiplicar por diez tu recuento de pruebas. Así que NN no crece poco a poco; explota.

Ejemplo resuelto — el listón para 200 configuraciones

Prueba N=200N = 200 configuraciones. El multiplicador del listón es

2ln200=2×5,298=10,5973,25.\sqrt{2\ln 200} = \sqrt{2 \times 5{,}298} = \sqrt{10{,}597} \approx 3{,}25.

Así que el mejor de 200 debe superar ≈ 3,25 desviaciones típicas por prueba solo para igualar a la suerte aleatoria. Si el Sharpe de validación de cada configuración tiene desviación típica σ=0,4\sigma = 0{,}4 bajo la hipótesis nula, tu ganador necesita exceder 3,25×0,4=1,303{,}25 \times 0{,}4 = 1{,}30 de Sharpe antes de que tengas evidencia alguna de habilidad real — y aun así solo has igualado la casualidad esperada, no la has batido.

Compara el coste de la curiosidad:

Pruebas NNListón 2lnN\sqrt{2\ln N}Sharpe mínimo para batir la suerte (σ=0,4\sigma=0{,}4)
10,000,00
102,150,86
502,801,12
2003,251,30
1.0003,721,49
Sharpe observado frente al listón de pruebas múltiples frente al valor desinflado
Expected max Sharpe under the null (luck hurdle)Observed best Sharpe
0.00.51.01.52.02.53.01101001000Strategy configurations tried (N)Sharpe ratio
N50Expected max Sharpe under the null (luck hurdle)1.14Observed best Sharpe1.40Deflated edge+0.26

A medida que crecen las pruebas, el listón de la suerte (√(2 ln N)) sube. El Sharpe desinflado es lo que queda tras restar el mejor esperado bajo la hipótesis nula — a menudo muy por debajo del titular.

La crueldad acumulativa: la flexibilidad de DL te golpea dos veces. Más hiperparámetros multiplican NN (subiendo el listón de selección), y cada modelo individual sobreajusta más fuerte que uno lineal (así que cada Sharpe por prueba es más ruidoso, es decir, σ\sigma es mayor). Ambos términos de σ2lnN\sigma\sqrt{2\ln N} van en la dirección equivocada a la vez.

Warning:

Tu barrido de semillas es un barrido de hiperparámetros

Una trampa sutil: la gente insiste en que “solo probó 8 arquitecturas”, y luego admite que corrió cada una con 10 semillas aleatorias y se quedó con la mejor semilla también. Eso son 8×10=808 \times 10 = 80 pruebas, no 8 — y el listón lo fija el número total de configuraciones sobre las que seleccionaste un máximo, incluidas semillas, tasas de aprendizaje y cada “déjame probar una cosa más”. Registra cada ejecución. El NN honesto es casi siempre de 3 a 10 veces lo que recuerdas.

Cuándo usarlo

Desinfla siempre que hayas seleccionado un modelo comparando muchos — lo cual, con DL, es siempre. Compromiso: una desinflación agresiva puede rechazar un modelo genuinamente bueno que simplemente tuvo un sorteo de validación desafortunado, así que la cura son menos pruebas pre-registradas, no el perdón a posteriori. Decide tu familia de arquitecturas y tu presupuesto de búsqueda antes de espiar los resultados de validación, y cuenta cada ejecución con honestidad.

Completa el razonamiento de pruebas múltiples para una búsqueda de arquitecturas.

Elige la opción correcta para cada hueco y comprueba.

Bajo la hipótesis nula de habilidad cero, el mejor esperado de N pruebas crece como desviaciones típicas por prueba, así que para N = 200 el listón es de unos — y DL infla esto porque su enorme espacio de hiperparámetros hace que .

¿De verdad el deep learning bate al gradient boosting?

Before you read — take a guess

Sobre características financieras de baja señal y predominantemente tabulares (exposiciones a factores, ratios, rendimientos rezagados), ¿qué dice la evidencia empírica honesta?

Es hora de la incómoda cena familiar. Te pasaste todo este curso aprendiendo arquitecturas profundas, y el remate honesto es: en finanzas tabulares de baja señal, los árboles con gradient boosting suelen batirlas. Esto no es herejía; es el hallazgo repetido a lo largo de los benchmarks de ML tabular y de la mayoría de las mesas cuant.

La analogía: un transformer es un coche de Fórmula 1, y los datos tabulares de factores son un camino de grava de granja. El F1 es genuinamente superior — en un circuito. Fuera del circuito, la camioneta (un árbol con gradient boosting) llega antes, más barato y sin romper un eje en el primer bache.

Definición. El gradient boosting construye un ensemble aditivo de árboles de decisión poco profundos, cada uno ajustado al gradiente de la pérdida dejada por los árboles anteriores: Fm(x)=Fm1(x)+ηhm(x)F_m(x) = F_{m-1}(x) + \eta\, h_m(x), donde hmh_m apunta al gradiente residual y η\eta es la tasa de aprendizaje. Los árboles son invariantes a escala, manejan valores ausentes y categóricas de forma nativa, no necesitan normalización y se ajustan en minutos.

DimensiónÁrboles con gradient boostingDeep learning
Tamaño de datos necesarioFunciona en conjuntos tabulares pequeños/medianosHambriento — quiere secciones transversales grandes o agrupadas
Ajuste a la relación señal-ruidoSobresale con SNR baja (poco profundo, regularizado)Brilla con SNR alta; sobreajusta con SNR baja
Estructura explotadaNinguna asumida — tabular puroEstructura de secuencia, espacial, de grafo, de atención
Categóricas / ausentesNativoNecesita embeddings / imputación
InterpretabilidadAlta (SHAP, importancia por ganancia)Baja (caja negra, solo a posteriori)
Coste de ajusteBajo — minutos, pocos mandosAlto — espacio enorme, lento, sensible a la semilla
Riesgo de pruebas múltiplesModerado (espacio de búsqueda menor)Severo (N explota)
Dónde ganaDatos tabulares de factores de baja señalMicroestructura del LOB, paneles agrupados enormes, alt-data/texto

Entonces, ¿cuándo se gana el deep learning su salario? Tres casos honestos:

  1. Datos estructurados de SNR alta — microestructura del LOB (guiño a la Lección 4). Las instantáneas del libro de órdenes tienen estructura espacial/secuencial y muchos más eventos que las barras diarias; un TCN o un modelo de atención pueden leer la forma del libro de una manera que los árboles no pueden.
  2. Secciones transversales agrupadas muy grandes. Cuando agrupas miles de nombres a lo largo de décadas, el tamaño efectivo de muestra sube y un modelo profundo compartido puede aprender estructura transversal que un ensemble de árboles por nombre se pierde.
  3. Aprendizaje de representaciones para alt-data y texto (guiño a la Lección 5). Convertir informes, noticias o transcripciones en características, o aprender embeddings de ticker/sector, es directamente el terreno de DL — no hay buena línea base tabular para el texto en bruto.
Warning:

Haz del GBM la línea base obligatoria — sin excepciones

Antes de reportar un solo resultado de red profunda, debes batir una línea base de gradient boosting ajustada sobre las mismas particiones purgadas y embargadas. Si tu transformer no puede superar a un LightGBM que se entrenó en 90 segundos, no tienes un resultado de deep learning — tienes una forma cara de rendir por debajo de una línea base. “No corrimos la línea base” es el equivalente cuant a corregirte tú mismo los deberes.

Cuándo usarlo

Recurre a GBM por defecto en datos tabulares de factores; recurre a DL cuando los datos tengan estructura (secuencia/espacial/grafo), cuando la SNR y el tamaño de muestra sean genuinamente altos (microestructura, paneles enormes) o cuando la tarea sea aprendizaje de representaciones sobre entradas no estructuradas (texto, embeddings). Compromiso: DL te compra flexibilidad y poder de representación a costa de hambre de datos, gasto de ajuste, opacidad y una factura de pruebas múltiples mucho más desagradable — págala solo cuando la estructura del problema realmente lo recompense.

Selecciona cada situación donde el deep learning es genuinamente una elección defendible frente a los árboles con gradient boosting.

Una lista de comprobación de disciplina de despliegue

Before you read — take a guess

Tu red profunda superó una línea base GBM ajustada sobre particiones purgadas y embargadas y sobrevivió a la desinflación. ¿Cuál es el SIGUIENTE paso correcto antes de arriesgar capital?

Haciendo eco de la lección de despliegue de Machine Learning para Alfa, ahora con sombrero de red profunda. La disciplina es idéntica porque el modo de fallo es idéntico: un modelo que deslumbró sobre el historial y decepciona sobre el mañana. Recorre la lista en orden, de arriba abajo, y no te saltes un peldaño porque estés emocionado.

  1. Línea base primero. Un GBM ajustado (y un modelo lineal) sobre las mismas particiones purgadas. La red profunda debe batirlos, no meramente existir.
  2. Bloquea un conjunto de test que tocas una vez. Un solo vistazo, para siempre. En el momento en que lo reajustas, se convierte en otro pliegue de entrenamiento y deja de ser evidencia — y el gigantesco espacio de búsqueda de DL hace esta tentación abrumadora.
  3. Opera en simulado. Corre en vivo sin capital. Esto atrapa las fugas que un backtest no puede: errores de temporización de datos, look-ahead en el cálculo de características y la brecha entre las ejecuciones asumidas y las realizadas.
  4. Monitoriza el IC en vivo frente al backtest. Sigue el coeficiente de información y el Sharpe realizados frente a las expectativas del backtest. Un IC en vivo muy por debajo del backtest es tu aviso temprano de que la ventaja estaba parcial (o totalmente) sobreajustada.
  5. Prefija el interruptor de emergencia. Decide de antemano el umbral de drawdown, IC en vivo o slippage que tira del enchufe. Fijarlo después de que empiecen las pérdidas es solo esperanza con pasos extra.
  6. Reentrena walk-forward a medida que la señal decae. Las ventajas se erosionan; la no estacionariedad es la regla de la casa en los mercados. Reajusta sobre una ventana rodante, pero equilibra la frecuencia de reentrenamiento con los costes de transacción — cada reentrenamiento que voltea posiciones paga el diferencial.
El IC decae con el horizonte de mantenimiento — y operar más rápido cuesta más
Signal strength (IC)Net alpha / day (after costs)Optimal horizon h*
020400.120Holding horizon h (days)
Signal half-life5.5 dOptimal horizon11.0 dNet alpha / day (after costs)3.2 bps/d

El coeficiente de información de una señal se desvanece a medida que se estira el periodo de mantenimiento, mientras que operarla más rápido para capturar la ventaja fresca dispara los costes de transacción. El horizonte óptimo equilibra ambos.

Ejemplo resuelto — ¿cuándo justifica el decaimiento un reentrenamiento?

Tu IC en vivo era 0,040 en el despliegue. Tras ocho semanas de operar en simulado ha derivado a 0,018 —un decaimiento del 55%— mientras que el IC del backtest en el mismo tramo era 0,038. La brecha entre vivo y backtest (0,0180{,}018 frente a 0,0380{,}038) es amplia y persistente, no un parpadeo de una semana. La respuesta disciplinada: la brecha en sí es un disparador del interruptor de emergencia; detén el escalado, investiga si hay fuga o cambio de régimen, y reentrena walk-forward solo si un reajuste fresco y purgado vuelve a superar el listón del Sharpe desinflado. Una señal que decae es normal; un IC en vivo que es la mitad del backtest es una bandera roja de que el backtest era optimista.

Warning:

El conjunto de test bloqueado está bloqueado — dilo otra vez

Con una muestra efectiva diminuta y un espacio de búsqueda de DL enorme, el error más caro es espiar el conjunto de test bloqueado “solo para comprobar” y luego empujar un hiperparámetro. Acabas de entrenar sobre él. No hay deshacer. Cada vistazo a los datos retenidos gasta una parte de su valor probatorio; gástalo una vez, al final del todo, y reporta lo que diga — aunque diga “no”.

Cuándo usarlo

Esta lista de comprobación es obligatoria para cualquier modelo que vaya a capital, profundo o no — pero la disciplina se aprieta para DL porque el espacio de búsqueda y la capacidad de sobreajuste son mayores. Compromiso: operar en simulado y reentrenar walk-forward cuesta tiempo de calendario y cómputo, retrasando la puesta en vivo. Ese retraso es una característica: es la ventana en la que un modelo sobreajustado se revela inofensivamente, antes de poder perder dinero real.

Tu red profunda bate la línea base GBM en el backtest pero su IC en vivo es la mitad del IC del backtest tras un mes de operar en simulado. ¿Cuál es el diagnóstico más probable y la respuesta disciplinada?

Respuesta. El culpable más probable es sobreajuste residual o una fuga sutil que el backtest no atrapó — un escalador ajustado sobre datos completos, un embedding aprendido sobre todo el historial, estadísticas de batch que abarcan la costura, o sesgo de selección de una búsqueda sin desinflar. La respuesta disciplinada no es reajustar sobre los datos en vivo y no es “darle más tiempo” más allá de tu umbral prefijado. Es tratar la brecha entre vivo y backtest como una señal del interruptor de emergencia: detén el escalado, audita el pipeline en busca de fugas, recuenta tu verdadero presupuesto de pruebas NN y vuelve a desinflar, y reanuda solo si un reajuste fresco con purga + embargo supera el listón. A veces la conclusión honesta es que nunca hubo ventaja — entrega esa conclusión también.

Recapitulación

Ya tienes el kit de autodefensa de deep learning: regulariza como si tu muestra efectiva fuera diminuta (lo es), evalúa con purga + embargo mientras tapas los canales de fuga extra de DL, desinfla al ganador de una búsqueda de arquitecturas desmesurada por su verdadero recuento de pruebas, haz del gradient boosting la línea base que debes batir, y despliega solo a través de un conjunto de test bloqueado, operar en simulado, monitorizar el IC en vivo y un interruptor de emergencia armado.

Big picture

Entrenar y evaluar DL sin engañarte a ti mismo

  • DL honesto en finanzas
    • Regulariza para una muestra diminuta
      • Dropout, L2, parada temprana en val purgada
      • Ruido/block-bootstrap/mixup, ensembles
      • Simplemente usa modelos pequeños
    • Evaluación con purga + embargo
      • Purga el solapamiento de etiquetas; embarga la banda posterior
      • Fugas extra de DL: escaladores, estadísticas de batch, embeddings, barajado
      • Reentrenamiento walk-forward
    • Desinfla la búsqueda de arquitecturas
      • Cada configuración + semilla es una prueba
      • Listón ≈ σ·√(2 ln N)
      • DL infla N y el sobreajuste por prueba a la vez
    • Bate la línea base GBM
      • Los árboles suelen ganar en datos tabulares de baja señal
      • DL gana en LOB, paneles enormes, texto/embeddings
    • Disciplina de despliegue
      • Bloquea el test, opera en simulado, monitoriza el IC en vivo
      • Prefija el interruptor; reentrena a medida que la señal decae
Cinco disciplinas que convierten las arquitecturas profundas de tiros al pie en bisturíes.

No te engañes — la comprobación final

Pregunta 1 de 50 correct

Tras añadir dropout, decaimiento de pesos y un ensemble de semillas, el Sharpe en muestra de tu GRU cae de 3,1 a 1,05 mientras el de fuera de muestra sube de 0,15 a 0,78. ¿Cómo deberías leerlo?

Comprueba tu respuesta para continuar.

Marcar lección como completada