2 votos

¿Cuándo dejar de entrenar?

He construido un agente de optimización de carteras basado en el aprendizaje por refuerzo profundo. A alto nivel, utiliza datos macroeconómicos, valoraciones de los activos y algunos indicadores técnicos como características. La red política es una red de convolución temporal con atención. La salida de la red política es la asignación de la cartera. El agente es episódico y la duración del episodio es de 365 días. El episodio termina al final de los 365 días o cuando la reducción de la cartera alcanza el 30%. Con estas condiciones he entrenado al agente con 10 años de datos. El problema al que me enfrento es el de saber cuándo dejar de entrenar al agente. Todas las métricas, como la pérdida, siguen mejorando con cada iteración. El rendimiento fuera de la muestra fluctúa en una banda estrecha después de unas 100 iteraciones, lo que indica que es posiblemente el mejor resultado que el modelo puede proporcionar. Pero la métrica de la pérdida sigue disminuyendo.

Training Loss

Gradients of the Mode

enter image description here

Out of sample Validation Returns

Out of sample Validation Loss

Como se puede ver en estos gráficos, no se puede tomar una decisión sobre cuándo detener el entrenamiento basándose en la pérdida de entrenamiento. Y no se puede tomar ninguna decisión basándose en el conjunto de datos de validación fuera de muestra. ¿Alguna sugerencia?

3voto

John Rennie Puntos 6821

El enfoque estándar para la validación cruzada es trabajar con tres conjuntos de datos

  • el formación conjunto,
  • el validación conjunto,
  • el prueba conjunto.

Se entrena en el conjunto de entrenamiento (no es una sorpresa), y se utiliza el conjunto de validación para decidir sus hiperparámetros. Luego se vuelve a entrenar, se prueba en el juego de pruebas (sin sorpresa de nuevo), y está hecho.

Mi consejo aquí es considerar que el número de épocas para entrenar es un hiperparámetro: por lo tanto, elíjalo para generalizar bien en su conjunto de entrenamiento. Luego vuelva a entrenar con él y ya está.

Un detalle más: dividir el historial en conjuntos no es trivial cuando hablamos de series temporales. Hay que tomar "bloques contiguos"; si tienes 10 años (esto es corto, además ¡no tiene la crisis de 2008 en su historia! )

  • 6 años para la formación,
  • 1,5 años para la validación
  • los últimos 1,5 años para la prueba (esto es muy corto...)

Puede utilizar Validación cruzada K-fold para tratar de obtener resultados más robustos: multiplique por k sus 7,5 años rotando los 1,5 años que conserva para la validación. Gracias a esto tendrás 5 conjuntos de validación que mirar.

2voto

nhinkle Puntos 492

Una opción podría ser utilizar un mecanismo de parada temprana, por ejemplo, parar cuando la recompensa media por episodio en un conjunto de validación deja de aumentar. En la práctica, me pareció una mala idea, ya que generalmente no se tienen suficientes datos para poder permitirse un conjunto de validación cuando se utilizan datos diarios (además del conjunto de prueba). Si se trata de datos de mayor frecuencia que los diarios, la historia podría ser diferente.

Una segunda opción es utilizar una red de política simple (por ejemplo, una regresión lineal) que no tenga suficiente capacidad de sobreajuste, y así poder entrenar hasta que la recompensa en el conjunto de entrenamiento deje de aumentar.

Una tercera opción es entrenar durante el tiempo suficiente (es decir, hasta que la recompensa deje de aumentar o hasta que se confíe en estar en la región de sobreajuste) mientras se comprueba el agente durante el entrenamiento. A continuación, utilice visualizaciones para inspeccionar el comportamiento del agente durante el entrenamiento (por ejemplo, el ratio de Sharpe o la rotación en función del número de pasos de entrenamiento). Esto es cualitativo y no te dice cuándo parar, pero sí proporciona información/permite a un humano juzgar cuál podría ser un punto de parada decente (por ejemplo, el volumen de negocio probablemente será demasiado alto después de un cierto número de iteraciones)

Además, este problema debe ser evaluado en el contexto de la optimización walk-forward, sólo para añadir otra dimensión a este ya difícil problema.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X