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

 
Neutron:

Adenda.

Llevó, llevó y llevó ;-)

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

...

Me hizo sonreír.

Pero todo el cálculo tarda 1 milisegundo.

En teoría, cualquier NS es equivalente a un sistema de ecuaciones. Y si es lo suficientemente simple, es más barato escribir este sistema en forma analítica y resolverlo con respecto a los pesos. Los problemas, y con ellos la necesidad de métodos de entrenamiento astutos, comienzan a surgir a medida que la red (es decir, su sistema de ecuaciones equivalente) se vuelve más compleja. Fue al darme cuenta de este hecho que una vez suspendí mi conocimiento de las redes, iniciado por interés. Simplemente decidí que primero debía inventar un modelo y sólo después buscar las formas más económicas de resolverlo. Me sigue pareciendo que la aplicación de los métodos NS sólo está justificada para modelos muy complejos :) .

 
Jhonny:

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?

Es más bien una cuestión filosófica. La cuestión es que hay un número infinito de arquitecturas NS "complejas", mientras que la más sencilla es la única. Es un perceptrón de una sola capa. En este caso se implementa con una función de activación no lineal.


al Candidato

En teoría, cualquier NS es equivalente a un sistema de ecuaciones. Y si es lo suficientemente simple, es más barato escribirlo en forma analítica y resolverlo con respecto a los pesos. Los problemas, y con ellos la necesidad de métodos de entrenamiento astutos, comienzan a surgir a medida que la red (es decir, su sistema de ecuaciones equivalente) se vuelve más compleja. Fue al darme cuenta de este hecho que una vez suspendí mi conocimiento de las redes, iniciado por interés. Simplemente decidí que primero debía plantear un modelo y sólo después buscar las formas más económicas de resolverlo. Me sigue pareciendo que la aplicación de los métodos NS sólo está justificada para modelos muy complejos :) .

Sí. También podemos mencionar la no estacionariedad inherente a los BP de mercado, que pone fin a los métodos estadísticos tradicionales y da un punto más a favor de la NS.


Por cierto, he elaborado una solución analítica de sistemas de ecuaciones para los pesos NS. La figura en negro muestra el método habitual de entrenamiento de NS por retropropagación del error (ORO) número de épocas 1000 y en azul la solución analítica. El entrenamiento de NS tiene lugar en cada paso, la predicción es un paso adelante.


Se puede ver que la variante analítica en la sección de tendencia de BP es incorrecta por razones que no entiendo. Pero el tiempo de cálculo de este problema según el método ORO es de 10 segundos, y para el método analítico es de 0,001 segundos.

El aumento de rendimiento es 10000 veces mayor.

En general, el funcionamiento de la red es fascinante. ¡Parece percibir la tendencia de los precios y atrae hacia ella, como un imán, en su previsión!

 
Neutron:
Jhonny:

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?

Es más bien una cuestión filosófica. La cuestión es que hay un número infinito de arquitecturas NS "complejas", mientras que la más sencilla es la única. Es un perceptrón de una sola capa. En este caso se implementa con una función de activación no lineal.

...

En general, el funcionamiento de la red es fascinante. Parece percibir la tendencia de los precios y atrae hacia ella, ¡como si fuera un imán!

La cuestión es, por supuesto, filosófica. Yo también soy principiante. Pero por qué no una red de probabilidad, por ejemplo. ¿Especialmente después de los conocidos acontecimientos del año pasado? Es cierto que la tarea también es diferente allí. Si la predicción se acerca al filtrado, en ese caso de un parámetro observable, entonces la estimación de la probabilidad se acerca más al filtrado de un parámetro no observable, pero resuelve a la vez el problema de la transición al dominio de las soluciones.

P.D. Por cierto, el tiempo de ejecución de una red probabilística es incomparablemente menor que el de un perceptrón multicapa, y la entrenabilidad no es peor.

P.P.D. Cuando miraba la curva de equilibrio de Better durante el campeonato, yo también estaba fascinado. :-)

 
Neutron:

Quiero profundizar... Por ejemplo, cómo se justifica la complejidad de las NS (capas ocultas).

Depende de lo que se introduzca en la entrada. Si tomamos directamente las barras (sus incrementos) del mercado - entonces estará muy justificado.


No se ve en sus ejemplos, porque sus gráficos son suaves, monótonos a trozos. Incluso tienes una "sentencia" de NS de una sola entrada. Es decir, el análogo del más primitivo sistema de trading de seguimiento de tendencias. Este problema se resuelve perfectamente sin NS. ¿Qué redes multicapa hay...

Neutrón:

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

Hay que entender que el entrenamiento NS es un problema de optimización de funciones. Y su solución analítica es mucho más complicada que la resolución de sistemas de ecuaciones. Examinar los métodos de cálculo analítico de una función de regresión lineal a partir de una variable (análogo del perceptrón más simple)... ¿Qué te parece? Ahora imagina cómo sería la solución si hay muchas variables y la función es no lineal a la enésima potencia (análogo del NS multicapa)... :-)


