Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 286

 
Mihail Marchukajtes:
Y ahora lo veo. En otras palabras, formemos primero, digamos, una red sin maestro. A continuación, escribimos los valores obtenidos en las ponderaciones del clasificador y luego el clasificador se entrena aún más con un maestro. Supongamos que hemos recibido los pesos del ajuste fino guiado por las neuronas, los pesos siguen siendo optimizados????? En otras palabras, mediante el preaprendizaje sin profesor establecemos pesos iniciales para el clasificador que lo llevan al mínimo global. ¿Es así como funciona?

El aprendizaje "profundo" tiene sentido debido a la atenuación (sigmoide) / crecimiento explosivo (hipertangente) de las derivadas durante la retropropagación, cuando las capas llegan a ser significativamente más de 4-5, este problema se sorteó con una "muleta" de preentrenamiento capa por capa mediante autocodificadores o RBM, que esencialmente realizan una selección jerárquica de características no lineales (como el PCA sólo que no lineal y muchas veces), que luego pueden ser fácilmente manejadas por las capas de alto nivel, y luego por el habitual backprop afinar rápidamente todo el sistema por el conjunto de objetivos (con un maestro).

Véase: https://www.youtube.com/watch?v=iowsPfk7uUY

Por supuesto, hay un montón de "expertos" con artículos y se comieron sus perros en ZZ, que saben de memoria qué paquete en R se debe utilizar en todos los casos, así que voy a decir en el aire, nadie me va a creer de todos modos, Las redes neuronales profundas, como la CNN, cuando se entiende cómo funcionan, no se pueden utilizar para la previsión del mercado, porque una jerarquía tan grande de características sólo es necesaria para las imágenes, los vídeos y la PNL, porque hay una gran jerarquía, nuestro mundo está construido así, los objetos están hechos de objetos, etc. lo mismo con la PNL porque el lenguaje es jerárquico. No hay nada de eso en el mercado, tú operas un tipo de marco temporal, lo que pasa en los más pequeños es ruido para ti. Los inversores toman una decisión en un marco temporal, no dependen de lo que hayan decidido los scalpers y los HFT, y mucho menos los hedgers, los arbitrajistas, etc. Y la jerarquía en la red profunda implica coherencia, lo pequeño define lo grande, una avalancha está formada por copos de nieve.

11. Data mining. Глубокие нейронные сети
11. Data mining. Глубокие нейронные сети
  • 2015.11.24
  • www.youtube.com
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Методы обработки больших объемов данных" (осень 2015) Лекция №11 - "Глубокие нейронные сети" Лектор ...
 
Gianni:

Se ve bien, pero es un poco caro.

1 Me gustaría practicar en algo libre y ver cómo funciona en tiempo real sin lag, y hay una demo con un lag gigantesco.

2 ¿Puede describir en pocas palabras cómo se utiliza dicha señal en el comercio y el MO? Si no es un secreto, cuando se publican noticias importantes, ¿tienes tiempo para operar, o alguien empieza a llegar al mercado un segundo, medio segundo antes y muerde el anzuelo?

1 Par con sitios web.

2 Comprar mejor de lo esperado, vender peor de lo esperado.

 
El:

El aprendizaje "profundo" tiene sentido debido a la atenuación (sigmoide) / crecimiento explosivo (hipertangente) de las derivadas durante la retropropagación, cuando las capas llegan a ser significativamente más de 4-5, este problema se sorteó con una "muleta" de preentrenamiento capa por capa mediante autocodificadores o RBM, que esencialmente realizan una selección jerárquica de características no lineales (como el PCA sólo que no lineal y muchas veces), que luego pueden ser fácilmente manejadas por las capas de alto nivel, y luego por el habitual backprop afinar rápidamente todo el sistema por el conjunto de objetivos (con un maestro).

Véase: https://www.youtube.com/watch?v=iowsPfk7uUY

Por supuesto, hay un montón de "expertos" con artículos y se comieron sus perros en ZZ, que saben de memoria qué paquete en R se debe utilizar en todos los casos, así que voy a decir en el aire, nadie me va a creer de todos modos, Las redes neuronales profundas, como la CNN, cuando se entiende cómo funcionan, no se pueden utilizar para la previsión del mercado, porque una jerarquía tan grande de características sólo es necesaria para las imágenes, los vídeos y la PNL, porque hay una gran jerarquía, nuestro mundo está construido así, los objetos están hechos de objetos, etc. lo mismo con la PNL porque el lenguaje es jerárquico. No hay nada de eso en el mercado, tú operas un tipo de marco temporal, lo que pasa en los más pequeños es ruido para ti. Los inversores toman una decisión en un marco temporal, no dependen de lo que hayan decidido los scalpers y los HFT, y mucho menos los hedgers, los arbitrajistas, etc. Y la jerarquía en la red profunda implica coherencia, que lo pequeño define lo grande, los copos de nieve conforman la avalancha.

Gracias, definitivamente veré el video. Pero me gustó más el enfoque de Reshetov. Me encontré con su artículo donde explica en detalle cómo se configura su predictor, así. Estoy deseando rehacer el código del artículo. De eso se encarga un moderador. Y bienvenido al debate, porque tengo mi propia opinión sobre la preparación de datos y la formación en general.....
 
El:

El aprendizaje "profundo" tiene sentido debido a la atenuación (sigmoide)/crecimiento explosivo (hipertangente) de las derivadas durante la retropropagación, cuando las capas llegan a ser significativamente más de 4-5, este problema se sortea con una "muleta" de preaprendizaje capa por capa mediante autocodificadores o RBM, que esencialmente realizan una selección jerárquica de características no lineales (como el PCA sólo que no lineal y muchas veces), que luego pueden ser fácilmente manejadas por las capas de alto nivel, y luego por el habitual backprop afinar rápidamente todo el sistema por el conjunto de objetivos (con un maestro).

Véase: https://www.youtube.com/watch?v=iowsPfk7uUY

Por supuesto, hay un montón de "expertos" con artículos y se comieron sus perros en ZZ, que saben de memoria qué paquete en R se debe utilizar en todos los casos, así que voy a decir en el aire, nadie me va a creer de todos modos, Las redes neuronales profundas, como la CNN, cuando se entiende cómo funcionan, no se pueden utilizar para la previsión del mercado, porque una jerarquía tan grande de características sólo es necesaria para las imágenes, los vídeos y la PNL, porque hay una gran jerarquía, nuestro mundo está construido así, los objetos están hechos de objetos, etc. lo mismo con la PNL porque el lenguaje es jerárquico. No hay nada de eso en el mercado, tú operas un tipo de marco temporal, lo que pasa en los más pequeños es ruido para ti. Los inversores toman una decisión en un marco temporal, no dependen de lo que hayan decidido los scalpers y los HFT, y mucho menos los hedgers, los arbitrajistas, etc. Y la jerarquía en la red profunda implica coherencia, que lo pequeño define lo grande, los copos de nieve forman una avalancha.

Por alguna razón, la conversación se desliza constantemente hacia una discusión sobre los méritos y deméritos de uno u otro modelo.

Aunque mi experiencia no es tan amplia, la contribución de los modelos por sí mismos al éxito de las operaciones es muy pequeña.

Es la definición del objetivo y sus predictores lo que lo define.

Sobre el ejemplo de ZZ, he intentado muchas veces demostrar que incluso una variable objetivo tan obvia, ilustrativa y hermosa como ZZ no es la misma y tiene obstáculos insuperables al examinarla más de cerca.

Si hablamos de predictores, es bastante obvio para mí, como persona que se ha dedicado a la economía toda su vida, que:

  • el predictor debe ser relevante para la variable objetivo - capacidad de predicción para la variable objetivo
  • el predictor debe estar por delante de la variable objetivo

Si uno se concentra únicamente en resolver estos dos fundamentos para la predicción económica y de divisas, entonces el éxito sólo vendrá de estos dos parámetros. Y la selección del modelo que mejor se ajusta al objetivo y a sus predictores puede mejorar sólo marginalmente el rendimiento, puede dar algunas consideraciones válidas sobre la vida del modelo sin reentrenamiento.


Una vez más, pido que se centren en la variable objetivo y en la justificación de los predictores para esta variable objetivo concreta.

PS.

Entrar en las interrelaciones de los pares de divisas. Me ha dado unos resultados sorprendentes. En particular:

  • Los pares de divisas EURUSD y GBPUSD no están relacionados entre sí. Y esto a pesar de la correlación ampliamente publicada. Construir modelos VAR sobre estos pares es inútil.
  • El AUDUSD no tiene nada que ver con los principales pares de divisas.

 
SanSanych Fomenko:

Entrando en la interrelación de los pares de divisas. Me ha dado unos resultados sorprendentes. En particular:

  • Los pares de divisas EURUSD y GBPUSD no están relacionados entre sí. Y esto a pesar de la correlación ampliamente publicada. Construir modelos VAR sobre estos pares es inútil.
  • El AUDUSD no tiene nada que ver con los principales pares de divisas.

probablemente sería correcto decir la razón de tales inferencias
 
SanSanych Fomenko:

Por alguna razón, la conversación deriva constantemente hacia una discusión sobre los méritos y deméritos de ciertos modelos.

Aunque mi experiencia me dice que la contribución al éxito del comercio es muy pequeña.

Es la definición del objetivo y sus predictores lo que lo define.

Sobre el ejemplo de ZZ, he intentado muchas veces demostrar que incluso una variable objetivo tan obvia, ilustrativa y hermosa como ZZ no es lo mismo y tiene obstáculos insuperables al examinarla más de cerca.

Si hablamos de predictores, es bastante obvio para mí, como persona que se ha dedicado a la economía toda su vida, que:

  • un predictor debe ser relevante para la variable objetivo - capacidad de predicción para la variable objetivo
  • el predictor debe estar por delante de la variable objetivo

Si uno se concentra únicamente en resolver estos dos fundamentos para la predicción económica y de divisas, entonces el éxito sólo vendrá de estos dos parámetros. Y la selección del modelo que mejor se ajusta al objetivo y a sus predictores puede mejorar sólo marginalmente el rendimiento, puede dar algunas consideraciones válidas sobre la vida del modelo sin reentrenamiento.


Una vez más, pido que se centre en la variable objetivo y en la justificación de los predictores para esta variable objetivo en particular.

PS.

Entrar en las interrelaciones de los pares de divisas. Me han dado unos resultados sorprendentes. En particular:

  • Los pares de divisas EURUSD y GBPUSD no están relacionados entre sí. Y esto a pesar de la correlación ampliamente publicada. Construir modelos VAR sobre estos pares es inútil.
  • El AUDUSD no tiene nada que ver con los principales pares de divisas.

Estoy de acuerdo con usted, pero me gustaría hacer una corrección. Aclaración sobre el primer punto sobre todo. No está relacionado con el objetivo, sino con el motivo. Es decir, ha cambiado el predictor, ha cambiado el objetivo, y no al revés. Y entonces el segundo punto simplemente se cae. No es necesario anticiparse. Basta con que la entrada sea la causa de la salida. Y de nuevo, todo el mundo se olvida de dónde trabajas. Lo principal en la bolsa es el precio. Encuentre las entradas, que son la causa de los cambios de precios y cualquier TS, le aseguro, absolutamente cualquier TS funcionará como debería. ¡¡¡¡¡Pero esto es un secreto!!!!! No se lo digas a nadie.... De todos modos, deberían leer mi artículo. No creas que no estoy promocionando ni nada por el estilo. Claro que me preocupa ser el único que lo lee :-) es broma. Así que después de leer un montón de preguntas se caerá. Aquí, además de la propia IA (supongamos que tiene una rejilla), hay que organizar adecuadamente la recogida de datos, tener cuidado con los indicadores, para que no se produzcan miradas, etc. Creo que este artículo muestra uno de los enfoques del mercado. Me atraían tanto las cuadrículas que al final el comercio se convirtió en una segunda naturaleza. Creo que ahora existen estos especialistas, para los que el comercio es sólo una cuestión de experimentación.....
 
En cuanto a la aplicación de las Redes Neuronales Prof undas en el trading, tiene su razón de ser, pero el número de manipulaciones a realizar es bastante grande, partiendo de la base de que la red funciona con el reloj, pero analiza empezando por minutos, minutos generalizados, luego cinco minutos generalizados, etc. IMHO
 

Mihail Marchukajtes:
Estoy de acuerdo con usted, pero me gustaría hacer una corrección. En primer lugar, me gustaría aclarar el primer punto. No para relacionarse con el objetivo, sino para ser la razón del mismo. Es decir, ha cambiado el predictor, ha cambiado el objetivo, y no al revés. Y entonces el segundo punto simplemente se cae. No es necesario anticiparse. Basta con que la entrada sea la causa de la salida. Y de nuevo, todo el mundo se olvida de dónde trabajas. Lo principal en la bolsa es el precio. Encuentre las entradas que son la causa de los cambios de precios y cualquier TS, le aseguro, absolutamente cualquier TS funcionará como debería.

=================================================================================

Este es un punto absolutamente correcto. Sólo que yo lo reformularía: el objetivo debe ser generado por el o los predictores.

 
mytarmailS:
Sin embargo, no tienes una respuesta a la pregunta de cómo implementarlo usando R, si he entendido bien.

La respuesta no es tan sencilla. Aquí hay una forma, por ejemplo, con una neurona, pero hay que entender cómo funciona una neurona, qué fórmulas tiene, etc.

Supongamos que hay una neurona simple, con cuatro entradas, tres perceptrones en una capa oculta y una salida. Una neurona de este tipo, en términos matemáticos, funcionaría así:

#include <math.h>
double sigmoid(double x)
{
     return 1.0 / (1.0 + exp(-x));
}

double NeuralNetwork(double* input, double* bias, double* weight){
    double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона

    double perc_output[0] = sigmoid(bias[0] + input[0] * weight[0] + input[1] * weight[1] + input[2] * weight[2]  + input[3] * weight[3]);
    double perc_output[1] = sigmoid(bias[1] + input[0] * weight[4] + input[1] * weight[5] + input[2] * weight[6]  + input[3] * weight[7]);
    double perc_output[2] = sigmoid(bias[2] + input[0] * weight[8] + input[1] * weight[9] + input[2] * weight[10] + input[3] * weight[11]);
    double result         = sigmoid(bias[3] + perc_output[0] * weight[12] + perc_output[1] * weight[13] + perc_output[2] * weight[14]);
    return result;
}


Ahora puede tomar una tabla con ejemplos de entrenamiento, y encontrar el resultado para cada ejemplo

double nn_input[4]; //массив со входными значениями

double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения
double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения

//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться
double results[trainSampleCount];
// trainSampleCount = число обучающих примеров
for(int i=0; i<trainSampleCount; i++){
  nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input
  results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight);
}

A continuación, por ejemplo, se traza el beneficio de las predicciones en la matriz de resultados, y se evalúa.

El código anterior se puede meter en el optimizador. El optimizador debe encontrar valores adecuados de pesos y desplazamientos en las matrices nn_bias y nn_pesos:
1) intercambiar los valores de nn_bias y nn_weight según sus algoritmos
2) encontrar los resultados de todos los ejemplos de entrenamiento
3) trazar el gráfico de la operación
4) estimar el gráfico comercial, utilizar esta estimación como valor de aptitud para los siguientes pasos de optimización
5) Repita los pasos 1-4 del algoritmo de optimización hasta que el gráfico de beneficios sea aceptable

Eso es todo, pero hay un matiz: los optimizadores que he probado no pueden manejar los pesos, sólo encuentran algún mínimo local cuando todos los resultados son iguales a 0,5 para minimizar el error medio y se quedan atascados en él. Tienes que aplicar algún truco aquí, no he llegado más lejos.
Cuanto más compleja sea la estructura de las neuronas, mayor será el número de pesos y más difícil será para el algoritmo de optimización seleccionarlos, en neuronas grandes simplemente se estancan y casi no mejoran el resultado inicial.

 
Dr.Trader:

Tienes que aplicar algún tipo de truco aquí.

El truco es realmente conocido, sólo que no he visto ningún software para implementarlo. Derivados.

La neurona, el trazado de la balanza y la evaluación de los gráficos son fórmulas. Y así se pueden encontrar las derivadas de nn_bias y nn_weight con respecto a la estimación final.
En algún vídeo de formación sobre MO el conferenciante hablaba de los nuevos lenguajes de programación del futuro, por ejemplo alguien en algún lugar está intentando hacer un lenguaje con cálculo automático de derivadas para cualquier variable dentro de cualquier fórmula compleja (no por recálculo con un pequeño desplazamiento de valor, sino analíticamente). Este es el tipo de cosas que ayudarían.

Es decir, normalmente se toma un ejemplo de entrenamiento, y para cada peso se determina analíticamente cuánto mejora el resultado, y el peso se aumenta o disminuye en consecuencia. Tenemos que hacer lo mismo, pero no un ejemplo a la vez, sino para todos, y la derivada no se busca para los resultados de entrenamiento uno por uno, sino inmediatamente para la evaluación final del gráfico.


Y una pequeña desventaja - todo esto en esta forma no ayudará en el comercio. Sólo ajustaremos los pesos para el gráfico ideal, obtendremos un 100% de sobreentrenamiento y caeremos en picado en los nuevos datos. Para obtener un beneficio real habrá que trastear con la estructura de las neuronas, al final será algo así como una red convolucional probablemente.