Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 27): Aprendizaje Q profundo (DQN)"

 

Artículo publicado Redes neuronales: así de sencillo (Parte 27): Aprendizaje Q profundo (DQN):

Seguimos explorando el aprendizaje por refuerzo. En este artículo, hablaremos del método de aprendizaje Q profundo o deep Q-learning. El uso de este método permitió al equipo de DeepMind crear un modelo capaz de superar a los humanos jugando a los videojuegos de ordenador de Atari. Nos parece útil evaluar el potencial de esta tecnología para las tareas comerciales.

Probablemente ya habrá adivinado que el aprendizaje Q profundo consiste en utilizar una red neuronal para aproximar una función Q. ¿En qué consiste la ventaja de este enfoque? Recordemos la implementación del método de entropía cruzada tabular en el último artículo: en él destacamos que la aplicación del método tabular supone un número finito de estados y acciones posibles. Obviamente, hemos limitado el número de estados posibles al clusterizar los datos de origen. ¿Pero es esto tan bueno? ¿La clusterización nos ofrecerá siempre mejores resultados? Al mismo tiempo, el uso de una red neuronal no pone un límite al número de estados posibles que tenemos delante, y en el caso de las tareas comerciales, parece que esto supone una gran ventaja.

Aquí diríamos que el enfoque obvio consiste en tomar la tabla del artículo anterior y sustituirla por una red neuronal, pero, por desgracia, no resulta tan sencillo. En la práctica, este enfoque no es tan bueno como parece a primera vista. Para aplicarlo, deberemos añadir algunas heurísticas.

En primer lugar, veremos el objetivo del entrenamiento de nuestro agente. En general, consiste en maximizar la recompensa total. Echemos un vistazo a la figura: El agente se moverá de la casilla Start a la casilla Finish, y obtendrá una única recompensa cada vez que entre en la casilla Finish. En todos los demás estados, la recompensa será cero.

Factor de descuento

La ilustración muestra dos rutas: para nosotros, resulta evidente que la ruta naranja es más corta y preferible. Sin embargo, desde el punto de vista de la maximización de la recompensa, son equivalentes.

Autor: Dmitriy Gizlyk

 

Для тестирования была создана сверточная модель следующей архитектуры:

  1. Capa de datos de origen, 240 elementos (20 velas, 12 neuronas por descripción de una vela).
  2. Capa convergente, ventana de datos fuente 24 (2 velas), paso 12 (1 vela), salida 6 filtros.
  3. Capa convergente, ventana de datos fuente 2, paso 1, 2 filtros.
  4. Capa convergente, ventana de datos fuente 3, paso 1, 2 filtros.
  5. Capa convergente, ventana de datos de origen 3, paso 1, 2 filtros.
  6. Capa neuronal totalmente conectada de 1000 elementos.
  7. Capa neuronal totalmente conectada de 1000 elementos.
  8. Capa totalmente conectada de 3 elementos (capa de resultados para 3 acciones).

¿Alguien ha descubierto cómo hacer esto?

Tengo Transfer Lerning, funciona, compilado, pero ¿cómo crear un modelo de este tipo en él?

Estoy probando modelos de artículos anteriores, no me valen
 
Ivan Butko #:

¿Alguien ha descubierto cómo hacerlo?

Tengo Transfer Lerning, funciona, compilado, pero ¿cómo crear un modelo de este tipo en él?

He probado con los modelos de los artículos anteriores, no me valen

1. Inicia TransferLearning.
2. NO abra ningún modelo.
3. 3. Simplemente introduce un nuevo modelo, como añadir nuevas capas neuronales.
4. Haz clic en guardar modelo y especifica el nombre del archivo que cargarás desde el programa.

 
Dmitriy Gizlyk #:

1. Inicie TransferLearning.
2. NO abra ningún modelo.
3. 3.Simplemente introduzca un nuevo modelo, como añadir nuevas capas neuronales.
4. Haz clic en guardar modelo y especifica el nombre del archivo que cargarás desde el programa.

¿Qué tipo de capas y qué seleccionar? Tienes varios tipos y varios parámetros ahí




Elige cualquiera, guarda bajo "EURUSD_PERIOD_H1_Q-learning.nnw", ejecuta Q-learning.mq5, escribe en el log.


2022.10.14 15:09:51.743 Expertos inicializacion de Q-learning (EURUSD,H1) fallo con codigo 32767 (parametros incorrectos)

Y en la pestaña Expertos:

2022.10.14 15:09:51.626 Q-learning (EURUSD,H1) OpenCL: GPU device 'NVIDIA GeForce RTX 3080' selected
2022.10.14 15:09:51.638 Q-learning (EURUSD,H1) EURUSD_PERIOD_H1_Q-learning.nnw

 

Hola, Sr. Gizlyk. En primer lugar, quisiera darle las gracias por su bien fundamentada serie. Sin embargo, como un recién llegado tengo que luchar con algunos problemas en la comprensión de su artículo actual. Después de que pude reconstruir el archivo VAE.mqh y la clase CBufferDouble de tus artículos anteriores, puedo compilar tu aplicación de ejemplo de este artículo. Para probar intenté crear una red con tu programa NetCreater. Me di por vencido después de muchos intentos. Las redes guardadas no fueron aceptadas por su aplicación de este artículo. ¿No podrías ofrecer también la red que creaste para descargar? Gracias de nuevo por su trabajo.

 
sfonti #:

Hola Sr. Gizlyk, En primer lugar, quisiera darle las gracias por su bien fundamentada serie. Sin embargo, como un recién llegado tengo que luchar con algunos problemas en la comprensión de su artículo actual. Después de que pude reconstruir el archivo VAE.mqh y la clase CBufferDouble de tus artículos anteriores, puedo compilar tu aplicación de ejemplo de este artículo. Para probar intenté crear una red con tu programa NetCreater. Me di por vencido después de muchos intentos. Las redes guardadas no fueron aceptadas por su aplicación de este artículo. ¿No podrías ofrecer también la red que creaste para descargar? Gracias de nuevo por su trabajo.

el mismo problema aquí .. el archivo cargado siempre dañado .. ¿encuentras la solución?
 
Hola. ¿Puedes decirme cómo organizar la capa de datos de origen. ¿Es una capa totalmente conectada de 240 neuronas?
 
star-ik #:
Hola. ¿Puedes decirme cómo organizar la capa de datos de origen. ¿Es una capa totalmente conectada de 240 neuronas?

Como capa de datos de origen se utiliza una capa normal totalmente conectada.

 

Buenas tardes.

Después de la formación no se guarda, modelo entrenado:,

2024.06.01 01:12:26.731 Q-aprendizaje (XAUUSD_t,H1) XAUUSD_t_PERIOD_H1_Q-aprendizaje.nnw

2024.06.01 01:12:26.833 Q-learning (XAUUSD_t,H1) Iteración 980, pérdida 0.75659

2024.06.01 01 01:12:26.833 Q-learning (XAUUSD_t,H1) Llamada a la función ExpertRemove()

Intentando ejecutar el error del probador:

2024.06.01 01 01:16:31.860 Core 1 2024.01.01 01 00:00:00 XAUUSD_t_PERIOD_H1_Q-learning-test.nnw

2024.06.01 01 01:16:31.860 Core 1 testerdetenido porque OnInit devuelve código distinto de cero 1

2024.06.01.01 01:16:31.861 Núcleo 1 desconectado

2024.06.01.01 01:16:31.861 Núcleo 1 conexión cerrada

Ayuda por favor, ¿quién se ha encontrado con este tipo de cómo resolver el problema?