Article : Prévision des prix avec des réseaux neuronaux - page 15

 
Neutron:

Addendum.

Il a porté, il a porté et il a porté ;-)

Il s'agit de la solution analytique "FINE" pour les échelles d'une NS non linéaire à une couche :

...

Ça m'a fait sourire.

Mais l'ensemble du calcul prend 1 milliseconde.

Théoriquement, tout SN est équivalent à un système d'équations. Et s'il est assez simple, il est plus économique d'écrire ce système sous forme analytique et de le résoudre par rapport aux poids. Les problèmes, et avec eux la nécessité de méthodes d'entraînement astucieuses, commencent à apparaître lorsque le réseau (c'est-à-dire son système d'équations équivalent) devient plus complexe. C'est en réalisant ce fait que j'ai un jour suspendu ma connaissance des réseaux, commencée par intérêt. J'ai simplement décidé que je devais d'abord inventer un modèle et ensuite seulement chercher les moyens les plus économiques de le résoudre. Il me semble toujours que l'application des méthodes NS ne se justifie que pour les modèles très complexes :) .

 
Jhonny:

Expliquez-moi ça en tant que novice en "neurosciences"... Je comprends que le réseau en question est un perceptron multicouche.

Quelle est la raison du choix de ce type de réseau, pourquoi pas Hopfield ou Kohonen ou autre chose ?

C'est plutôt une question philosophique. Le fait est qu'il existe un nombre infini d'architectures NS "complexes", alors que la plus simple est la seule ! C'est un perceptron à une seule couche. Dans ce cas, il est mis en œuvre avec une fonction d'activation non linéaire.


à Candid

Théoriquement, tout SN est équivalent à un système d'équations. Et si elle est assez simple, il est plus économique de l'écrire sous une forme analytique et de la résoudre par rapport aux poids. Les problèmes, et avec eux la nécessité de méthodes d'entraînement astucieuses, commencent à apparaître lorsque le réseau (c'est-à-dire son système d'équations équivalent) devient plus complexe. C'est en réalisant ce fait que j'ai un jour suspendu ma connaissance des réseaux, commencée par intérêt. J'ai simplement décidé que je devais d'abord trouver un modèle et ensuite seulement chercher les moyens les plus économiques de le résoudre. Il me semble toujours que l'application des méthodes NS ne se justifie que pour les modèles très complexes :) .

Bien. Nous pouvons également mentionner la non-stationnarité inhérente aux BP du marché, qui met fin aux méthodes statistiques traditionnelles et donne un point de plus en faveur des NS.


Au fait, j'ai trouvé une solution analytique des systèmes d'équations pour les poids NS. La figure en noir montre la méthode habituelle d'apprentissage de NS par rétropropagation de l'erreur (ORO) nombre d'époques 1000 et en bleu la solution analytique. La formation des SN a lieu à chaque étape, la prédiction une étape à l'avance.


On peut constater que la variante analytique sur la section tendance de BP est incorrecte pour des raisons que je ne comprends pas. Mais le temps de calcul de ce problème selon la méthode ORO est de 10 secondes, et pour la méthode analytique il est de 0,001 seconde.

Le gain de performance est 10000 fois supérieur !

En général, le fonctionnement du réseau est fascinant. Il semble sentir la tendance des prix et l'attire, comme un aimant, dans ses prévisions !

 
Neutron:
Jhonny:

Expliquez-moi ça en tant que novice en "neurosciences"... Je comprends que le réseau en question est un perceptron multicouche.

Quelle est la raison du choix de ce type de réseau, pourquoi pas Hopfield ou Kohonen, ou autre chose ?

C'est plutôt une question philosophique. Le fait est qu'il existe un nombre infini d'architectures NS "complexes", alors que la plus simple est la seule ! C'est un perceptron à une seule couche. Dans ce cas, il est mis en œuvre avec une fonction d'activation non linéaire.

...

En général, le fonctionnement du réseau est fascinant. Il semble sentir la tendance des prix et s'y attache, comme s'il s'agissait d'un aimant !

