Discusión sobre el artículo "Programamos una red neuronal profunda desde cero usando el lenguaje MQL" - página 2

 
Anddy Cabrera #:

Hola Li,

He actualizado el artículo con 2 archivos demos. Uno para MQL5 y otro para MQL4. El DeepNeuralNetwork.mqh se puede utilizar para ambos, mql5 y mql4.


De todos modos, estoy adjuntando estos archivos aquí para mostrar cómo usarlo.


Hágamelo saber si usted tiene más preguntas.

Realmente muy buen artículo, he probado la demo y observó que sólo yValues[1] sólo puede dar valores de más de 0,5, yValues[0] y yValues[2] valores son de maxumum de 0,2 o 0,3. incluso en la optimización no más de un comercio, que es una orden de venta, se abrirá.
 
nail sertoglu #:

Gracias por los códigos que compartiste. Trató de entender la forma de su.


Tengo algunas dudas sobre yValues[0] , yValues[1], yValues[2] ya que NO están cambiando y siempre 0 ,33333 pero_xValues[1,2,3] están cambiando con la nueva barra ; así que si el comercio basado en yValues no vi NINGÚN COMERCIO mientras que el COMERCIO OCURRE cuando las condiciones basadas en _xValues.

¿Es culpa mía o simplemente un error de codificación en su código original?

Actualice la siguiente función para devolver `bool` en lugar de `void` y verá que había un mal número de pesos dados.

bool SetWeights(double &weights[])
     {
      int numWeights=(numInput*numHiddenA)+numHiddenA+(numHiddenA*numHiddenB)+numHiddenB+(numHiddenB*numOutput)+numOutput;
      if(ArraySize(weights)!=numWeights)
        {
         printf("Bad weights length (%i), expected %i", ArraySize(weights), numWeights);
         return false;
        }

Ten en cuenta que también necesitas actualizar los pesos en la parte superior del fichero (no es suficiente actualizarlos sólo cuando inicializas la red :P

#define  SIZEI 25 // entrada * oculta A
#define  SIZEA 25 // oculto A * oculto B
#define  SIZEB 15 // oculto B * salida
 
Hola Anddy,

Este es un artículo muy bueno.
Tengo algunas preguntas.
1) ¿Puedo utilizar tanto Sigmoid y Tan-h activación conduce a la salida en una neurona multicapa por la combinación?
2) ¿Es necesario actualizar los wheights en la parte superior del archivo como sugiere Karlis Balcers?
#define  SIZEI 20 // (entrada * oculto A)+oculto A
#define  SIZEA 25 // (oculto A * oculto B)+oculto B
#define  SIZEB 18 // (oculto B * salida)+salida
Nota: SIZEI debe ser 20 y SIZEB debe ser 18, ¿es correcto?
3) He adjuntado un diagrama de red neuronal profunda como se describe en este artículo, ¿es correcto?

muchas gracias


EADNN

 
Funciona como un optimizador genético, seleccionando los valores que mejoran el resultado final.
 
<Borrado>
 

Bonita animación.

Una red neuronal de dos capas es una red neuronal "superficial", no una red neuronal profunda. Las redes neuronales profundas incluyen redes con más de tres capas ocultas. Debido a las peculiaridades del entrenamiento de este tipo de redes neuronales, se han desarrollado métodos de aprendizaje profundo.

El artículo como ejemplo de programación en ACM es probablemente útil. Para familiarizarse con el tema de MLP - sin duda necesario. Como un ejemplo de aplicación de redes neuronales - no es completa y muy por detrás del estado actual del tema.

Como regla general, sin optimización de hiperparámetros red neuronal no da una calidad satisfactoria.

Simplemente no entiendo por qué construir una bicicleta de medios improvisados, si hay un mar de programas listos sobre este tema?

 
Para comprender NS es bueno y claro.
 

Corrección. Hay una definición de red profunda en el artículo. No la he visto.

El proceso de optimización de los pesos de una red neuronal mediante la genética no es literalmente "aprendizaje". Al fin y al cabo, es optimización. El entrenamiento utiliza métodos completamente diferentes. Aunque esta variante del uso de redes neuronales también se practica y con bastante éxito.

Para entender el funcionamiento de una red neuronal, es importante comprender cómo se entrena una red neuronal mediante la retropropagación del error. Bueno, ya me estoy metiendo contigo :)

Suerte

 
Muchas gracias al autor por el artículo. Como persona alejada de las redes neuronales, me ayudó mucho a entrar en la esencia de las cosas y fue muy interesante desde el punto de vista de una mayor familiarización con el tema. ¡Gracias de nuevo!
 

¿Hay alguna forma de incorporar la retropropagación de errores a esta red?

Por alguna razón existe la opinión de que una red de este tipo sería más flexible y proporcionaría mejores entradas - outputs....

Una red con retropropagación de errores no es una red completamente diferente, ¿verdad?