![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
El objetivo de minimizar/maximizar la función objetivo E(w1,w2) es encontrar un extremo global. Y si hay un millón de estos extremos globales, ¡qué más nos da en cuál caiga NN!
Es peor si se queda atascado en uno de los mínimos/máximos locales. Pero ya no es problema de NN. Es un problema del algoritmo de optimización.
Descrito por gpwr - de ninguna manera.
Estoy de acuerdo en que si todos los mínimos locales son idénticos en profundidad y, por tanto, globales, da igual en cuál acabe la red. Pero para la versión simplificada de la red con series ruidosas, también existen mínimos locales en los vértices de la superficie E(w1,w2). Por lo tanto, la optimización genética o el descenso de gradiente con varias variantes de valores iniciales es necesario para terminar en el valle. Mi ejemplo pretendía ilustrar las matemáticas de las redes neuronales paralelas, que conducen a un gran número de mínimos locales y a un complicado (largo) proceso de aprendizaje. Este proceso de aprendizaje suele constar de varios pasos en los que se utilizan diferentes técnicas de optimización: globales (algoritmo genético, evolución diferencial, optimización por enjambre de partículas, optimización por colonia de hormigas) y locales (descenso del gradiente, gradiente conjugado, Levenberg-Marquardt, BFGS), y lleva mucho tiempo.
La base de las matemáticas de las redes neuronales es el teorema de Kolmogorov: cualquier función continua de n variables x[1]...x[n], puede representarse como una suma de 2n+1 superposiciones de mapeos continuos y monótonos de segmentos unitarios:
Cualquier función continua también puede representarse como una serie de Taylor infinita:
Una serie de potencias es una versión simplificada de una serie de Taylor:
Representar una función desconocida como una serie de potencias es matemáticamente más sencillo que una red neuronal. Lo explicaré a continuación.
Tomemos una serie de potencias de primer orden:
(1) y = f(x[1]...x[n]) = a[0] + sum(a[i]*x[i], i=1...n)
Esto es algo distinto a una función lineal. Si y,x[1],...,x[n] son términos de la misma serie, entonces tenemos un modelo lineal autorregresivo (AR). La red neuronal de una sola capa también se describe con el mismo modelo (1).
Ahora tomemos una serie de potencias de segundo orden:
(2) y = f(x[1]..x[n]) = a[0] + sum(a[i]*x[i], i=1..n) + sum(b[i,j]*x[i]*x[j], i=1..n,j=1..n)
y así sucesivamente. Los parámetros desconocidos del modelo basado en una serie de potencias son los coeficientes a[i],b[i,j],..., que son derivadas parciales de la función f(x[1]..x[n]) para cada entrada x[i]. La salida del modelo es una función lineal de estos coeficientes mientras que la salida es una función no lineal de x[1]...x[n]. La búsqueda de los coeficientes del modelo a[i],b[i,j],..., se realiza mediante la minimización de la suma de cuadrados de los errores como en el caso del entrenamiento de la red neuronal:
E(a[i],b[i,j],...) = suma( (t[k]-y[k])^2, k=1...p)
Pero en el caso de la red neuronal, obtenemos un método de mínimos cuadrados no lineales, y en el caso de una serie de potencias obtenemos un método de mínimos cuadrados lineales, que se resuelve de forma bastante sencilla: encontramos las derivadas E(a[i],b[i,j],...) para cada coeficiente a[i],b[i,j],... y las igualamos a cero. Obtenemos un sistema lineal simétrico de ecuaciones con incógnitas a[i],b[i,j],..., que se resuelve por el método de Cholesky.
Las ventajas del método de las series de potencia en comparación con el método de Kolmogorov (red neuronal) son:
1. Es mucho más fácil y rápido entrenar el modelo: sólo una iteración. Las redes neuronales se entrenan en 1000-100000 iteraciones combinando diferentes métodos de optimización.
2. El resultado del aprendizaje de una serie de potencias es inequívoco, es decir, un único mínimo que es a la vez local y global. El entrenamiento consistente de una red neuronal conduce a diferentes mínimos locales y, por tanto, a diferentes valores de pesos y a diferentes modelos del mismo proceso (serie temporal)
A continuación se muestra la superficie E(a,b) para la serie de potencias y = a*x + b*x^2 con datos de entrenamiento "ruidosos" t[k] = cos(x[k]) + rnd:
Obsérvese que, a diferencia de la red neuronal, aquí sólo hay un mínimo.
El inconveniente del modelo no lineal basado en la serie de potencias es el rápido crecimiento del número de sus coeficientes con el aumento del orden de la serie de potencias. Supongamos que n es el número de entradas (x[1]..x[n]). El número de coeficientes nc se determina mediante fórmulas:
orden = 1, nc = n+1
orden = 2, nc = (n+1)*(n+2)/2
orden = 3, nc = (n+1)*(n+2)*(n+3)/6
orden = 4, nc = (n+1)*(n+2)*(n+3)*(n+4)/24
...
Por ejemplo, un modelo de proceso de tercer orden con 12 entradas tiene 455 coeficientes. Su tasa de recuperación sigue siendo superior a la de la red neuronal con menos pesos. El problema no estriba en ralentizar el ritmo de aprendizaje de la serie de potencias, sino en encontrar un número suficiente de conjuntos de entrenamiento x[1...n][k],t[k] que debe superar el número de coeficientes del modelo para evitar la degeneración. En la práctica, las series de potencias de segundo o tercer orden dan resultados satisfactorios.
Todavía soy nuevo en las mallas, así que no puedo hablar con autoridad,
pero creo que todos los entusiastas de la malla en el foro están tratando de hacer un solucionador lineal (un sistema de ecuaciones lineales),
y luego, para introducir la imprevisibilidad en la solución, la hacen encajar haciendo un bucle de la entrada con la salida.
He llegado a la misma conclusión que tú reflexionando y tratando de entender lo que hacen los demás.
Pero resolviéndolo de esta manera no responderás a la pregunta:
Y estos datos recién llegados no tienen raíces en el sistema - son de COMPRA o VENTA.
Porque no hay ninguna función que defina el modelo.
Intenta enseñar la cuadrícula a la zona pintada.
Se quiere entrenar a TE para que cuando se introduzcan las coordenadas de esta zona, la cuadrícula genere 1, y cuando las coordenadas de una zona no pintada sean 0.
La salida de cada neurona debe tener un clasificador que debe tomar un estado dependiendo del entrenamiento:
Si d es mayor que d o verdadero si es menor que d (d es un umbral, respectivamente). (Si me equivoco, no me juzgues con demasiada dureza).
Tras estudiar a fondo las redes neuronales y utilizar diversos algoritmos de aprendizaje, desde el descenso de gradiente hasta la genética, he llegado a la conclusión de que el aparato matemático de las redes neuronales no es perfecto.
No tienes que tener un ideal en tus manos. Todo esto resuena con la cuestión de qué porcentaje de movimiento se puede permitir omitir para mejorar la fiabilidad de la entrada en el mercado. Lo ideal sería tomar el 100%, justo en el zigzag ;-). En la práctica sería un grial para muchas personas tomar al menos el 50% en cada borde.
A juzgar por la información disponible, las rejillas funcionan. Los problemas de ambigüedad se resuelven eligiendo la configuración, el tamaño de la malla y su inicialización. En principio, el problema de los mínimos locales también se resuelve, mediante el recocido o el mismo método genético (¿no elegimos allí la probabilidad de aceptar "genes malos", lo que equivale a saltar del valle local?) Además, hay que recordar que hay comités de redes haciendo el trabajo, no sólo uno. Y mirando más ampliamente, ¿no se limita todo a una red de propagación de vuelta completa con el aprendizaje asistido por el profesor? ¿Por qué no intentar poner comillas y señales en el vector de entrada y alimentar a Kohonen, por ejemplo?
¿Tienes una red que genera beneficios estables?
¿Qué crees que significa "beneficios estables"?
No es necesario tener una perfecta en la mano. Todo esto se hace eco de la cuestión de qué porcentaje de movimiento se puede permitir omitir para mejorar la credibilidad de la entrada en el mercado. Lo ideal sería tomar el 100%, justo en el zigzag ;-). En la práctica sería un grial para muchos tomar al menos el 50% en cada borde.
A juzgar por la información disponible, las redes funcionan. Los problemas de ambigüedad se resuelven eligiendo la configuración, el tamaño de la rejilla y su inicialización. En principio, el problema de los mínimos locales también se resuelve, mediante el recocido o el mismo método genético (¿no elegimos allí la probabilidad de aceptar "genes malos", lo que equivale a saltar del valle local?) Además, hay que recordar que hay comités de redes haciendo el trabajo, no sólo uno. Y mirando más ampliamente, ¿no se limita todo a una red de retropropagación completa con aprendizaje asistido por el profesor? ¿Por qué no intentar poner comillas y señales en el vector de entrada y alimentar eso a Kohonen, por ejemplo?
Has entendido mal la esencia de mi razonamiento. No me refería a la correlación entre una red "poco aprendida" y los resultados comerciales. Está escrito en todas partes que la red debe ser entrenada hasta que el error en la muestra bajo prueba deje de disminuir. Estoy de acuerdo con eso y no quiero discutirlo. La esencia de mi razonamiento era mostrar cómo una estructura de red paralela conduce a dificultades en su optimización y cómo un modelo no lineal basado en una serie de potencias es capaz de lograr el mismo objetivo que una red neuronal, pero con un aparato matemático mucho más simple y un proceso de aprendizaje rápido que conduce a un resultado único.
En cuanto al comité de redes, tengo una opinión: todo es inútil. He aquí una pregunta para todos los que creen en los comités de red. Supongamos que una red da señales correctas el 60% de las veces. Otra red da las señales correctas el 60% de las veces. Ahora combinemos estas dos redes y calculemos las señales correctas recibidas por ambas redes simultáneamente. Es decir, si ambas redes indican "compra" o "venta", se dará la correspondiente señal de "compra" o "venta". Si una red indica "comprar" y la otra "vender", no se da ninguna señal. ¿Cuál es la probabilidad de que estas señales sean correctas?
Se podría formular la misma pregunta de otra manera. Tomemos una reunión de científicos en la que todos votan sobre la pregunta "si hay vida en Marte" desde un punto de vista biológico. El 60% de los que votan responden correctamente a la pregunta (por cierto no sé la respuesta :) Toma la reunión de otros científicos que votan sobre la misma pregunta, pero desde el punto de vista astronómico, y sólo el 60% de ellos aciertan. Entonces, combina dos reuniones (biólogos y astrónomos) en una sola y formula la misma pregunta. Si dices que por algún milagro la corrección de la respuesta se eleva por encima del 60%, entonces tienes que estudiar las estadísticas.
Has entendido mal la esencia de mi razonamiento. No he hablado de la relación entre una red "no entrenada" y los resultados comerciales. Está escrito en todas partes que la red debe ser entrenada hasta que el error en la muestra bajo prueba deje de disminuir. Estoy de acuerdo con eso y no quiero discutirlo. La esencia de mi razonamiento era mostrar cómo una estructura de red paralela conduce a dificultades en su optimización y cómo un modelo no lineal basado en una serie de potencias es capaz de lograr el mismo objetivo que una red neuronal, pero con un aparato matemático mucho más simple y un proceso de aprendizaje rápido que conduce a un resultado único.
En cuanto al comité de redes, tengo una opinión: todo es inútil. He aquí una pregunta para todos los que creen en los comités de red. Supongamos que una red da señales correctas el 60% de las veces. Otra red da las señales correctas el 60% de las veces. Ahora combinemos estas dos redes y calculemos las señales correctas recibidas por ambas redes simultáneamente. Es decir, si ambas redes indican "compra" o "venta", se dará la correspondiente señal de "compra" o "venta". Si una red indica "comprar" y la otra "vender", no se da ninguna señal. ¿Cuáles son las probabilidades de que esas señales sean correctas?
Podemos formular la misma pregunta de otra manera. Tomemos una reunión de científicos en la que todos votan sobre la pregunta "si hay vida en Marte" desde un punto de vista biológico. El 60% de los que votan responden correctamente a la pregunta (por cierto no sé la respuesta :) Toma la reunión de los otros científicos que votan la misma pregunta pero desde el punto de vista astronómico y sólo el 60% acierta. Entonces, combina dos reuniones (biólogos y astrónomos) en una sola y formula la misma pregunta. Si dices que por algún milagro la corrección de la respuesta se eleva por encima del 60%, entonces necesitas estudiar estadística.
Este no es un buen ejemplo...
Hay muchas formas de construir composiciones algorítmicas(comités). Usted sugiere Votar, desde mi experiencia puedo decir que lejos de la mejor manera, una simple ponderación es a menudo mejor.
La autocorrelación (FunkOsh[i]||FunkOsh[i+1]) suele ser significativa > 0,8. Y la correlación de las funciones de error de los algoritmos básicos tiende a 1. Los comités construyen creen que los algoritmos base se compensan entre sí, es necesario que no haya correlación entre las funciones de error para cualquier bien.
Y no nos olvidemos de AdaBoost: realmente funciona, pero tiene sus propias trampas.
Probablemente has olvidado, como la mayoría de los neuroescritores de este foro, a juzgar por los comentarios dejados, el aprendizaje sin profesor. ¿Por qué, si se utiliza la NN en el comercio, hay que enseñarle algo a la NN? No podemos enseñarnos a nosotros mismos a comerciar. Al hablar del comité de redes, ¿se refiere a que cada NN se entrena de forma independiente? ¿Y por qué dan señales separadas unas de otras? A la hora de construir NNs, y más aún un comité de NNs, la única solución correcta es el "aprendizaje sin maestro". El cerebro tiene varias partes y más de una docena de subramas. Cada uno de ellos realiza una función diferente, procesando información externa a ellos. Y el dueño de este "comité" toma una decisión. ¿Cómo es posible? Es posible porque el comité de redes debe funcionar en conexión con los demás, como un complejo, de lo contrario nada funcionará, habrá una "personalidad dividida".
sólo un poco por delante de mí :)
Sobre el comité de la red, tengo una opinión: todo es inútil. He aquí una pregunta para todos los que creen en los comités de red. Digamos que una red da las señales correctas el 60% de las veces. Otra red da las señales correctas el 60% de las veces. Ahora combinemos estas dos redes y calculemos las señales correctas recibidas por ambas redes simultáneamente. Es decir, si ambas redes indican "compra" o "venta", se dará la correspondiente señal de "compra" o "venta". Si una red indica "comprar" y la otra "vender", no se da ninguna señal. ¿Cuáles son las probabilidades de que esas señales sean correctas?
Podemos formular la misma pregunta de otra manera. Tomemos una reunión de científicos en la que todos votan sobre la pregunta "si hay vida en Marte" desde un punto de vista biológico. El 60% de los que votan responden correctamente a la pregunta (por cierto no sé la respuesta :) Toma la reunión de los otros científicos que votan la misma pregunta pero desde el punto de vista astronómico y sólo el 60% acierta. Entonces, combina dos reuniones (biólogos y astrónomos) en una sola y formula la misma pregunta. Si dices que por algún milagro la corrección de la respuesta se eleva por encima del 60%, entonces tienes que estudiar las estadísticas.
probabilidad de señal correcta (0,6*0,6)/(0,6*0,6+0,4*0,4)=69,23%, esto es en teoría)
el ejemplo de una colección de científicos es incorrecto. de la probabilidad a la media.
La estadística es otra parte divertida de las matemáticas :)
En realidad es mucho más complicado que eso. Cuando se entrena hasta un error mínimo en la muestra que se está probando, es probable que se obtenga una red sobreentrenada......