Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 31): Algoritmos evolutivos"

 

Artículo publicado Redes neuronales: así de sencillo (Parte 31): Algoritmos evolutivos:

En el artículo anterior, comenzamos a analizar los métodos de optimización sin gradiente, y también nos familiarizamos con el algoritmo genético. Hoy continuaremos con el tema iniciado, y estudiaremos otra clase de algoritmos evolutivos.

Después de la optimización, hemos probado el modelo en el simulador de estrategias, Para probar el modelo, hemos utilizado el asesor Evolution-test.mq5, que es una copia exacta del asesor usado varios artículos atrás. Los cambios han afectado solo al nombre del archivo del modelo cargado. Podrá encontrar el código completo del asesor en el archivo adjunto.

Hemos realizado pruebas para el periodo de las últimas 2 semanas no incluidas en la muestra de entrenamiento. Es decir, las pruebas se han realizado en condiciones lo más próximas posibles a las reales. Los resultados de las pruebas han mostrado la viabilidad del enfoque propuesto. En el gráfico a continuación, podemos ver la dinámica de aumento del balance. En general, hemos realizado 107 transacciones durante el periodo de prueba. De estas, casi el 55% han sido rentables. Sí, la proporción de operaciones rentables respecto a operaciones perdedoras está próxima a 1:1, pero la operación ganadora promedio es un 43% más alta que la operación perdedora promedio, lo cual en general ha ofrecido un factor de beneficio de 1,69, mientras que el factor de recuperación ha llegado a 3,39.

Resultados de la prueba del modelo entrenado

Resultados de la prueba del modelo entrenado


Autor: Dmitriy Gizlyk

 


Aparece un error. Por favor, dígame cómo resolverlo

2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1 objetos sin borrar dejados
2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1 objeto de tipo CBufferFloat dejado
2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1280 bytes de memoria filtrada
2022.10.21 18:23:13.785 Evolución (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.21 18:23:13.858 Evolución (EURUSD,H1) OpenCL: GPU device 'NVIDIA GeForce RTX 3080' selected
2022.10.21 18:23:16.085 Evolución (EURUSD,H1) Error de ejecución kernel SoftMax FeedForward: 5109
2022.10.21 18:23:16.085 Evolución (EURUSD,H1) Tren -> 206


En el log
2022.10.21 18:23:12.281 Experts experts Evolution (EURUSD,H1) loaded successfully


Y no pasa nada, silencio, no oigo la tarjeta de video, suele hacer ruido cuando trabaja (usando la misma Fractal OCL como ejemplo).
 
Ivan Butko #:


Aparece un error. Por favor, dígame cómo resolverlo

2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1 objetos sin borrar dejados
2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1 objeto de tipo CBufferFloat dejado
2022.10.21 18:23:12.259 Evolución (EURUSD,H1) 1280 bytes de memoria filtrada
2022.10.21 18:23:13.785 Evolución (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.21 18:23:13.858 Evolution (EURUSD,H1) OpenCL: GPU device 'NVIDIA GeForce RTX 3080' selected
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Error de ejecución kernel SoftMax FeedForward: 5109
2022.10.21 18:23:16.085 Evolution (EURUSD,H1) Train -> 206


En el registro
2022.10.21 18:23:12.281 Expertos expertos Evolution (EURUSD,H1) cargado con éxito


Y no pasa nada, silencio, no oigo la tarjeta de video, suele hacer ruido cuando trabaja (usando la misma Fractal OCL como ejemplo).

Intente reducir el tamaño de la población. Ponlo en 5-10 para el experimento. Si el error desaparece, entonces auméntalo. Y encuentra experimentalmente el límite aceptable.

 
Dmitriy Gizlyk #:

Intente reducir el tamaño de la población. Ajústalo a 5-10 para el experimento. Si el error desaparece, auméntelo. Y encuentre experimentalmente el límite aceptable.

Lo intenté, lo fijé de 5 a 10, y probé uno. El mismo error:

2022.10.22 01:42:08.768 Evolution (EURUSD,H1) Error de ejecución kernel SoftMax FeedForward: 5109.


Me he dado cuenta de algo, tal vez debido a esto: al guardar un modelo, aparecen las siguientes inscripciones en la parte izquierda de la ventana: "Error de carga del modelo, Seleccionar archivo, id de error: 5004". Tal vez esto tenga algún efecto.


Además: ¡el archivo creado debería pesar 16 megabytes! Es inusual ver tales tamaños en mql.




UPD

Lo he probado en mi portátil, y tampoco quiere entrenar:

2022.10.22 13:07:36.028 Evolution (EURUSD,H1) EURUSD_PERIOD_H1_Evolution.nnw
2022.10.22 13:07:36.028 Evolution (EURUSD,H1) OpenCL: GPU device 'Intel(R) UHD Graphics' selected
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) Quedan 9 objetos sin borrar
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 1 objeto de tipo CLayer queda
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 1 objeto de tipo CNeuronBaseOCL queda
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 7 objects of type CBufferFloat left
2022.10.22 13:07:37.567 Evolution (EURUSD,H1) 2688 bytes of leaked memory

En log:

2022.10.22 13:07:34.716 Expertos experto Evolution (EURUSD,H1) cargado con éxito
2022.10.22 13:07:37.568 Expertos inicialización de Evolution (EURUSD,H1) falló con código 1
2022.10.22 13:07:37.580 Expertos experto Evolution (EURUSD,H1) eliminado


 
Ivan Butko #:

Me he dado cuenta de algo, quizá debido a esto: al guardar un modelo, aparecen las siguientes inscripciones en la parte izquierda de la ventana: "Error de carga del modelo, Seleccionar archivo, id de error: 5004". Quizás esto tenga algún efecto.


Esto no es un error, NetCreator sólo está tratando de cargar el modelo en el lado izquierdo. y no se especifica ningún archivo. El error 5004 es un error al abrir un archivo.

 
Ivan Butko #:

Lo he probado, he puesto de 5 a 10, y he probado uno. Mismo error:

2022.10.22 01:42:08.768 Evolution (EURUSD,H1) Error de ejecución kernel SoftMax FeedForward: 5109

¿Usaste todos los archivos del último artículo?

 
Dmitriy Gizlyk #:

¿Has utilizado todos los archivos del último artículo?

Sí.

Si el error está relacionado con OpenCl, quizá habría que cambiar el procesador de alguna manera, quizá no quiera
Lo he probado en diferentes terminales.

 

Cuando se prueba repetidamente la misma sección del historial del modelo entrenado , el resultado es aleatorio

Archivos adjuntos:
qoymbc.gif  928 kb
 
Ivan Butko #:

Cuando se prueba repetidamente la misma sección del historial del modelo entrenado , el resultado es aleatorio

Esto es posible con un modelo no entrenado o cuando los datos analizados no permiten decantarse por una acción. Como puede verse, el algoritmo utiliza la selección aleatoria de una acción a partir de una distribución de probabilidades. Si el modelo genera probabilidades iguales para todas las acciones, obtendremos un resultado aleatorio en la salida.

 
Dmitriy Gizlyk #:

Esto es posible con un modelo no entrenado

Para entrenar un modelo, ¿es necesario ejecutar las 1000 generaciones establecidas en la configuración? (más de un día de entrenamiento en el 3080)

 

Usted escribió: "El proceso de formación de modelos ya se ha descrito en artículos anteriores. No me detendré en ellos".

Entiendo que no quieras repetir, pero ¿podrías al menos dar a tus lectores una referencia al artículo donde pueden encontrar esa información