Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 88): Codificador de series temporales totalmente conectadas (TiDE)"
Hola Dmitriy,
Utilizar MLP en lugar de otras redes más complejas es bastante interesante, sobre todo porque los resultados son mejores.
Desafortunadamente, encontré varios errores mientras probaba este algoritmo. Aquí están algunas líneas clave del registro:
2024.11.15 00:15:51.269 Core 01 Iterations=100000
2024.11.15 00:15:51.269 Núcleo 01 2024.01.01 00:00:00 TiDEEnc.nnw
2024.11.15 00:15:51.269 Núcleo 01 2024.01.01 00:00:00 Crear nuevo modelo
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 OpenCL: dispositivo GPU 'GeForce GTX 1060' seleccionado
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Error del núcleo de ejecución bool CNeuronBaseOCL::SumAndNormilize(CBufferFloat*,CBufferFloat*,CBufferFloat*,int,bool,int,int,int,float) MatrixSum: error OpenCL desconocido 65536
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Tren -> 164
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Tren -> 179 -> Codificador 1543.0718994
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Función ExpertRemove() llamada
¿Tienes alguna idea de cuál puede ser el motivo?
Antes el OpenCL funcionaba bastante bien.
Chris
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Tren -> 164
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Tren -> 179 -> Codificador 1543.0718994
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Función ExpertRemove() llamada
¿Tiene alguna idea de lo que podría ser la razón?
Antes el OpenCL funcionaba bastante bien.
Chris.
Hy, Chris.
¿Hiciste algunos cambios en la arquitectura del modelo o utilizaste los modelos por defecto del artículo?
Hy, Chris.
¿Has hecho algún cambio en la arquitectura del modelo o has utilizado los modelos por defecto del artículo?
Hola. No hice ningún cambio. Simplemente copié la carpeta "Experts" en su totalidad y ejecuté los scripts tal cual, después de la compilación, en este orden: "Research", "StudyEncoder", "Study" y "Test". Los errores aparecieron en la fase "Test". La única diferencia era el instrumento, es decir, el cambio de EURUSD a EURJPY.
Chris
Dmitriy, tengo una solución importante. El error aparecía después de iniciar StudyEncoder. Aquí hay otra muestra:
2024.11.18 03:23:51.770 Core 01 Iterations=100000
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 TiDEEnc.nnw
2024.11.18 03:23:51.770 Núcleo 01 2023.11.01 00:00:00 Crear nuevo modelo
2024.11.18 03:23:51.770 Núcleo 01 opencl.dll cargado con éxito
2024.11.18 03:23:51.770 Core 01 dispositivo #0: GPU 'GeForce GTX 1060' con OpenCL 1.2 (10 unidades, 1771 MHz, 6144 Mb, versión 457.20, clasificación 4444)
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 OpenCL: dispositivo GPU 'GeForce GTX 1060' seleccionado
2024.11.18 03:23:51.770 Núcleo 01 2023.11.01 00:00:00 Error del núcleo de ejecución bool CNeuronBaseOCL::SumAndNormilize(CBufferFloat*,CBufferFloat*,CBufferFloat*,int,bool,int,int,int,float) MatrixSum: error OpenCL desconocido 65536
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Tren -> 164
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Tren -> 179 -> Codificador 1815.1101074
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Función ExpertRemove() llamada
Chris
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Redes neuronales: así de sencillo (Parte 88): Codificador de series temporales totalmente conectadas (TiDE):
El deseo de obtener las previsiones más exactas impulsa a los investigadores a aumentar la complejidad de los modelos de previsión. Lo que a su vez conlleva un aumento de los costes de entrenamiento y mantenimiento del modelo. Pero, ¿está esto siempre justificado? En el presente artículo, me propongo presentarles un algoritmo que explota la sencillez y rapidez de los modelos lineales y muestra resultados a la altura de los mejores con arquitecturas más complejas.
Como en varios artículos anteriores, el modelo de codificador del estado del entorno será independiente del estado de la cuenta y de las posiciones abiertas. Por tanto, podremos entrenar el modelo incluso en una muestra de entrenamiento con una sola pasada de interacción con el entorno hasta obtener la precisión deseada en la predicción de estados futuros. Naturalmente, la "precisión de predicción deseada" no podrá superar las capacidades del propio modelo. Debemos recordar que "no se le pueden pedir peras al olmo".
Tras entrenar el modelo de predicción de los estados del entorno, pasaremos a la segunda etapa: el entrenamiento de la política de comportamiento del Actor. En esta fase, entrenaremos de forma iterativa los modelos del Actor y el Crítico con actualizaciones periódicas del búfer de reproducción de experiencias.
Recordemos que al actualizar el búfer de reproducción de experiencias, nos estaremos refiriendo a la recopilación adicional de la experiencia de interacción con el entorno respecto a la política de comportamiento actual del Actor. Al fin y al cabo, el entorno de los mercados financieros que estamos analizando es bastante polifacético, y no podemos recopilar plenamente todas sus manifestaciones en el búfer de reproducción de experiencias. Solo tomaremos un diminuto corte del pequeño entorno de acciones de la actual política del Actor. Analizando el corte obtenido, daremos un pequeño paso hacia la optimización de la política de comportamiento de nuestro Actor. Y a medida que nos acercamos a los límites de esta corte, tendremos que recoger datos adicionales implicando la zona visible en las proximidades de la política del Actor actualizada.
Como resultado de las iteraciones anteriores, podremos entrenar una política del Actor capaz de generar beneficios tanto en las muestras de entrenamiento como en las de prueba.
Autor: Dmitriy Gizlyk