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:
La caja de herramientas, y por qué cada una reduce la varianza:
| Técnica | Qué hace | Por qué reduce la varianza |
|---|---|---|
Dropout (p≈0,2–0,5) | Pone a cero unidades al azar en cada paso | Fuerza características redundantes y distribuidas; aproxima un gran ensemble |
| Decaimiento de pesos (L2) | Añade a la pérdida | Empuja los pesos hacia 0, aplanando la función que puede representar |
| Parada temprana | Detener cuando la pérdida de validación purgada deja de mejorar | Limita el número efectivo de parámetros ajustados |
| Aumento de datos | Inyección de ruido, (block-)bootstrap, mixup | Sintetiza muestras plausibles para que la red no memorice filas exactas |
| Ensembles | Promediar muchas semillas/modelos | La varianza de una media de modelos decorrelacionados cae hasta |
| Modelos pequeños | Menos parámetros desde el principio | Menor 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ón | Sharpe en muestra | Sharpe fuera de muestra |
|---|---|---|
| GRU sin regularizar (grande, sin dropout) | 3,10 | 0,15 |
| + dropout 0,3, decaimiento de pesos | 1,65 | 0,62 |
| + parada temprana en val purgada, tamaño oculto menor, ensemble de 5 semillas | 1,05 | 0,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ó de pura fantasía; el modelo final pagó solo . El número fuera de muestra, el único que paga el alquiler, se cuadruplicó de 0,15 a 0,78.
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.
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 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.
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:
- 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.
- 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.
- 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.
- 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 , purga + embargo, testea sobre ; 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 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 ≈ .
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.
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 pruebas independientes cada una produciendo un Sharpe con desviación típica , el máximo muestral esperado del Sharpe es aproximadamente
Este término 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 no crece poco a poco; explota.
Ejemplo resuelto — el listón para 200 configuraciones
Prueba configuraciones. El multiplicador del listón es
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 bajo la hipótesis nula, tu ganador necesita exceder 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 | Listón | Sharpe mínimo para batir la suerte () |
|---|---|---|
| 1 | 0,00 | 0,00 |
| 10 | 2,15 | 0,86 |
| 50 | 2,80 | 1,12 |
| 200 | 3,25 | 1,30 |
| 1.000 | 3,72 | 1,49 |
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 (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, es mayor). Ambos términos de van en la dirección equivocada a la vez.
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 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 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: , donde apunta al gradiente residual y 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 boosting | Deep learning |
|---|---|---|
| Tamaño de datos necesario | Funciona en conjuntos tabulares pequeños/medianos | Hambriento — quiere secciones transversales grandes o agrupadas |
| Ajuste a la relación señal-ruido | Sobresale con SNR baja (poco profundo, regularizado) | Brilla con SNR alta; sobreajusta con SNR baja |
| Estructura explotada | Ninguna asumida — tabular puro | Estructura de secuencia, espacial, de grafo, de atención |
| Categóricas / ausentes | Nativo | Necesita embeddings / imputación |
| Interpretabilidad | Alta (SHAP, importancia por ganancia) | Baja (caja negra, solo a posteriori) |
| Coste de ajuste | Bajo — minutos, pocos mandos | Alto — espacio enorme, lento, sensible a la semilla |
| Riesgo de pruebas múltiples | Moderado (espacio de búsqueda menor) | Severo (N explota) |
| Dónde gana | Datos tabulares de factores de baja señal | Microestructura del LOB, paneles agrupados enormes, alt-data/texto |
Entonces, ¿cuándo sí se gana el deep learning su salario? Tres casos honestos:
- 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.
- 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.
- 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.
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.
- Línea base primero. Un GBM ajustado (y un modelo lineal) sobre las mismas particiones purgadas. La red profunda debe batirlos, no meramente existir.
- 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.
- 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.
- 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.
- 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.
- 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 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 ( frente a ) 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.
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 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
- Regulariza para una muestra diminuta
No te engañes — la comprobación final
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.