La question est bien sûr philosophique. Je suis également un débutant. Mais pourquoi pas un filet de probabilité, par exemple. Surtout après les événements bien connus de l'année dernière ? Il est vrai que la tâche est différente là aussi. Si la prédiction est proche du filtrage, à savoir un paramètre observable, alors l'estimation de la probabilité est plus proche du filtrage d'un paramètre non observable, mais résout d'emblée le problème de la transition vers le domaine des solutions.

P.S. À propos, le temps d'exécution d'un réseau probabiliste est incomparablement inférieur à celui d'un perceptron multicouche, et la capacité d'apprentissage n'est pas plus mauvaise.

P.P.S. Quand j'ai regardé la courbe d'équilibre de Better pendant le championnat, j'ai été fasciné, moi aussi. :-)

 
Neutron:

Je veux creuser plus profondément... Par exemple, comment se justifie la complexité des NS (couches cachées).

Cela dépend de ce qui est introduit dans l'entrée. Si nous prenons directement les barres (leurs incréments) sur le marché - alors cela sera très justifié.


Vous ne le voyez pas dans vos exemples, car vos graphiques sont lisses - monotones par morceaux. Vous avez même une "décision" NS à entrée unique. C'est-à-dire l'analogue du système de trading de suivi de tendance le plus primitif. Ce problème est parfaitement résolu sans NS. Quels réseaux multicouches existe-t-il...

Neutron:

Bref, je deviens fou ! Le fait est que si vous représentez la non-linéarité de NS sous une certaine forme, vous pouvez obtenir une solution analytique précise pour les poids. Cela signifie à son tour qu'il sera possible de se passer de la méthode de la propagation inverse des erreurs pour l'entraînement du réseau et d'obtenir le résultat le plus précis possible en une seule action, sans qu'il y ait besoin de 1000 époques d'entraînement ! !!

Il faut comprendre que la formation NS est un problème d'optimisation de fonction. Et sa solution analytique est beaucoup plus compliquée que la résolution de systèmes d'équations. Examinez les méthodes de calcul analytique d'une fonction de régression linéaire à partir d'une variable (analogue du perceptron le plus simple)... Qu'en pensez-vous ? Imaginez maintenant à quoi ressemblerait la solution s'il y a beaucoup de variables et si la fonction est non linéaire au nième degré (analogue de la NS multicouche)... :-)


La NS a été inventée pour simplifier la vie. Et il n'est pas nécessaire de former le réseau exactement par rétropropagation. C'est l'algorithme le plus simple - mais aussi le plus lent. En outre, il existe des algorithmes qui sont plus rapides de plusieurs ordres de grandeur.

 
ds2:
Neutron:

Je veux creuser plus profondément... Par exemple, comment se justifie la complexité des NS (couches cachées).

Cela dépend de ce qui est introduit dans l'entrée. Si nous prenons directement les barres (leurs incréments) sur le marché - alors cela sera très justifié.


Vous ne le voyez pas dans vos exemples, car vos graphiques sont lisses - monotones par morceaux. Il y a même une "direction" NS à entrée unique. C'est-à-dire l'analogue du système de trading suivant la tendance le plus primitif. Ce problème est parfaitement résolu sans NS. Quels réseaux multicouches existe-t-il...

ds2, pourriez-vous s'il vous plaît donner une raison en faveur du perceptron multicouche par rapport au perceptron monocouche, utilisé pour des besoins de prévision BP comme ceux des prix, si leur profondeur d'immersion est la même. J'aimerais voir l'argument sous la forme d'un graphique de la capacité de prédiction.

 
Neutron:
ds2:

Cela dépend de ce qui est introduit dans l'entrée. Si vous collez des barres droites (leurs incréments) du marché - ce sera très justifié.

Vous ne voyez pas cela dans vos exemples parce que vos graphiques sont lisses - monotones par morceaux.

ds2, pourriez-vous présenter des arguments en faveur d'un perceptron multicouche par rapport à un perceptron monocouche utilisé pour les besoins de prévision de la BP, comme la tarification, si leur profondeur d'immersion est la même. J'aimerais voir l'argument sous la forme d'un graphique de la capacité de prédiction.

Eh bien, c'est évident si vous comprenez comment le réseau fonctionne. Un réseau à une seule couche ne peut décrire que des dépendances monotones, tandis qu'un réseau multicouche peut décrire n'importe quelle dépendance.


Si nous comparons les capacités du NS et des types de MTS connus, un réseau à une seule couche peut imiter le fonctionnement du MACD mais seul un réseau multicouche peut reconnaître les modèles de Pessavento.


Vous pouvez expérimenter et voir par vous-même. Vous avez tous les outils et les données pour cela.

 

Quelqu'un a-t-il écrit dans MQL le critère de Kolmogorov-Smirnov pour estimer les entrées et la corrélation de rang de Spearman ?

 
Je n'ai pas encore fait le test, et la corrélation de rang n'est pas vraiment à rechercher - 'Spearman's Rank Correlation Coefficient'.
 
Curieux de voir si quelqu'un l'a ? Ou cette information a-t-elle déjà été mentionnée et je l'ai manquée ? Poke le lien s'il vous plaît.

Ce lien n'est même pas accessible lorsque vous vous inscrivez. Ou peut-être décrit-il le chemin vers le Graal ;-).


http://www.maikonline.com/maik/showArticle.do?auid=VAF0AMGLSL〈=fr PDF 274kb

UN CADRE DE RÉSEAU NEURONAL POUR LA MODÉLISATION D'UNE FONCTION COMPLEXE DE NOMBREUSES VARIABLES SUR DES DONNÉES ÉCHANTILLONNÉES
Е. V. Gavrilova, O. A. Mishulina, M. V. Shcherbinina Izvestia RAN. Théorie et systèmes de contrôle # 1, janvier-février 2007, P. 73-82

Nous considérons le problème de l'approximation d'une fonction de plusieurs variables, qui est mesurée par rapport à un bruit additif et caractérisée par des propriétés dynamiques qualitativement différentes dans certains sous-domaines de sa définition. Nous proposons la solution à ce problème en utilisant la structure de réseau neuronal modulaire spécialisé LINA. Les règles pour sa formation et son fonctionnement sont formulées.
 

Lors de la formation dans Anfisedit, une erreur s'affiche continuellement :

? ?? Erreur lors de l'utilisation de ==> anfisedit
Objet de poignée non valide.

? ?? Erreur lors de l'évaluation du Callback d'uicontrol.

J'ai préparé les données, mais pas par le taux absolu comme dans l'article, mais par le type de bougie. Si le prix de clôture de la bougie du jour est supérieur au prix d'ouverture - alors 1, si vice versa -1. Au début, j'avais 10 entrées mais mon ordinateur portable ne les a pas sorties. J'ai diminué le nombre d'entrées comme décrit dans l'article à 4, l'architecture est affichée, tout semble bien, mais quand j'appuie sur train après quelques époques, la formation s'arrête, Train Error est écrit au-dessus du graphique et dans la ligne de commande que j'ai écrite au tout début. Quel est le problème ? Peut-être que la version Matlab est défaillante ? J'ai Matlab 7.0.1.24704 (R14) Servise Pack 1.

Cela n'a pas fonctionné avec ANFIS, j'ai décidé d'essayer NNTool. J'ai chargé séparément les entrées (4 entrées), séparément les sorties, spécifié les paramètres, créé un réseau - mais lorsque je visualise l'architecture du réseau, elle montre que les entrées sont 2. J'ai quand même appuyé sur "train" et j'ai eu une erreur :

Erreur lors de l'utilisation de ==> networktrain
Les entrées sont mal dimensionnées pour le réseau.
Les matrices doivent toutes avoir 2 rangées.
Y avait-il un endroit pour régler le nombre d'entrées ?