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

 
Maxim Dmitrievsky:

En mi opinión, nadie necesita todos estos códigos) salvo para algunas funciones de servicio, por lo que cada uno se ocupa de hacer algo por sí mismo.

Esto es una consecuencia de la jerarquía de la perfección del conocimiento, lo que es accesible para una jirafa no es aceptable para un hipopótamo y viceversa, por eso hay diferentes tipos de educación basados en el nivel de perfección del conocimiento, desde la escuela primaria hasta las instituciones académicas.

con todo respeto.

 


Vi este diagrama de un percetrón. Normalmente hay un sumador, pero hay tres. ¿Entonces hay tres neuronas de activación?

Lo hice en MQL4:

   a1 = iAC(Symbol(), 0, 0);
   a2 = iAC(Symbol(), 0, 3);
   a3 = iAC(Symbol(), 0, 7);
   
   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2;

Me pregunto si es correcto. Por lo que sé, cada una de las tres entradas (a1,a2,a3) se multiplica por su propio peso dependiendo del sumador.

Entonces intentaré sustituir la función lineal por la sigmoidal de activación.

¿Quién puede decir si es mejor utilizar un sumador o varios sumadores? No está claro, ¿tiene sentido utilizar las mismas entradas con diferentes pesos?

Y también quería preguntar, si tomamos el mínimo, una red de dos capas, entonces necesitaremos muchas variables para la optimización, por no hablar de tres o cuatro capas.

Es decir, si se optimizan todas las capas a la vez. ¿Cuántas variables se pueden utilizar al máximo para conseguir más o menos las pruebas, hay algún software para este fin?

 
forexman77:

Me interesa saber si esto es correcto. Por lo que he entendido, cada una de las tres entradas a1,a2,a3 se multiplica por su propio peso dependiendo del sumador al que llegue.

Casi correcto, también hay un sesgo que se agrega adicionalmente al resultado

   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3 + w01;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3 + w02;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2 + w03;

Lo más probable es que los valores y1,y2,y3 se utilicen en la capa interna de neuronas, y que estos valores también se utilicen como valores de entrada para la siguiente capa

perceptron4[0] = w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04;

O si Y1,Y2,Y3 son valores de salida, entonces se utilizan varias neuronas de salida para la clasificación - por ejemplo si el valor más grande entre Y1,Y2,Y3 es Y1, entonces el resultado es "clase 1", si el valor más grande es Y2, entonces el resultado es "clase 2", si el valor más grande es Y3, entonces el resultado es "clase 3". Si la neurona se utiliza para la regresión en lugar de la clasificación, la neurona de salida será sólo una. Si tenemos dos clases, podemos utilizar una sola neurona de salida (si el resultado es <0,5, entonces será la clase1, si >=0,5, entonces será la clase2).

Es muy fácil añadir una sigmoidea para la función de activación de una neurona, se necesita tal función -

double sigmoid(double sum)
{
    if (sum < -15.0)
        return (0.0);
    else if (sum > 15.0)
        return (1.0);
    else
        return (1.0 / (1.0 + MathExp(-sum)));
}

Y con ella se obtiene una neurona completa con una capa interna (con tres perceptrones) y un perceptrón de salida.

   perceptron1[0] = Sigmoid(w11 * a1 + w21 * a2 + w31 * a3);
   perceptron2[0] = Sigmoid(w22 * a2 + w12 * a1 + w32 * a3);
   perceptron3[0] = Sigmoid(w33 * a3 + w13 * a1 + w23 * a2);
   perceptron4[0] = Sigmoid(w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04);

resultado = perceptron4[0]

 
forexman77:

¿Cuántas variables se pueden utilizar en la medida de lo posible para producir más o menos pruebas, hay algún software para este fin?

El número de pesos de una neurona puede ser de decenas de miles o más. En mql y R hay bibilotes especiales para crear y entrenar neuronas, es mejor trabajar a través de ellos, en lugar de programar tu propia neurona desde cero.

 
SanSanych Fomenko:

Veo que no te dejo respirar... respira y cálmate.


Cuanto más avanzas, más categórico te vuelves ;))

 
SanSanych Fomenko:


Esto se ha formulado de forma muy sucinta como un axioma de la estadística (y de todas las matemáticas, por cierto): Basura IN - Basura OUT.

Una persona que no sabe esto, o no lo aplica en la práctica, es en mi opinión un lunático aburrido, conozca o no la palabra perseptrón.


Muy bien. Lo apoyo.

 
Maxim Dmitrievsky:

Confundí accidentalmente las palabras porque estaba leyendo sobre la aproximación en ese momento


genial ;))))

 
Oleg avtomat:

Muy bien. Lo secundo.


Hace tiempo que me di cuenta de que con la edad la conciencia de la gente se vuelve rancia, les dices una palabra y te dan una buena parte de sus fantasías insatisfechas. Pues claro que sí, porque te comunicas igual. O tal vez no sea la edad, sino una incapacidad fundamental para concentrarse en el punto.

El arte de responder consiste en sumergirse en el problema de quien pregunta, convertirse en él por un rato, entender lo que necesita y responder de una manera que él entienda. Pero el hecho de cagarla verbalmente no es arte sino autoafirmación.

 
Maxim Dmitrievsky:

Hace tiempo que me di cuenta de que con la edad la conciencia de la gente se vuelve rancia, les dices una palabra y te dan una buena parte de sus fantasías insatisfechas. Pues claro que sí, porque es exactamente así como se comunica. O tal vez no sea la edad, sino una incapacidad fundamental para concentrarse en el tema.

El arte de responder consiste en sumergirse en el problema de quien pregunta, convertirse en él durante un rato, entender lo que necesita y responder de forma que lo entienda. Sólo joder no es un arte sino una autoafirmación.


Para evitar confusiones y poder distinguir qué es qué - aproximación, interpolación, extrapolación y otros términos difíciles para ti - deberías abrir los libros de texto y aprender. Pero quieres puntuar los botones y luego tratar de entender lo que estás haciendo. No tienes la base de conocimientos para darle sentido. Entonces conseguirás entenderlo, y podrás planificar conscientemente los experimentos, y llevar a cabo experimentos significativos, y los resultados de tus experimentos serán comprensibles para ti.

 
Oleg avtomat:

Para evitar confusiones y poder distinguir qué es qué - aproximación, interpolación, extrapolación y otros términos complicados - deberías abrir un libro de texto y aprender. Pero quieres puntuar los botones y luego tratar de entender lo que estás haciendo. No tienes la base de conocimientos para darle sentido. Estudia, y entonces entenderás, y serás capaz de planificar experimentos con sentido, y realizar experimentos con sentido, y los resultados de los experimentos serán claros para ti.

Lo siento, pero no has demostrado tu valía en ninguna de mis preguntas, al menos yo no lo he visto

No hace falta escribir como el Capitán Obvio y poner todo patas arriba para volver a parecer importante.