La NS se inventó para simplificar la vida. Y no hay que entrenar la red exactamente por retropropagación. Es el algoritmo más sencillo, pero también el más lento. Además, hay algoritmos que son órdenes de magnitud más rápidos.

 
ds2:
Neutrón:

Quiero profundizar... Por ejemplo, cómo se justifica la complejidad de las NS (capas ocultas).

Depende de lo que se introduzca en la entrada. Si tomamos directamente las barras (sus incrementos) del mercado - entonces estará muy justificado.


No se ve en sus ejemplos, porque sus gráficos son suaves, monótonos a trozos. Incluso tienes una "sentencia" de NS de una sola entrada. Es decir, el análogo del más primitivo sistema de trading de seguimiento de tendencias. Este problema se resuelve perfectamente sin NS. ¿Qué redes multicapa hay...

ds2, ¿podría dar una razón a favor del perceptrón multicapa en comparación con el monocapa, utilizado para las necesidades de previsión de BP como las de precios, si su profundidad de inmersión es la misma? Me gustaría ver el argumento en forma de gráfico de capacidad de predicción.

 
Neutron:
ds2:

Depende de lo que se introduzca en la entrada. Si se adhieren barras rectas (sus incrementos) del mercado - será muy justificado.

Eso no se ve en tus ejemplos porque tus gráficos son suaves, monótonos a trozos.

ds2, ¿podrías argumentar a favor de un perceptrón multicapa en comparación con un perceptrón de una sola capa utilizado para necesidades de previsión de BP como la fijación de precios, si su profundidad de inmersión es la misma? Me gustaría ver el argumento en forma de gráfico de capacidad de predicción.

Bueno, es obvio si entiendes cómo funciona la red. Una red de una sola capa sólo puede describir dependencias monótonas, mientras que una red multicapa puede describir cualquier dependencia.


Si comparamos las capacidades de los tipos NS y MTS conocidos, una red de una sola capa puede imitar el funcionamiento del MACD, pero sólo una red multicapa puede reconocer los patrones de Pessavento.


Puedes experimentar y ver por ti mismo. Tienes todas las herramientas y datos para ello.

 

¿Alguien ha escrito en MQL el criterio de Kolmogorov-Smirnov para estimar las entradas y la correlación de rangos de Spearman?

 
Todavía no he hecho la prueba, y la correlación de rangos no es mucho para buscar - 'Spearman's Rank Correlation Coefficient'
 
Tengo curiosidad por saber si alguien lo tiene. ¿O ya se ha mencionado esta información y me la he perdido? Ponga el enlace, por favor.

Este enlace ni siquiera es accesible al registrarse. O tal vez describa el camino hacia el Grial ;-).


http://www.maikonline.com/maik/showArticle.do?auid=VAF0AMGLSL〈=es PDF 274kb

UN MARCO DE REDES NEURONALES PARA MODELAR UNA FUNCIÓN COMPLEJA DE MUCHAS VARIABLES EN DATOS MUESTREADOS
Е. V. Gavrilova, O. A. Mishulina, M. V. Shcherbinina Izvestia RAN. Teoría y sistemas de control # 1, enero-febrero 2007, P. 73-82

Consideramos el problema de la aproximación de la función de muchas variables, que se mide contra el ruido aditivo y se caracteriza por propiedades dinámicas cualitativamente diferentes en ciertos subdominios de su definición. Proponemos la solución a este problema utilizando la estructura de red neuronal modular especializada LINA. Se formulan reglas para su entrenamiento y funcionamiento.
 

Al entrenar en Anfisedit se muestra continuamente un error:

??? Error al utilizar ==> anfisedit
Objeto de mango inválido.

??? Error al evaluar el Callback de uicontrol.

Preparado los datos, pero no por la tasa absoluta como en el artículo, sino por el tipo de vela. Si el precio de cierre de la vela del día es más alto que el precio de apertura - entonces 1, si viceversa -1. Al principio tenía 10 entradas pero mi portátil no lo sacaba. Disminuí el número de entradas como se describe en el artículo a 4, la arquitectura se muestra, todo parece estar bien, pero cuando presiono entrenar después de un par de épocas el entrenamiento se detiene, Error de Entrenamiento está escrito encima del gráfico y en la línea de comandos que escribí al principio. ¿Cuál es el problema? ¿Quizá la versión de Matlab tiene fallos? Tengo Matlab 7.0.1.24704 (R14) Servise Pack 1.

No funcionó con ANFIS, así que decidí probar con NNTool. He cargado por separado las entradas (4 entradas), por separado las salidas, especificado los parámetros, creado una red - pero al ver la arquitectura de la red, muestra que las entradas son 2. De todos modos, he pulsado el botón del tren y me ha dado un error:

Error al utilizar ==> networktrain
Las entradas están mal dimensionadas para la red.
Las matrices deben tener todas 2 filas.
¿Hay algún lugar donde se pueda fijar el número de entradas?

Razón de la queja: