Discusión sobre el artículo "Redes neuronales: así de sencillo (Parte 34): Función cuantílica totalmente parametrizada"
Gracias, señor.
probado esto, y yo era capaz de compilar con éxito todo sin error.
pruebas en eurusd y obtener el error a continuación.
¿alguna idea?
2022.11.30 11:51:46.689 Core 08 genetic pass (0, 286) probado con error "OnInit returned non-zero code 1" a las 0:00:00.000
gracias
Hola, para ejecutar EA en el probador que necesita para copiar el archivo nnw a "MetaQuotes\Terminal\Common\Files" directorio.
Gracias.
Tu "productividad" es asombrosa. No te detengas.
Son personas como tú las que hacen que todo siga adelante.
P.D..
He estado leyendo las noticias de NeuroNet....
"Нейросети тоже нуждаются в состояниях, напоминающих сны.
Esta es la conclusión a la que han llegado los investigadores del Laboratorio Nacional de Los Álamos..."
Buenos días.
Usando su código hice un "Sueño" similar de NeuroNetwork.
El porcentaje de "predicho" aumentó en un 3%. ¡Para mi "Supercomp" es un vuelo al espacio!
//+------------------------------------------------------------------+ //| Sueño| //+------------------------------------------------------------------+ int Dream(int dream = 0) { Comment("!!! Dream !!! "); int sleep = (dream==0 ? 7 : dream); for(int j=0;j<sleep;j++) { TempData.Clear(); for(int b=0; b<(int)HistoryBars; b++) { if( !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0) || !TempData.Add(0) || !TempData.Add(0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) ) break; } if(TempData.Total()<(int)HistoryBars*12) return(0); Net.feedForward(TempData); Net.getResults(TempData); //-- Puedes mirar los "Sueños" de NeuroNet. switch(TempData.Maximum(0,3)) { case 0: dPrevSignal=TempData[0]; break; case 1: dPrevSignal=-TempData[1]; break; default: dPrevSignal=0; break; } //-- ... pero no es esencial. //--??? TempData.Clear(); TempData.Add(0.0); TempData.Add(0.0); TempData.Add(0.0); Net.backProp(TempData); //--??? } return(0); }
Apliqué esta función al final de cada época de entrenamiento:
if(add_loop) count++; if(!stop) { dError=Net.getRecentAverageError(); if(add_loop) { Net.Save(FileName+".nnw",dError,dUndefine,dForecast,dtStudied,true); printf("Era %d -> error %.2f %% forecast %.2f",count,dError,dForecast); } ChartScreenShot(0,(string)FileName+(string)IntegerToString(count)+".png",750,400); } Dream(SleepPeriod); //-- Dormir. printf("¡Periodo de sueño = %.2f !",SleepPeriod); }
¿Podrías probar y luego comentar cómo lo haces? ¿De repente "Sueños" podría ayudar a la IA?
P.D..
SleepPerriod=1;
He añadido a
SleepPeriod
SleepPeriod + (Delta++)
donde Delta=0. Pero mi ordenador es muy, muy débil.... :-(
- 2022.11.29
- www.mql5.com
- 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 34): Función cuantílica totalmente parametrizada:
Seguimos analizando algoritmos de aprendizaje Q distribuidos. En artículos anteriores hemos analizado los algoritmos de aprendizaje Q distribuido y cuantílico. En el primero, enseñamos las probabilidades de los rangos de valores dados. En el segundo, enseñamos los rangos con una probabilidad determinada. Tanto en el primer algoritmo como en el segundo, usamos el conocimiento a priori de una distribución y enseñamos la otra. En el presente artículo, veremos un algoritmo que permite al modelo aprender ambas distribuciones.
Este enfoque permite entrenar un modelo menos sensible al hiperparámetro del número de cuantiles, y su distribución aleatoria permitirá ampliar la gama de funciones aproximadas a las funciones distribuidas de forma no uniforme.
Antes de suministrarla a la entrada del modelo, crearemos una integración de cuantiles generados aleatoriamente usando la fórmula siguiente.
Durante la combinación de la integración resultante con el tensor de datos original, es posible que se produzcan variaciones. Puede ser una simple concatenación de 2 tensores o una multiplicación adamar (por elementos) de 2 matrices.
A continuación, le ofrecemos una comparación de las arquitecturas analizadas tal como las presentan los autores del artículo.
La eficacia del modelo queda confirmada por las pruebas efectuadas con 57 juegos de Atari. A continuación, podrá ver una tabla comparativa del artículo original [8]
Hipotéticamente, dado el tamaño ilimitado del modelo, este enfoque permitirá aprender cualquier distribución de la recompensa prevista.
Autor: Dmitriy Gizlyk