Discusión sobre el artículo "Redes neuronales: así de sencillo" - página 7

 

Por desgracia, una red neuronal no es una panacea. En el sentido de que si introduces basura en su entrada, obtendrás basura en la salida, por mucho que la entrenes y por muchas capas que no hagas.

Llamo así a todos los indicadores integrados en el terminal de trading y a todos los métodos habituales de techanálisis, que intentan predecir su futuro a partir del comportamiento pasado de los precios.

Es por eso que la correcta selección de las señales de entrada es la base del éxito cuando se utiliza NS en el comercio. Incluso la arquitectura de la NS no es tan importante como buenas señales de entrada (puedes tirarme piedras:) ).


P.D. Me gustaría ver un artículo sobre el uso del aprendizaje por refuerzo.

Estoy tratando de moverme en esta dirección a mí mismo, así que necesito información adicional de personas con conocimientos.

 
Sería genial si alguien pudiera hacer un uso práctico de este artículo
 

¿Hay algún problema con la función de retropropagación?

Estoy construyendo un experto muy simple utilizando esta biblioteca, pero la capa de salida siempre da los mismos valores ... estoy usando sólo dos capas de salida.

//--- abierto
   m_Trade.SetExpertMagicNumber(symbol.magicnumber);
   
   BackPropagation(symbol);
   
   CArrayDouble *inputVals = new CArrayDouble();
   
   for(int i=0;i<inputNeurons;i++)inputVals.Add((iClose(symbol.name,PERIOD_CURRENT,i)-iClose(symbol.name,PERIOD_CURRENT,i+1))/iClose(symbol.name,PERIOD_CURRENT,i+1));
   
   symbol.Net.feedForward(inputVals);
   
   CArrayDouble *results = new CArrayDouble();
   
   symbol.Net.getResults(results);
   
   Print(results.At(0)," ",results.At(1));
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void BackPropagation(CSymbol &symbol)
{
   
   CArrayDouble *targetVals = new CArrayDouble();
     
   if(iClose(symbol.name,PERIOD_CURRENT,0)-iClose(symbol.name,PERIOD_CURRENT,1) > 0)
   {
      targetVals.Add(1);targetVals.Add(0);
   }
   else
   {
      targetVals.Add(0);targetVals.Add(1);
   }
   
   symbol.Net.backProp(targetVals);
}


Sería genial si alguien me pudiera decir si me estoy perdiendo un paso en el proceso.

Gracias.

 
Seguía lanzando fugas de memoria. Estoy trabajando en mi propio modelo rynna
 
Vitaliy davydov :

Por desgracia, la red neuronal no es una panacea. En el sentido de que si se alimenta basura a su entrada, entonces se recibirá basura a la salida, no importa cuántos no la entrenen o cuántas capas no lo hagan.

Y yo llamo basura a todos los indicadores incorporados en el terminal de negociación, y a todos los métodos habituales de análisis técnico que tratan de predecir su futuro a partir del comportamiento pasado de los precios.

Por lo tanto, la correcta selección de las señales de entrada es la base del éxito cuando se utiliza NS en el comercio. Incluso la arquitectura del NS no es tan importante como unas buenas señales de entrada (puedes dejarme las piedras :)).


PD Me gustaría ver un artículo sobre el uso del entrenamiento de refuerzo.

Yo mismo estoy tratando de avanzar en esta dirección, por lo que necesito información adicional de personas con conocimientos.

A mí también. Pero pensé que la mejor manera de entender y crear mi propio algoritmo de aprendizaje por refuerzo es entender primero cómo aprenden las redes neuronales.

PS: Creo indicadores personalizados basados en la acción del precio puro y leer mis resultados de cálculo de EA. Una buena manera de utilizar dos hilos.✔✔

 
Nelson Wanyama:
Seguía lanzando fugas de memoria. Estoy trabajando en mi propio modelo rynna

El modelo está listo. Por favor, encontrar la fuente y un ejemplo de trabajo simple de https://www.mql5.com/en/forum/338341/page4#comment_17770620

Es un proyecto en curso. Es posible que desee visitar el hilo de vez en cuando para obtener algunas actualizaciones sorprendentes que todavía están en desarrollo.

The Ultimate AI EA Project
The Ultimate AI EA Project
  • 2020.07.14
  • www.mql5.com
Hello everyone. I would like to call upon every worthy programmer and trader to a crucial mission...
 
Dmitriy Gizlyk:

La técnica de los 5 Porqués se construye a partir de preguntas secuenciales en las que cada pregunta responde a la razón de la pregunta anterior. Por ejemplo, observamos un gráfico y un gráfico de precios al alza y y construimos preguntas (las preguntas se responden en abstracto para explicar la técnica):
1. Dónde operar - Comprar
2. ¿Por qué comprar? - Porque es una tendencia alcista
3. ¿Por qué una tendencia alcista? - La MA50 está subiendo
4. ¿Por qué está subiendo la MA50? - El precio medio de cierre de 50 velas con un desplazamiento de 1 es inferior al precio medio de cierre de las últimas 50 velas.

etc.
Como las preguntas son secuenciales y tienen una relación causa-efecto, creamos capas para seguir esta relación. Si utilizamos sólo 2 capas, la relación causa-efecto se pierde, la red neuronal analiza varias opciones independientes y elige la mejor.

Leo esto y pienso: esto parece tener sentido.

Pero no lo tiene. Hago una red neuronal con 1 capa, y produce buenos resultados. Añado una segunda capa, y el resultado es peor.

Así que el número de capas no lo determina el razonamiento lógico, sino el resultado del trabajo. Tú no tienes el resultado del trabajo, no has pensado si es una estrategia, por eso te parece que es algo con algo.

También. ¿Por qué crees que comprar y vender son diferentes decisiones de la red neuronal? Comprar y vender son la misma decisión de comprar un activo. De lo contrario, es un completo disparate. ¿Vas a introducir valores negativos del oscilador en las entradas para obtener la salida menor que cero, y valores positivos para obtener la salida mayor que cero? Pero en realidad, si el oscilador está por debajo de cero, es una zona de sobreventa, y deberías comprar, no vender.

En resumen, piense en el resultado, y las cosas irán inmediatamente en otra dirección. Pobre, pobre Rosenblat...

 
Evgeniy Scherbina:

Leo esto y pienso: esto parece tener sentido.

Pero no lo tiene. Hago una red neuronal con 1 capa, y produce buenos resultados. Añado una segunda capa, y el resultado es peor.

Así que el número de capas no se determina por razonamiento lógico, sino por el resultado del trabajo. No tienes el resultado del trabajo, no has pensado si es una estrategia, así que crees que es algo con algo.

También. ¿Por qué crees que comprar y vender son decisiones de redes neuronales diferentes? Comprar y vender son la misma decisión de comprar un activo. De lo contrario, es un completo disparate. ¿Vas a introducir valores negativos del oscilador en las entradas para obtener la salida menor que cero, y valores positivos para obtener la salida mayor que cero? Pero en realidad, si el oscilador está por debajo de cero, es una zona de sobreventa, y deberíamos comprar, no vender.

En resumen, piense en el resultado, y las cosas irán inmediatamente en otra dirección. Pobre, pobre Rosenblat...

Usando 1 neurona llegas a la función de autocorrelación.
Y hablando de comprar y vender, sí, en ambos casos es sólo comprar diferentes activos. Y la red neuronal toma la decisión de comprar uno u otro activo en base al análisis de los mismos datos alimentados a la entrada. Y la decisión se toma en base al análisis de la muestra de entrenamiento. En el transcurso del entrenamiento, los coeficientes de ponderación cambian, y su signo puede cambiar al signo contrario.

 
Aleksey Mavrin:

El método 5 es similar a un árbol de decisión, también el área de búsqueda de una solución/causa se reduce gradualmente. Aún así, no está claro cómo se relaciona con el hecho de que en el NS se utilicen 4 capas en dicha estructura. Entiendo que la estructura sería complicada, por ejemplo, la segunda capa se alimenta con la salida sumada de la primera capa y la señal de entrada sin cambios, etc.

¿Puede decirme si se ha basado en algún otro trabajo para elegir el número de capas? ¿O se trata de tus conocimientos técnicos?

s.s. El trabajo es bueno, gracias.

¿Puede responder a eso?

 
Aleksey Mavrin:

¿Puede responder a eso?

Método 5-Por qué se da en sentido figurado. El número de capas suele elegirse experimentalmente. En la literatura se menciona que las redes con una capa oculta se utilizan para problemas en los que los objetos se pueden dividir en 2 partes linealmente. Aumentar el número de capas permite resolver problemas más complejos.