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

 
Grigoriy Chaunin:

Lea sobre las funciones de activación de las neuronas. Puede suministrar los valores que desee a la salida, pero una función de activación incorrecta producirá valores negativos. Suele ser una tangente hiperbólica. La función de pérdida softmax no funcionará correctamente con ella. Aunque mucho depende de la biblioteca y de la implementación de la función de pérdida. Por ejemplo en Tensorflow en las neuronas de salida para la función de pérdida softmax no debe tener ninguna función de activación. Y para el uso correcto de la red entrenada debemos añadir la activación softmax.No he trabajado conALGLIB, quizás hayan hecho algo mal. En cualquier caso, una red entrenada con softmax no debería dar valores negativos.

Softmax no es una función de pérdida. Estás confundido sobre algo. Softmax es una función de activación de la capa de salida para tareas de clasificación. No confundas al hombre, él mismo se confundirá.

Usted utiliza Alglib bajo su propia responsabilidad. Hazlo todo en Rstudio.

Buena suerte

 
Dr. Trader:

Este es el caso cuando una de las clases tiene un número muy grande de ejemplos de entrenamiento en comparación con las otras clases. Por ejemplo, 2000 ejemplos de entrenamiento para la compra y sólo 1000 para la venta. La neurona siempre puede devolver "Comprar" y en este caso acertará el 66% de las veces. Es mejor hacer que el número de ejemplos de entrenamiento de cada clase sea igual.

Clase NA - prevalecerá, desde el 50% en caso de comercio frecuente, hasta el 99% en caso de comercio raro. Pero lo tengo en 3ª, y tengo la clase 1 de NA atascada.

Me pregunto por qué los artículos no utilizan ejemplos de formación para los momentos en los que no hay que hacer nada. Porque no hacer nada en los momentos adecuados también es importante, normalmente esos momentos son los que el comercio llevará a una pérdida.
Si no se aprende a hacer una pausa, NS puede empezar a operar y perder el depósito.

 
Vladimir Perervenko:

Softmax no es una función de pérdida. Estás confundido sobre algo. Softmax es una función de activación de la capa de salida para tareas de clasificación. No confundas al hombre, se confundirá a sí mismo.

Usted utiliza Alglib bajo su propia responsabilidad. Hazlo todo en Rstudio.

Buena suerte


Para ser precisos, la función de pérdida se llama softmax crossentropy. Sí, no fui claro.

 
Vladimir Perervenko:

Softmax no es una función de pérdida. Estás confundido sobre algo. Softmax es una función de activación de la capa de salida para tareas de clasificación. No confundas al hombre, se confundirá a sí mismo.

Usted utiliza Alglib bajo su propia responsabilidad. Hazlo todo en Rstudio.

Buena suerte

Lo más probable es que utilice el enlace R después de su próximo artículo (donde habrá una conexión con el terminal).
 

Por cierto, es interesante que del ejemplo anterior

Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

La suma de cada fila es 1. (los 4 primeros marcados). Es decir, una cierta analogía con el softmax, donde la suma (es decir, la probabilidad) también es = 1. Pero esto se hizo por NS - regresión con salida lineal.

 
elibrarius:

Clase NA - prevalecerá, desde el 50% en la negociación frecuente, hasta el 99% en la negociación infrecuente.

Es muy peligroso distribuir las clases a un profesor de forma aleatoria, como tomar algún indicador para crear clases de profesores y luego sustituir algunos de los valores por NA también.

Incluso si hay buenos predictores y buenas clases para enseñar y el modelo tiene buenos resultados en los nuevos datos, cualquier intento de ajustar los valores de las clases puede romper el modelo por completo. Encontrar indicadores para los predictores y un indicador para las clases que mantenga la rentabilidad del modelo en los nuevos datos es un gran éxito.

Yo recomendaría tomar dos clases simples para empezar - el color de la siguiente barra (es decir, comprar/vender). Tome al menos 10000 ejemplos de entrenamiento (barra de la historia), entrene el modelo y evalúe el resultado en las siguientes 10000 barras de la historia (que eran desconocidas para el modelo durante el entrenamiento). Cuando consigamos encontrar predictores que mantengan la precisión del modelo al mismo nivel en los datos antiguos y en los nuevos, podremos empezar a seleccionar un indicador para las clases de un profesor. Y resultará que el modelo no mantendrá la precisión en los nuevos datos simplemente tomando el primer indicador disponible. Por qué algunos indicadores pueden servir para un profesor y otros no, no lo sé.

 
elibrarius:

Hay algo que no funciona en la versión SOFTMAX de NS en ALGLIB. Todas las respuestas se inclinan hacia la primera salida (para mí es BUY).
En los mismos datos NS, la regresión con 3 salidas (con activación lineal) da resultados más fiables:

Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

en >0,5 dará respuestas plausibles.

Lesa, por cierto, también se inclinó en la primera salida.


¿Has puesto la suma de las 2 salidas a uno? No sé, a mí me ha funcionado bien, sin desviación. Me gustó el softmax.

Y sí, como recuerdo para softmax racioné las entradas de 0 a 1

Los bosques en general siempre funcionan claramente para la regresión y la clasificación. A veces me salen señales de compra o venta solamente, pero luego escarbé en la muestra de entrenamiento y había algo de sesgo en los ejemplos, así que no me extraña (porque se reentrenan a ciertos intervalos y no sé de antemano lo que puede aparecer en la muestra). Además, no olvides que los andamios no pueden extrapolarse. Hay que enseñar todos los futuros valores conocidos.

 

Por cierto, ni siquiera parece ser necesario:

Preprocesamiento de datos

Para mejorar la velocidad de convergencia y la calidad de las soluciones, ALGLIB implementa el preprocesamiento de datos (estandarización del conjunto de entrenamiento). El preprocesamiento se realiza implícitamente para el usuario: antes de que los datos se transfieran a la red neuronal, se preprocesan automáticamente, y el resultado de la red se retrotransforma.

 

Aquí hay una comprobación de la tabla de multiplicar de NS

Hice el mismo para los andamios y funciona bien

Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

¿Has puesto la suma de las 2 salidas a uno? No sé, a mí me ha funcionado bien, sin desviación. Me gustó el softmax.

Y sí, que yo recuerde para el softmax racioné las entradas de 0 a 1

Los bosques en general siempre funcionan claramente para la regresión y la clasificación. A veces me salen señales de compra o venta solamente, pero luego escarbé en la muestra de entrenamiento y había algún sesgo en los ejemplos, así que no me extraña (porque se reentrenan a ciertos intervalos y no sé de antemano lo que puede aparecer en la muestra). Además, no olvides que los andamios no pueden extrapolarse. Es necesario entrenar todos los valores conocidos en el futuro.

Tengo suma de 3 salidas=1, o mejor dicho no suma, sino solo 1 de las salidas =1, el resto=0.
No he normalizado las entradas, más abajo has confirmado que no es necesario. He comprobado la tabla de multiplicación (pero no es un softmax).
Si softmax te ha funcionado - voy a intentar girarlo de nuevo, tal vez funcione (aunque en absolutamente los mismos datos la regresión con salidas lin. funciona como debería).