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

 
Andrey Dik #:

¿Por qué no? Sí. No tengo una idea diferente, es sólo que a mucha gente no le gusta llamar a las cosas por su nombre por alguna razón.

Cuándo detener exactamente el aprendizaje es una cuestión de elección metodológica, sólo estaba haciendo hincapié en que es imposible detener el aprendizaje sin detectar un extremo global (bueno, o a la fuerza, lo que no tendrá ninguna utilidad práctica).

Sólo veo un malentendido de los oponentes - antes había una conversación sobre la optimización, y que el overfitting en un probador y el entrenamiento de un modelo son cosas diferentes. Es sólo que en el aprendizaje automático el proceso de selección de predictores suele ser una tarea separada, mientras que en el probador terminal a menudo puede cambiar las lecturas de estos predictores - un ejemplo simple aquí es la búsqueda de la configuración de los indicadores, pero al mismo tiempo en el probador puede utilizar variables para procesar los valores de estos indicadores - umbrales móviles, reglas de comparación, coeficientes con diferente significado lógico.

Por lo tanto, sin ver el código del Asesor Experto, no se puede decir sin ambigüedades cómo es el proceso de optimización - creación de reglas o búsqueda de predictores que funcionan mejor con reglas fijas, o se implementa una y otra parte. De ahí toda la discusión, en mi opinión, sobre ese tema.

Teniendo en cuenta que generalmente se aplica el overfitting de cualquier cosa y de todo, Maxim argumenta que esto no es aprender con un profesor, ya que puede faltar la lógica de marcado y las situaciones no son similares entre sí, lo que complica el proceso de aprendizaje. Y con razón, en esencia tenemos muchas clases diferentes que se agrupan en función de lo que les gusta y lo que no, pero pueden no ser similares en atributos entre sí. Antes sugerí un método para eliminar gradualmente esos datos, mediante el aprendizaje incremental, aislando la ausencia de contradicciones en la muestra inicial utilizando un modelo entrenado y entrenando después con los datos restantes. No es la única solución. El tema merece realmente atención.

Sobre el criterio de parada - aquí, por supuesto, puedes elegir tu criterio y buscar su valor óptimo, dependiendo de lo que sea más prioritario en las respuestas del modelo. Sin embargo, no necesariamente tiene que ser un criterio en el aprendizaje automático - a veces se puede simplemente establecer un número fijo de iteraciones - es decir, se puede entrenar sin este criterio. La cuestión es siempre otra: cómo elegir un modelo que funcione con datos nuevos. Es mejor buscar criterios que respondan a esta pregunta.

 
Andrey Dik #:


Así pues, el aprendizaje en el aprendizaje automático puede verse como una optimización, en la que el objetivo es encontrar la combinación de parámetros del modelo que minimice la función de pérdida y consiga el mejor rendimiento del modelo.
No estoy de acuerdo. Esto es sólo una pequeña parte del MOE. Transformadores, el aprendizaje causal en mo definitivamente no es una optimización en general.
 
Andrey Dik #:

¡Bingo!

Por fin te has dado cuenta de que cualquier aprendizaje no es más que optimización con búsqueda de un extremo global. O puede que aún no te hayas dado cuenta, pero lo harás.

No puede ser de otra manera, siempre se necesita un criterio inequívoco para detener el aprendizaje y este criterio siempre se diseña para que sea un extremo global. Normalmente se diseña un criterio integral (no siempre). Tú has llamado criterio integral.

Siempre he pensado que buscar extremos en una función es análisis funcional, igual que desarrollar un algoritmo puede llamarse optimización. Al fin y al cabo, elegimos el mejor según unos criterios)
 
Oh, estos términos y su interpretación))))))
Es como una especie de negocio sagrado)))))
 

El problema de las neuronas en Python son hermosos cuadros de estadísticas a macroescala. Tan pronto como usted comienza a analizarlos, resulta que la neurona se convierte en una media móvil - está cerca del precio de predicción, pero no adivina la dirección. La dirección se adivina al 50/50, por lo que es imposible operar con estas neuronas.

He intentado los artículos aquí, y con ChatGPT recogimos 10 000 neuronas en 3 capas, o 10 capas de 1000 neuronas, o una capa de 100 000 neuronas (mi RTX 3080 estaba completamente obstruido, y si usted toma más - python escribió que no hay suficiente memoria), y RNN, y LSTM, y CNN, y CNN-LSTM, y CNN-BiLSTM, y CNN-BiLSTM-MLP con dos de regulación y abandonos, y Q-learning. DQN sólo falló, Chat escribió Actor-Critic durante unas páginas, pero el código resultó tener fallos que ni Chat ni yo pudimos arreglar.

TODO - no funciona. El resultado es el mismo en todas partes - se convierte en una media móvil. Introduje todo lo posible del hilo "qué introducir en la red neuronal", y muchas otras cosas.

Y aquí estoy, cortando cebollas en la cocina, con YouTube sonando de fondo y las recomendaciones dadas a un tipo de pelo rizado que está a punto de construir una red neuronal que predice precios. Vale, venga, me digo, inténtalo.

Y así abre Google-collab y empieza a escribir código Python allí (creo que es Python). Mete ahí los precios de cierre, si no me equivoco - del día, de bitcoin. Lo entrena. Lo comprueba. Aquí me limpio los ojos del arco y me pongo a mirar el resultado.

El resultado es el siguiente: la predicción va junto al precio real, pero... con una suposición direccional. Entonces, digamos que fue 35000, la predicción es 37500, el hecho es 37100. Siguiente paso: 35700 pronóstico, 35300 real. Predicción 34000, hecho - 35000. Y así sucesivamente. Escribió una red que predice no el próximo precio, sino 12, creo, próximos precios en una fila a la vez. Y aquí coincidieron después de cada paso en la dirección.


Pregunta: ¿es realmente posible escribir algo que funciona en Python?

 
Andrey Dik #:

Eso es todo, Maxim. Más discusión no tiene sentido, todo lo que ya se ha descubierto. Aquí aquí cerca y Sanych observa, que desde tiempos inmemoriales argumentó conmigo que, por ejemplo, la búsqueda global es perjudicial, a lo que respondí "dependiendo de lo global", y Sanych también aún no se ha dado cuenta de que al final está buscando un global.

Espero devolver la discusión a una dirección tranquila, amistosa y constructiva.

Y todos los que leen este hilo sobre una base regular recordar quién y qué y cuándo se dice, no incluyen la inconsciencia - es inútil. Hoy he cometido un error - he dibujado mal el gráfico, he admitido tranquilamente el error y lo he dicho. Es normal admitir tus errores, Maxim.

No lo hagas por mí.

Estábamos discutiendo el probador, no el MO.

En MO, no buscan un óptimo, sino una coincidencia de un error en traine, prueba y validación. Luego lo ejecutan paso a paso en un archivo más. En todas partes debe haber aproximadamente el mismo error.

Aquí no hay lugar para la optimización.

 
СанСаныч Фоменко #:

No lo hagas por mí.

La discusión era sobre el probador, no sobre el modus operandi.

En MO, que no están buscando un óptimo, pero para una coincidencia de un error en traine, pruebas, y la validación. Y luego ejecutarlo paso a paso en un archivo más. Debería haber aproximadamente el mismo error en todas partes.

Aquí no hay lugar para la optimización.

Rojo es optimización, en tu caso sonará como "reducir la varianza" o "establecer una varianza fija de un valor dado" dependiendo de lo que estés haciendo)))

 
Andrey Dik #:

Rojo es optimización, en tu caso sonaría como "reducir la varianza" o "establecer una varianza fija de un valor dado" dependiendo de lo que estés haciendo)))

De alguna manera no estás percibiendo el texto.

La optimización(?) SÓLO es posible en la línea sobre la que se entrena el modelo. Cuando se entrena hay un algoritmo y se puede ver la optimización con una lupa. Luego hay una prueba de este modelo, que NO tiene feedback con la "optimización", porque no hay parámetros en el modelo que puedan afectar a los resultados en la prueba. Para afectar hay que hacer algo con los predictores y/o el maestro.

En MOE, es decir, preprocesamiento, ajuste del modelo y estimación del modelo NO puede haber optimización porque el error resultante es una propiedad de estos tres pasos.

 
СанСаныч Фоменко #:

No entiendes el texto.

La optimización (?) es posible SÓLO en la pista en la que se entrena el modelo. Cuando se entrena, hay un algoritmo y se puede ver la optimización con una lupa. Luego hay una prueba de este modelo, que NO tiene ninguna relación con la "optimización", porque no hay parámetros en el modelo que puedan afectar a los resultados de la prueba. Tienes que hacer algo con los predictores y/o el profesor para afectarlo.

En MOE, es decir, preprocesamiento, ajuste del modelo y estimación del modelo NO puede haber optimización porque el error resultante es una propiedad de estos tres pasos.

De alguna manera no estás percibiendo el texto.

¿Ha leído lo que está escrito más arriba? ¿Quiere un resultado aleatorio o un resultado mejor? Hagas lo que hagas, estás optimizando, combinando métodos, shmethods, pre, pro, postprocessing shmaccessing, todo para conseguir el mejor resultado.

Llamar dulce a un limón no lo hace más dulce (o como se diga). Ya tal, ya tal, ya tal, ya tal, ¡pero no! - Sanych no hace optimización, ni una sola cosa.

Hoy he escrito demasiado sobre el tema, ya está bien.

 

Todavía intentando poner una gota de yodo en tu absenta cuando estabas bebiendo otra bebida. Como, pruébalo, sabe mejor.

¿Quieres que encuentre lo que estaba escribiendo y te lo señale?

Razón de la queja: