Réseau neuronal - page 3

 
joo >> :

Le but de la minimisation/maximisation de la fonction cible E(w1,w2) est de trouver un extremum global. Et s'il y a un million de ces extrêmes mondiaux, quelle différence cela fait-il pour nous de savoir dans lequel NN se trouve !

C'est pire si elle reste bloquée à l'un des minima/maxima locaux. Mais ce n'est plus le problème de NN. C'est un problème de l'algorithme d'optimisation.


Décrit par gpwr - pas possible.


Je suis d'accord pour dire que si tous les minima locaux sont identiques en profondeur et donc globaux, cela ne fait aucune différence dans lequel le réseau se retrouve. Mais pour la version simplifiée du réseau avec des séries bruyantes, les minima locaux existent aussi sur les sommets de la surface E(w1,w2). Par conséquent, l'optimisation génétique ou la descente de gradient avec plusieurs variantes de valeurs initiales est nécessaire pour aboutir à la vallée. Mon exemple avait pour but d'illustrer les mathématiques des réseaux neuronaux parallèles qui conduisent à un grand nombre de minima locaux et à un processus d'apprentissage compliqué (long). Ce processus d'apprentissage consiste souvent en plusieurs étapes utilisant différentes techniques d'optimisation : globale (algorithme génétique, évolution différentielle, optimisation par essaims de particules, optimisation par colonies de fourmis) et locale (descente de gradient, gradient conjugué, Levenberg-Marquardt, BFGS), et prend beaucoup de temps.

La base des mathématiques des réseaux neuronaux est le théorème de Kolmogorov : toute fonction continue de n variables x[1]...x[n], peut être représentée comme une somme de 2n+1 superpositions de mappings continus et monotones de segments unitaires :


Toute fonction continue peut également être représentée par une série de Taylor infinie :


Une série de puissance est une version simplifiée d'une série de Taylor :



La représentation d'une fonction inconnue sous forme de série de puissance est mathématiquement plus simple qu'un réseau neuronal. Je vais l'expliquer ci-dessous.

Prenons une série de puissance du premier ordre :


(1) y = f(x[1]...x[n]) = a[0] + sum(a[i]*x[i], i=1...n)


C'est autre chose qu'une fonction linéaire. Si y,x[1],...,x[n] sont des termes de la même série, alors nous avons un modèle autorégressif (AR) linéaire. Le réseau neuronal à couche unique est également décrit par le même modèle (1).

Maintenant, prenons une série de puissance du second ordre :


(2) y = f(x[1]..x[n]) = a[0] + somme(a[i]*x[i], i=1..n) + somme(b[i,j]*x[i]*x[j], i=1..n,j=1..n)


et ainsi de suite. Les paramètres inconnus du modèle basé sur une série de puissance sont les coefficients a[i],b[i,j],..., qui sont des dérivées partielles de la fonction f(x[1]..x[n]) pour chaque entrée x[i]. La sortie du modèle est une fonction linéaire de ces coefficients tandis que la sortie est une fonction non linéaire de x[1]...x[n]. La recherche des coefficients du modèle a[i],b[i,j],..., se fait par minimisation de la somme des carrés des erreurs comme dans le cas de l'entraînement d'un réseau neuronal :


E(a[i],b[i,j],...) = sum( (t[k]-y[k])^2, k=1...p)


Mais dans le cas du réseau de neurones, on obtient une méthode des moindres carrés non linéaire, et dans le cas d'une série de puissance, on obtient une méthode des moindres carrés linéaire, qui se résout assez simplement : on trouve les dérivées E(a[i],b[i,j],...) pour chaque coefficient a[i],b[i,j],... et on les égalise à zéro. On obtient un système d'équations symétrique linéaire avec des inconnues a[i],b[i,j],..., qui est résolu par la méthode de Cholesky.

Les avantages de la méthode des séries de puissance par rapport à la méthode de Kolmogorov (réseau neuronal) sont les suivants :

1. Il est beaucoup plus facile et rapide d'entraîner le modèle : une seule itération. Les réseaux neuronaux sont formés en 1000-100000 itérations en combinant différentes méthodes d'optimisation.

2. Le résultat de l'apprentissage d'une série de puissance est sans ambiguïté, c'est-à-dire un seul minimum qui est à la fois local et global. L'entraînement cohérent d'un réseau neuronal conduit à différents minima locaux et donc à différentes valeurs de poids et à différents modèles du même processus (série chronologique).

Voici la surface E(a,b) pour la série de puissance y = a*x + b*x^2 avec des données d'apprentissage "bruyantes" t[k] = cos(x[k]) + rnd :


Notez que, contrairement au réseau neuronal, il n'y a qu'un seul minimum ici.

L'inconvénient du modèle non linéaire basé sur la série de puissance est la croissance rapide du nombre de ses coefficients avec l'augmentation de l'ordre de la série de puissance. Supposons que n soit le nombre d'entrées (x[1]..x[n]). Le nombre de coefficients nc est déterminé par des formules :

ordre = 1, nc = n+1

ordre = 2, nc = (n+1)*(n+2)/2

ordre = 3, nc = (n+1)*(n+2)*(n+3)/6

ordre = 4, nc = (n+1)*(n+2)*(n+3)*(n+4)/24

...

Par exemple, un modèle de processus d'ordre 3 avec 12 entrées a 455 coefficients. Leur taux de récupération est toujours plus élevé que celui du réseau neuronal avec moins de poids. Le problème n'est pas de ralentir le taux d'apprentissage de la série de puissance mais de trouver un nombre suffisant d'ensembles d'apprentissage x[1...n][k],t[k] qui doit dépasser le nombre de coefficients du modèle pour éviter la dégénérescence. En pratique, les séries de puissance d'ordre 2 ou 3 donnent des résultats satisfaisants.

 
gpwr >> :

Je suis encore novice en matière de maillages, je ne peux donc pas m'exprimer avec autorité,

mais je pense que tous les passionnés de maillage sur le forum essaient de faire un solveur linéaire (un système d'équations linéaires),

et ensuite, afin d'introduire de l'imprévisibilité dans la solution, ils la font tenir en bouclant l'entrée avec la sortie.


Je suis arrivé à la même conclusion que vous en réfléchissant et en essayant de comprendre ce que font les autres.

Mais en le résolvant de cette façon, vous ne répondrez pas à la question :

Et ces données nouvellement arrivées n'ont pas de racines dans le système - elles sont ACHAT ou VENTE.

Parce qu'il n'y a pas de fonction qui définit le modèle.


essayer d'enseigner la grille à la zone peinte.

Vous voulez entraîner TE de sorte que lorsque les coordonnées de cette zone sont saisies, la grille génère 1, et lorsque les coordonnées d'une zone non peinte sont 0.

La sortie de chaque neurone doit comporter un classificateur qui doit prendre un état en fonction de la formation :

Si d est supérieur à d ou vrai si inférieur à d (d est un seuil, respectivement). (Si je me trompe, ne me jugez pas trop sévèrement).

 
gpwr >> :

Après avoir étudié en profondeur les réseaux neuronaux et utilisé divers algorithmes d'apprentissage, allant de la descente de gradient à la génétique, je suis arrivé à la conclusion que l'appareil mathématique des réseaux neuronaux n'est pas parfait.

Vous n'avez pas besoin d'avoir un idéal entre les mains. Tout cela résonne avec la question de savoir quel pourcentage de mouvement on peut se permettre de sauter pour améliorer la fiabilité de l'entrée sur le marché. Idéalement, on aimerait prendre 100%, juste sur le zigzag ;-). En pratique, ce serait un graal pour beaucoup de gens de prendre au moins 50% sur chaque bord.

À en juger par les informations disponibles, les grilles fonctionnent. Les problèmes d'ambiguïté sont résolus en choisissant la configuration, la taille de la maille et son initialisation. En principe, le problème des minima locaux est également résolu - par recuit ou par la même méthode génétique (ne choisissons-nous pas la probabilité d'accepter les "mauvais gènes" à cet endroit, ce qui équivaut à sortir de la vallée locale ?) De plus, il ne faut pas oublier que ce sont des comités de filets qui font le travail, pas un seul. Et d'un point de vue plus général, tout ne se limite-t-il pas à une grille de rétropropagation avec apprentissage assisté par un professeur ? Pourquoi ne pas essayer de mettre des citations et des signaux dans le vecteur d'entrée et de les transmettre à Kohonen, par exemple ?

 
gpwr писал(а) >>

Disposez-vous d'un réseau qui génère des profits stables ?

Que pensez-vous que signifie "bénéfices stables" ?

 
marketeer >> :

Il n'est pas nécessaire d'en avoir un parfait en main. Tout cela fait écho à la question de savoir quel pourcentage de mouvement on peut se permettre de sauter afin d'améliorer la crédibilité de l'entrée sur le marché. Idéalement, on aimerait prendre 100%, juste sur le zigzag ;-). En pratique, ce serait un graal pour beaucoup de prendre au moins 50% sur chaque bord.

A en juger par les informations disponibles, les filets fonctionnent. Les problèmes d'ambiguïté sont résolus en choisissant la configuration, la taille de la grille et son initialisation. En principe, le problème des minima locaux est également résolu - par recuit ou par la même méthode génétique (ne choisissons-nous pas la probabilité d'accepter les "mauvais gènes" à cet endroit, ce qui équivaut à sortir de la vallée locale ?) De plus, il ne faut pas oublier que ce sont des comités de filets qui font le travail, pas un seul. Et d'un point de vue plus général, tout ne se limite-t-il pas à une grille de rétro propagation complète avec un apprentissage assisté par un professeur ? Pourquoi ne pas essayer de mettre des citations et des signaux dans le vecteur d'entrée et de transmettre cela à Kohonen, par exemple ?


Vous avez mal compris l'essence de mon raisonnement. Je ne parlais pas de la corrélation entre un réseau "sous-appris" et les résultats du trading. Il est écrit partout que le réseau doit être entraîné jusqu'à ce que l'erreur sur l'échantillon testé cesse de diminuer. Je suis d'accord avec cela et je ne veux pas me disputer à ce sujet. L'essence de mon raisonnement était de montrer comment une structure de réseau parallèle conduit à des difficultés dans son optimisation et comment un modèle non linéaire basé sur une série de puissance est capable d'atteindre le même objectif qu'un réseau neuronal, mais avec un appareil mathématique beaucoup plus simple et un processus d'apprentissage rapide conduisant à un résultat unique.

Quant au comité des réseaux, j'ai une opinion : tout cela est inutile. Voici une question pour tous ceux qui croient aux comités de réseau. Supposons qu'un réseau donne des signaux corrects dans 60 % des cas. Un autre réseau donne les bons signaux dans 60% des cas. Combinons maintenant ces deux réseaux et calculons les signaux corrects reçus par les deux réseaux simultanément. C'est-à-dire que si les deux réseaux indiquent "achat" ou "vente", le signal "achat" ou "vente" correspondant sera donné. Si un réseau indique "acheter" et l'autre "vendre", aucun signal n'est donné. Quelle est la probabilité que ces signaux soient corrects ?

Vous pourriez formuler la même question différemment. Prenez une réunion de scientifiques où tout le monde vote sur la question "s'il y a de la vie sur Mars ?" d'un point de vue biologique. 60% des votants répondent correctement à la question (d'ailleurs je ne connais pas la réponse :) Prenez la réunion d'autres scientifiques qui votent sur la même question, mais du point de vue astronomique, et seulement 60% d'entre eux ont raison. Puis combinez deux réunions (biologistes et astronomes) en une seule et posez la même question. Si vous dites que, par miracle, la justesse de la réponse dépasse 60 %, vous devez étudier les statistiques.

 
gpwr писал(а) >>

Vous avez mal compris l'essence de mon raisonnement. Je n'ai pas parlé de la relation entre un réseau "non formé" et les résultats du trading. Il est écrit partout que le réseau doit être entraîné jusqu'à ce que l'erreur dans l'échantillon testé cesse de diminuer. Je suis d'accord avec cela et je ne veux pas me disputer à ce sujet. L'essence de mon raisonnement était de montrer comment une structure de réseau parallèle conduit à des difficultés dans son optimisation et comment un modèle non linéaire basé sur une série de puissance est capable d'atteindre le même objectif qu'un réseau neuronal, mais avec un appareil mathématique beaucoup plus simple et un processus d'apprentissage rapide conduisant à un résultat unique.

Quant au comité des réseaux, j'ai une opinion : tout cela est inutile. Voici une question pour tous ceux qui croient aux comités de réseau. Supposons qu'un réseau donne des signaux corrects dans 60 % des cas. Un autre réseau donne les bons signaux dans 60% des cas. Combinons maintenant ces deux réseaux et calculons les signaux corrects reçus par les deux réseaux simultanément. C'est-à-dire que si les deux réseaux indiquent "achat" ou "vente", le signal "achat" ou "vente" correspondant sera donné. Si un réseau indique "achat" et l'autre "vente", aucun signal n'est donné. Quelles sont les probabilités que ces signaux soient corrects ?

Nous pouvons formuler la même question d'une autre manière. Prenez une réunion de scientifiques où tout le monde vote sur la question "s'il y a de la vie sur Mars ?" d'un point de vue biologique. 60% des votants répondent correctement à la question (d'ailleurs je ne connais pas la réponse :) Prenez la réunion des autres scientifiques qui votent sur la même question mais du point de vue astronomique et seulement 60% d'entre eux ont raison. Puis combinez deux réunions (biologistes et astronomes) en une seule et posez la même question. Si vous dites que, par miracle, la justesse de la réponse dépasse les 60 %, alors vous devez étudier les statistiques.

Ce n'est pas un très bon exemple...

Il existe de nombreuses façons de construire des compositions algorithmiques (comités). Vous suggérez le vote, d'après mon expérience je peux dire que c'est loin d'être le meilleur moyen, une simple pondération est souvent meilleure.

L'autocorrélation (FunkOsh[i]||FunkOsh[i+1]) est généralement significative > 0,8. Et la corrélation des fonctions d'erreur des algorithmes de base tend vers 1. Les comités de construction estiment que les algorithmes de base se compensent mutuellement, il est nécessaire qu'il n'y ait pas de corrélation entre les fonctions d'erreur pour que tout soit bon.

Et n'oublions pas AdaBoost - il fonctionne vraiment, mais il a ses propres pièges.

 
gpwr >> :

Vous avez probablement oublié, comme d'ailleurs la plupart des auteurs de neuros sur ce forum, à en juger par les commentaires laissés, l'apprentissage sans professeur. Pourquoi, si vous utilisez le NN dans le trading, devez-vous enseigner quelque chose au NN ? Nous ne pouvons pas nous enseigner de manière adéquate comment faire du commerce. En parlant du comité des réseaux, voulez-vous dire que chaque NN est formé indépendamment ? Et pourquoi donnent-ils des signaux séparément les uns des autres ? Lorsque l'on construit des NNs, et encore moins un comité de NNs, la seule solution correcte est "l'apprentissage sans professeur". Le cerveau comporte plusieurs parties et plus d'une douzaine de sous-branches. Chacun d'entre eux remplit une fonction différente, en traitant les informations qui lui sont extérieures. Et le propriétaire de ce "comité" prend une seule décision. Comment cela est-il possible ? C'est possible parce que le comité des réseaux doit fonctionner en connexion les uns avec les autres - comme un complexe, sinon rien ne fonctionnera, il y aura un "dédoublement de personnalité".

 
StatBars >> :

juste un peu d'avance sur moi :)

 
gpwr >> :

A propos du comité du réseau, j'ai une opinion : tout cela est inutile. Voici une question pour tous ceux qui croient aux comités de réseau. Disons qu'un réseau donne les bons signaux 60 % du temps. Un autre réseau donne les bons signaux dans 60% des cas. Combinons maintenant ces deux réseaux et calculons les signaux corrects reçus par les deux réseaux simultanément. C'est-à-dire que si les deux réseaux indiquent "achat" ou "vente", le signal "achat" ou "vente" correspondant sera donné. Si un réseau indique "acheter" et l'autre "vendre", aucun signal n'est donné. Quelles sont les probabilités que ces signaux soient corrects ?

Nous pouvons formuler la même question d'une autre manière. Prenez une réunion de scientifiques où tout le monde vote sur la question "s'il y a de la vie sur Mars ?" d'un point de vue biologique. 60% des votants répondent correctement à la question (d'ailleurs je ne connais pas la réponse :) Prenez la réunion des autres scientifiques qui votent sur la même question mais du point de vue astronomique et seulement 60% d'entre eux ont raison. Puis combinez deux réunions (biologistes et astronomes) en une seule et posez la même question. Si vous dites que, par miracle, la justesse de la réponse dépasse 60 %, vous devez étudier les statistiques.

probabilité d'un signal correct (0.6*0.6)/(0.6*0.6+0.4*0.4)=69.23%, ceci est en théorie)

l'exemple d'une collection de scientifiques est incorrect. de la probabilité à la moyenne.

Les statistiques sont une autre partie amusante des mathématiques :)

 
gpwr писал(а) >> Il est écrit partout que le réseau doit être entraîné jusqu'à ce que l'erreur dans l'échantillon testé cesse de diminuer.

C'est en fait beaucoup plus compliqué que ça. Lorsque vous l'entraînez à une erreur minimale sur l'échantillon testé, vous risquez d'obtenir un réseau surentraîné.......