Réseau neuronal - page 2

 
xweblanser >> :

Merci beaucoup, désolé de ne pas avoir beaucoup de commentaires, mais je vais essayer de trouver une solution. ....

Sur le site www.nnea.net/downloads, vous trouverez une bonne collection de fichiers PDF contenant des recherches sur la prévision des marchés financiers avec NS. Vous devez vous inscrire. Jetez également un coup d'œil à la section sur la recherche.

 
marketeer >> :

Un trader n'a pas vraiment besoin de comprendre le fonctionnement interne du NS. Pour lui, c'est une boîte noire avec des entrées et des sorties. Il existe de nombreux réseaux prêts à l'emploi dans le domaine public, notamment sur ce site web - il suffit de taper "réseaux neuronaux" dans le champ de recherche. L'une des dernières publications, par exemple - Predictor based on a self-learning neural network. Le principal problème de l'utilisation des NS est le choix des données à introduire et à entraîner, la manière de préparer ces données, la structure et la taille du réseau, etc. Par exemple, nous prenons le réseau déjà mentionné, nous essayons de l'entraîner comme l'ont fait Yezhov et Shumsky (voir Neurocomputing and its application in economics and business, je recommande)... Et on se retrouve avec un flop. Il peut y avoir de nombreuses raisons à cela. Et c'est là que le travail du trader commence : il doit comprendre ce qui a pu changer depuis (ou ce que les auteurs ne disent pas ;-) ), et ce qu'il faut changer dans les paramètres et les données d'entrée.

Eh bien, je suis un trader, mais surtout un programmeur... Je voulais écrire un réseau de neurones pour moi-même et en même temps me prouver que je peux.....

 
njel >> :

Vous trouverez une bonne sélection de fichiers PDF contenant des études sur la prévision des marchés financiers à l'aide de NS sur le site www.nnea.net/downloads. Vous devez vous inscrire. Voir également la section sur la recherche.

>> Merci.

 
xweblanser >> :

1. D'après ce que je comprends, chaque neurone du réseau représente la même fonction... mais je ne comprends pas comment la même fonction peut produire des valeurs différentes lorsque les mêmes données arrivent...

Ces entrées seront multipliées par différents coefficients de pondération. Les valeurs des fonctions seront donc différentes. Après avoir étudié en profondeur les réseaux neuronaux et utilisé différents 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. Un réseau neuronal est conçu pour approximer une fonction non linéaire. Selon le théorème de Kolmogorov, le réseau est capable de réaliser n'importe quelle fonction continue. En pratique, le parallélisme du réseau conduit à une multitude de minima locaux et de réalisations de la fonction modélisée. Prenons l'exemple du réseau présenté ci-dessous. Le réseau a une entrée, une sortie et une couche cachée avec deux neurones. Chaque neurone caché multiplie l'entrée x par son poids (w1 ou w2), passe le résultat par la fonction d'activation (disons tanh), les valeurs obtenues sont additionnées à la sortie du réseau. Pour simplifier, supposons que les entrées de biais sont nulles. Les poids des neurones de sortie sont les mêmes et sont égaux à 1.


Créons maintenant un problème d'approximation de fonction. Supposons que notre fonction soit t = cos(x) (t signifie cible). Le réseau calculera sa valeur par la formule

y = tanh(w1*x) + tanh(w2*x)

L'entraînement (ou coaching) du réseau consiste à trouver les poids w1 et w2, pour lesquels la sortie du réseau y est la plus proche de la valeur de notre fonction t. On y parvient en minimisant la somme des carrés de l'erreur

E(w1,w2) = sum((t[k]-y[k])^2,k=0...p-1)

où la sommation est effectuée sur différentes données d'apprentissage : x[k],t[k]. Voyons comment se présente la surface de notre fonction cible minimisante E(w1,w2) lorsqu'il n'y a pas de bruit dans les mesures t[k] = cos(x[k]) :


Ce graphique montre qu'il existe un ensemble infini de solutions (w1, w2) minimisant notre fonction objectif E (remarquez les vallées plates). Ce n'est pas difficile à comprendre : le réseau est symétrique par rapport à w1 et w2. Les résultats de l'entraînement du réseau seront différents selon le choix des valeurs initiales de w1 et w2. Comme ces valeurs initiales sont toujours choisies de manière aléatoire, les entraînements successifs du réseau sur les mêmes données d'entraînement x[k],t[k] conduiront à des valeurs différentes des poids optimisés w1 et w2. Il n'y a essentiellement aucun minimum global ici. Ou, pour le dire autrement, une infinité de minima locaux sont aussi des minima globaux.

Compliquons maintenant notre problème en ajoutant du bruit à notre série : t[k] = cos(x[k]) + rnd. Cette série bruyante est statistiquement plus similaire à la série des prix que le cosinus parfait :


Maintenant, la surface de notre fonction de minimisation E(w1,w2) ressemble à ceci :


Remarquez les nombreux pics, tant sur les sommets que sur les vallées. Allons briefly près d'une des vallées :


Ici, nous pouvons voir plus clairement l'ensemble des minima locaux. Imaginons maintenant l'optimisation de E(w1,w2) par descente de gradient. En fonction des valeurs initiales de w1 et w2, cette descente conduira à un minimum différent. De plus, ce minimum local peut se trouver soit au sommet, soit dans la vallée. L'optimisation génétique n'aidera ici qu'à descendre du sommet vers l'une des vallées et à rester bloqué à l'un des minima locaux. La situation devient beaucoup plus compliquée si, outre w1 et w2, on optimise également les poids du neurone de sortie, qui étaient égaux à un dans la considération précédente. Dans ce cas, nous avons un espace à 4 dimensions avec un grand nombre de minima locaux avec des coordonnées (w1,w2,w3,w4).

Par toute cette description simplifiée du comportement du réseau neuronal, j'ai voulu prouver que le parallélisme du réseau (ou la symétrie de sa sortie par rapport aux poids des neurones d'une même couche) entraîne des difficultés de son apprentissage (optimisation de ces poids) en raison de la présence d'un ensemble infini de minima locaux surtout pour des séries chaotiques comme les séries de prix.

Je joins le fichier MathCAD dans lequel les calculs ci-dessus ont été effectués.

Dossiers :
nnrsimplea2.zip  699 kb
 
gpwr писал(а) >> Par cette description simplifiée du comportement du réseau neuronal, je voulais prouver que le parallélisme du réseau (ou la symétrie de sa sortie par rapport aux poids des neurones d'une même couche) entraîne des difficultés dans son apprentissage (optimisation de ces poids) en raison de la présence d'un nombre infini de minima locaux, surtout pour des séries chaotiques comme les séries de prix.

Une question - comment cela affecte-t-il les bénéfices ?

 
LeoV >> :

Une question - comment cela affecte-t-il la rentabilité ?

Avez-vous un réseau qui génère des profits réguliers ?

 
LeoV >> :

Une question - comment cela affecte-t-il les bénéfices ?

La rentabilité est absolument affectée. Il n'y a aucune garantie de trouver le bon minimum local, suffisamment profond, qui serait adéquat pour mettre en œuvre un TS rentable basé sur un réseau neuronal.

 
gpwr >> :

Quel MathCad utilisez-vous ? Vos calculs ne s'ouvrent pas dans Mathcad 13.

 

Le but de la minimisation/maximisation de la fonction cible E(w1,w2) est de trouver un extremum global. Et s'il existe un million de ces extrêmes mondiaux, quelle différence cela fait-il pour nous de savoir dans lequel de ces extrêmes 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.


LeoV >> :

>> Une question - comment cela influence-t-il le bénéfice ?

Ce que gpwr a décrit, il ne le fait pas.

 
Urain >> :

Quel MathCad utilisez-vous ? Je n'arrive pas à ouvrir vos calculs dans Mathcad 13.

>> Mathcad 14. >> Je joins le même fichier dans la version 11.

Dossiers :
nnosimplem2.zip  14 kb