Artículo: Previsión de precios con redes neuronales - página 14

 
Neutron, el efecto de suavización de aumentar el número de entradas es legítimo. Pero el retraso puede venir determinado por muchos factores, tanto por la falta de estas entradas como por las posibles imperfecciones de la red, tal vez el subentrenamiento. Otra cosa es que esto, con todos los "+" a los criterios anteriores, dé un desfase.
 
Neutron:

Esto muestra los resultados de la prueba de la capacidad de predicción de los dos NS.


La figura muestra en rojo la serie temporal original (RT), en azul la predicción a 1 bar adelante de la red lineal de una capa, y en verde la red no lineal de dos capas. La profundidad de la inmersión es la misma en ambos casos. Se puede observar que para este caso artificial hay un marcado residuo de los datos predichos en el gráfico de tendencia de la PA. Me pregunto si mis colegas experimentados observan este efecto y, si es así, con qué podría estar relacionado.

Su red se comporta de forma extraña: recibe el mismo conjunto de datos de entrada en la sección de tendencia y obtiene previsiones diferentes (obtiene una línea discontinua en el gráfico cuando debería ser recta). En este sentido, las preguntas son:

1) ¿cuántas neuronas hay en las capas intermedias de la red?

2) ¿cuántas entradas?

3) ¿qué se introduce en las entradas?


En cuanto al retraso en las predicciones sobre la tendencia. Así es como se supone que funciona. Has introducido en la red unos 30 vectores de entrenamiento, en los que los valores ascendentes consecutivos de 0,1 generaban una subida de 0,1, y has introducido un vector en el que los mismos valores ascendentes consecutivos generaban una bajada de 3. Has entrenado la red con datos inconsistentes. Así que promedió esas 31 predicciones contradictorias suyas...


También construí un NS de 2 capas. Con 3 entradas y 3 neuronas intermedias. Las entradas eran valores incrementales. Para comparar, entrené esta red una vez con todos los datos, y la segunda vez excluí del entrenamiento los valores atípicos, es decir, todos los vectores de entrenamiento que contenían valores demasiado grandes en las entradas, es decir, que colapsaban muy bruscamente por 3. La diferencia es evidente:

 
rip:
slava1:
Bueno, se puede discutir durante mucho tiempo sobre quién entiende lo que entiende, o no entiende. La conversación versó sobre la preparación de los datos. Entiendo que nadie quiera discutir este tema aquí. Pity

Si quieres dar una conferencia sobre cómo preparar los datos para el entrenamiento de NS, no creo que deba hacerse en este foro, no mucha gente estaría interesada en ello aquí.

Creo que sería interesante leer la experiencia de los profesionales, cómo lo hacen

 
ds2:

Su red se comporta de forma extraña: recibe el mismo conjunto de datos de entrada en la sección de tendencia, pero da previsiones diferentes (aparece como una línea discontinua en el gráfico, mientras que debería ser recta). En este sentido, las preguntas son:

1) ¿cuántas neuronas hay en las capas intermedias de la red?

2) ¿cuántas entradas?

3) ¿qué se introduce en las entradas?


En cuanto al retraso en las predicciones sobre la tendencia. Así es como se supone que funciona. Has introducido en la red unos 30 vectores de entrenamiento, en los que los valores ascendentes consecutivos de 0,1 generaban una subida de 0,1, y has introducido 1 vector en el que los mismos valores ascendentes consecutivos generaban una bajada de 3. Has entrenado la red con datos inconsistentes. Así que promedió esas 31 predicciones contradictorias suyas...


También construí un NS de 2 capas. Con 3 entradas y 3 neuronas intermedias. Las entradas eran valores incrementales. Para comparar, entrené esta red una vez con todos los datos, y la segunda vez excluí del entrenamiento los valores atípicos, es decir, todos los vectores de entrenamiento que contenían valores demasiado grandes en las entradas, es decir, que colapsaban muy bruscamente por 3. La diferencia es evidente:

ds2, y todos los que han respondido, muchas gracias por su atención y sus sensatos consejos, han sido de gran ayuda. El caso es que he limitado el número de ciclos de entrenamiento (creo que se llama Epochs) a 100 veces para acelerar la previsión en mi red. Por supuesto, eso no era suficiente, por lo que la red no aprendía correctamente. Después de aumentar el número de épocas a 1000, todo funcionó bien, tic a tic (bueno, casi).

Tengo una red de dos capas con no linealidad en forma de tangente hiperbólica, con el número de neuronas en una capa oculta 2 y el número de sinapsis d*2+2, donde d es una dimensión de la entrada NS. Tengo d=2, para el caso mostrado en la fig. y el número de vectores de entrenamiento es 6. El número de vectores en la muestra de entrenamiento es igual al número de sinapsis, por lo que veo, que la red no se reentrena y no trata de suavizar el pronóstico, lo que permite el seguimiento de los saltos de precios con mayor eficacia. Para el entrenamiento también introduje una secuencia de valores incrementales como entrada. Todavía no estoy familiarizado con el fino arte de preparar los datos de entrada (me refiero a su "picos excluidos del entrenamiento por segunda vez") pero espero dominar este arte muy pronto.

Este es un resultado interesante:


Es una predicción de un paso hacia adelante con reentrenamiento en cada paso de un NS no lineal de una sola capa con UNA entrada y una muestra de entrenamiento = 2 vectores con un elemento en cada uno.

Estoy impresionado ....

Resulta que las Redes Neron y la Inteligencia Artificial no son simples, sino muy simples.

 
Neutron:
ds2:

Su red se comporta de forma extraña: recibe el mismo conjunto de datos de entrada en la sección de tendencia, pero da previsiones diferentes (aparece como una línea discontinua en el gráfico, mientras que debería ser recta). En este sentido, las preguntas son:

1) ¿cuántas neuronas hay en las capas intermedias de la red?

2) ¿cuántas entradas?

3) ¿qué se introduce en las entradas?


En cuanto al retraso en las predicciones sobre la tendencia. Así es como se supone que funciona. Has introducido en la red unos 30 vectores de entrenamiento, en los que los valores ascendentes consecutivos de 0,1 generaban una subida de 0,1, y has introducido 1 vector en el que los mismos valores ascendentes consecutivos generaban una bajada de 3. Has entrenado la red con datos inconsistentes. Así que promedió esas 31 predicciones contradictorias suyas...


También construí un NS de 2 capas. Con 3 entradas y 3 neuronas intermedias. La entrada fue alimentada con valores incrementales. Para comparar, entrené esta red una vez con todos los datos, y la segunda vez excluí del entrenamiento los valores atípicos, es decir, todos los vectores de entrenamiento que contenían valores demasiado grandes en las entradas, es decir, que colapsaban muy bruscamente por 3. La diferencia es evidente:

ds2, y todos los que han respondido, muchas gracias por su atención y sus sensatos consejos, han sido de gran ayuda. El caso es que he limitado el número de ciclos de entrenamiento (creo que se llama Epochs) a 100 veces para acelerar la previsión en mi red. Por supuesto, eso no era suficiente, por lo que la red no aprendía correctamente. Después de aumentar el número de épocas a 1000, todo funcionó bien, tic a tic (bueno, casi).

Tengo una red de dos capas con no linealidad en forma de tangente hiperbólica, con el número de neuronas en una capa oculta 2 y el número de sinapsis d*2+2, donde d es una dimensión de la entrada NS. Tengo d=2, para el caso mostrado en la fig. y el número de vectores de entrenamiento es 6. El número de vectores en la muestra de entrenamiento es igual al número de sinapsis, por lo que veo, que la red no se reentrena y no trata de suavizar el pronóstico, lo que permite el seguimiento de los saltos de precios con mayor eficacia. Para el entrenamiento también introduje una secuencia de valores incrementales como entrada. Todavía estoy lejos del fino arte de la preparación de los datos de entrada (me refiero a su "exclusión de los picos de entrenamiento por segunda vez"), pero espero aprender pronto el truco.

Para mejorar la muestra, intente ampliar la serie de entrenamiento, por ejemplo, mediante este principio:

hay dos valores adyacentes de la serie - x1,x2 en el intervalo que suman x1,2 = (x1+x2)/2


Este método funciona bien para las series temporales con alta correlación de los valores vecinos.

El caso de un flujo de citas es precisamente eso.

 
Neutron:


Este esun resultado interesante:


Se trata de una predicción de un paso hacia adelante con reentrenamiento en cada paso de un NS no lineal de una sola capa con UNA entrada y una muestra de entrenamiento = 2 vectores con un elemento en cada uno.

Estoy impresionado...


¿Puedo pedirle que publique el archivo de datos en bruto a partir del cual se generaron los vectores de entrenamiento?

 

Cómo debe ser el formato del archivo para poder leerlo. La cuestión es que escribo mi propio NS desde cero y utilizo los datos en un formato con el que me siento cómodo.


Для улучшения выборки попробуйте расширить обучающий ряд, скажем по такому принципу:

Hay dos valores adyacentes de una serie - x1,x2 entre los que se suma x1,2 = (x1+x2)/2

Este método funciona bien en series temporales, con alta correlación de valores adyacentes.

El caso de las cotizaciones en streaming es precisamente eso.

Este caso es adecuado para series correlacionadas positivamente. El precio VR tiene una correlación negativa significativa entre las muestras vecinas, por lo que este método no será correcto.

Una cosa más. Sería bueno que los estimados usuarios del foro publicaran argumentos fundamentados a favor de la mayor capacidad de predicción de la NS de 2 capas en relación con la de una sola capa, en igualdad de condiciones.

Como opción. A continuación puede encontrar un archivo zip con un vector de prueba, que se muestra en la Fig. Córtelo usted mismo como le parezca.

Archivos adjuntos:
rnd.zip  1 kb
 
Neutron:

Estoy impresionado...

Resulta que las Redes Nero y la Inteligencia Artificial no son justas, ¡sino muy sencillas!


Todavía no he intentado aplicar prácticamente NS (aunque parece que me han llevado allí en el contexto de la última idea), pero desde una perspectiva humana el vector de prueba consiste en dependencias muy simples (unos dos o tres parámetros) y debería ser muy fácilmente aproximado a trozos. Sospecho que eso es exactamente lo que hace NS. La reordenación rápida puede ser una consecuencia de la simpleza de NS, es decir, en este caso la memoria corta es la felicidad.

 

En general, Candid, estoy de acuerdo contigo, pero quiero profundizar... Por ejemplo, cómo se justifica la complicación de NS (capas ocultas).

Y, en realidad, ¡estoy loco! La cuestión es que si se representa la no linealidad de NS de una forma determinada, se puede obtener la solución analítica exacta para los pesos. Esto, a su vez, significa que será posible rechazar el método de Propagación Inversa del Error para el entrenamiento de la red y obtener el resultado más preciso posible en una sola acción, ¡¡¡sin que haya 1000 épocas de entrenamiento!!!


P.D. Se me olvidó advertir que uso una sinapsis con un nivel de excitación constante en cada neurona.


Adenda.

Lo trajo, lo trajo y lo llevó ;-)

Esta es la solución analítica "FINA" para las escalas de un NS no lineal de una sola capa:

Me hizo sonreír.

Pero todo el cálculo tarda un milisegundo.
 

Explíqueme esto como "neurocientífico" novato... Entiendo que la red en cuestión es un perceptrón multicapa.

¿Cuál es la razón para elegir este tipo de red, por qué no Hopfield o Kohonen u otra cosa?

Razón de la queja: