Réseau neuronal 2 Moyennes mobiles Un réseau neuronal Conseiller expert basé sur deux moyennes mobiles avec le mode de formation. Former le conseiller expert sur des exemples choisis et faire un profit dans la vie réelle. L'EE peut travailler sur n'importe quel instrument et dans n'importe quelle période. Algorithme commercial de l'EA Deux moyennes mobiles sont analysées par le noyau du réseau neuronal, qui produit des ordres d'achat ou de vente. Les valeurs de deux moyennes mobiles, rapide (FMA) et lente (SMA), sont fournies à la première couche, à la deuxième couche, il calcule deux neurones responsables de l'achat (N acheter) et vendre (N vendre), la décision d'acheter Ou la vente est faite au troisième niveau. Le schéma fonctionnel du réseau neuronal est représenté sur la figure. Formation du conseiller expert Dans le mode de formation, l'EE se souvient des valeurs des moyennes mobiles indiquées par l'utilisateur sur le graphique de l'instrument monétaire. À l'avenir, en fonctionnement normal, il reconnaît les valeurs des moyennes mobiles. Pour former la marque EA au moins un long et un commerce à court sur le graphique. Pour indiquer un commerce long, utilisez la flèche Acheter et, pour le commerce à découvert, utilisez la flèche Vente. Vous pouvez placer plus de flèches sur le graphique. Plus les flèches sont longues, plus le processus de formation sera long. La présence de tout autre objet sur le tableau autre que les flèches n'est pas souhaitable. Après la formation, le dossier NN 2MA sera créé dans le dossier commun du terminal. Il contiendra le fichier HHHHHHHNN2MA. bin avec les paramètres du réseau neuronal entraîné. XXXXXX dans le nom du fichier est le nom de l'instrument financier. En fonctionnement normal, l'EA charge les données du fichier. Si le fichier n'est pas trouvé, il utilisera les paramètres par défaut. Par défaut, l'EA est formé à USDJPY et une heure, les métiers sont sélectionnés en 2012. Les paramètres d'entrée suivants sont responsables de la formation EA: Le nombre de poids par neurone. Égal à la longueur de la MA. Par défaut - 48. Le nombre de cycles de formation - défaut 100. Plus la valeur est élevée, plus le processus de formation sera long. Dans la version d'essai, il est 10. Facteur b - la valeur affecte la vitesse de la correction des poids des neurones, est utilisé pour l'entraînement du réseau. La valeur par défaut est 0.7, n'a pas besoin d'être modifiée. Mode d'apprentissage EA - active le mode de formation de l'EA. Des exemples de métiers spécifiques pour la formation de l'EA sont disponibles sur la figure. Réglages du mode normal Réglages des moyennes mobiles Vous pouvez ajuster les paramètres de chaque moyenne mobile: la période, le prix, le mode de calcul. Volume d'ordre - défaut est 0,1. Valeur des dérapages en points - valeur par défaut est 30. Nombre de tentatives pour ouvrir une position - valeur par défaut est 5. Niveau StopLoss en points - valeur par défaut est 0. Niveau TakeProfit en points - valeur par défaut est 0. Niveau TrailingStop en points - valeur par défaut est 650. Allow Gestion de l'argent - contrôle de la taille de l'ordre d'entrer sur le marché, permis par le défauts. Si le mode est désactivé, la taille de l'ordre est prise du paramètre Volume d'ordre. Le volume des commandes en pourcentage du dépôt - utilisé pour contrôler la taille de la commande, le défaut est de 5 pour cent. Ajout à la position ouverte - activé par défaut. S'il ya un signal pour entrer sur le marché dans la direction d'une position ouverte, l'EA entre sur le marché. Paramètres du réseau neuronal Le nombre de poids par neurone. Égal à la longueur de la MA. Plus la valeur est élevée, plus l'état actuel du marché sera reconnu, mais cela réduira le nombre de transactions. Plus la valeur est basse, moins l'état actuel du marché sera reconnu, mais le nombre d'opérations augmente. Valeur de l'activation neuronale. La valeur est d'environ 0,75 de la valeur de Le nombre de poids par neurone. Plus la valeur est élevée, plus la sélection de neurones est importante pour prendre une décision. Dans la version d'essai, il est de 40. Le nombre de cycles de formation - par défaut est 100. Facteur b la vitesse de correction de poids, par défaut est de 0,7. Mode d'apprentissage EA le mode d'entraînement EA. Pendant la formation, les valeurs maximales des neurones seront indiquées dans les commentaires sur le graphique. Ces valeurs peuvent être utilisées comme valeur d'activation du neurone. Un exemple est illustré sur la figure. Activer les commentaires: active les commentaires sur le graphique. Magic Nombre de conseillers. Pause après la négociation en millisecondes. Par défaut, l'EA est formé sur USDJPY H1 sur deux métiers en 2012. Le résultat des tests Expert Advisor en 2013 est montré dans la figure. Je comprends les réseaux de neurones avec un nombre quelconque de couches cachées peut approcher des fonctions non linéaires, cependant, peut-il Approximative: Je ne peux pas penser à comment il pourrait. Il semble comme une limitation très évidente des réseaux de neurones qui peuvent potentiellement limiter ce qu'il peut faire. Par exemple, en raison de cette limitation, les réseaux neuronaux ne peuvent probablement pas correctement approcher de nombreuses fonctions utilisées dans les statistiques comme Moyenne mobile exponentielle, ou même la variance. Parlant de la moyenne mobile, les réseaux neuronaux récurrents peuvent-ils s'approcher correctement de ce que je comprends comment un réseau neuronal feedforward ou même un seul neurone linéaire peut produire une moyenne mobile en utilisant la technique de la fenêtre coulissante, mais comment les réseaux neuronaux récurrents le feraient sans X quantité de couches cachées (X étant la taille moyenne mobile) En outre, supposons que nous ne connaissons pas la fonction d'origine f. Qui arrive à obtenir la moyenne des 500 dernières entrées, puis la sortie un 1 si son supérieur à 3, et 0 si son n'est pas. Mais pour une seconde, prétendre que nous ne savons pas que, c'est une boîte noire. Comment un réseau neuronal récurrent s'approcherait-il? Nous aurions d'abord besoin de savoir combien de temps il devrait avoir, ce que nous ne. Peut-être un réseau LSTM pourrait, mais même alors, si ce n'est pas une simple moyenne mobile, sa moyenne mobile exponentielle Je ne pense pas même LSTM peut le faire. Pire encore, que si f (x, x1) que nous essayons d'apprendre est simplement Cela semble très simple et direct. Peut un réseau de neurones l'apprendre Je ne vois pas comment. Est-ce que je manque quelque chose d'énorme ici ou sont machine algorithmes d'apprentissage extrêmement limité Y at-il d'autres techniques d'apprentissage en plus de réseaux neuronaux qui peuvent réellement faire tout cela Le point clé à comprendre est compact. Les réseaux neuronaux (comme toute autre structure d'approximation comme les polynômes, les splines ou les fonctions de base radiales) peuvent approximer toute fonction continue uniquement dans un ensemble compact. En d'autres termes, la théorie indique que, étant donné: alors il existe un réseau de neurones qui s'approche de f (x) avec une erreur d'approximation inférieure à epsilon. Partout dans a, b. En ce qui concerne votre exemple de f (x) x 2. Oui vous pouvez l'approximer avec un réseau de neurones dans n'importe quelle gamme finie: -1,1. 0, 1000. Etc. Pour visualiser cela, imaginez que vous approchiez f (x) dans -1,1 avec une fonction Step. Pouvez-vous le faire sur le papier Notez que si vous faites les étapes assez étroites, vous pouvez obtenir la précision souhaitée. La façon dont les réseaux de neurones s'approchent f (x) n'est pas très différente de celle-ci. Mais là encore, il n'y a pas de réseau de neurones (ou toute autre structure d'approximation) avec un nombre fini de paramètres qui peuvent approcher f (x) x 2 pour tout x dans -,. Répondre Mar 20 15 at 18:06 Je comprends réseaux neuronaux avec un nombre quelconque de couches cachées peuvent approcher des fonctions non linéaires, cependant, peut-il approximative: La seule façon que je peux comprendre cette question est que vous parlez d'extrapolation. Ainsi par exemple. Donné des échantillons de formation dans la plage -1 lt x lt 1 peut un réseau neuronal apprendre les bonnes valeurs pour x gt 100. Est-ce ce que vous voulez dire Si vous aviez des connaissances antérieures, que les fonctions que vous essayez d'approximation sont susceptibles d'être de faible ordre Polynômes (ou tout autre ensemble de fonctions), alors vous pourriez certainement construire un réseau neuronal qui peut représenter ces fonctions, et d'extrapoler x2 partout. Si vous n'avez pas de connaissances antérieures, les choses sont un peu plus difficiles: Il ya infiniment beaucoup de fonctions lisses qui correspondent à x2 dans la plage -1..1 parfaitement, et theres aucune bonne raison pour laquelle nous nous attendrions à x2 pour donner de meilleures prédictions que tout autre fonction. En d'autres termes: si nous n'avions aucune connaissance préalable sur la fonction essayaient d'apprendre, pourquoi voudrions-nous apprendre x - gt x2. Dans le domaine des ensembles d'entraînement artificiels, x2 pourrait être une fonction probable, mais dans le monde réel, il n'est probablement pas. Pour donner un exemple: disons que la température lundi (t0) est 0, le mardi son 1, mercredi son 4. Nous n'avons aucune raison de croire que les températures se comportent comme des polynômes de bas ordre, donc nous ne voudrions pas inférer de ces données Que la température lundi prochain sera probablement autour de 49. Supposons aussi que nous ne savons pas la fonction d'origine f, qui arrive à obtenir la moyenne des 500 dernières entrées, puis la sortie un 1 si son supérieur à 3 et 0 si ce n'est pas. Mais pour une seconde, prétendre que nous ne savons pas que, c'est une boîte noire. Comment un réseau neuronal récurrent se rapprocherait-il que je pense que ce sont deux questions: Premièrement, un réseau neuronal peut-il représenter cette fonction, c'est-à-dire Est-il un ensemble de poids qui donnerait exactement ce comportement Cela dépend évidemment de l'architecture du réseau, mais je pense que nous pouvons trouver des architectures qui peuvent représenter (ou du moins rapprocher) ce type de fonction. Question 2: Peut-elle apprendre cette fonction, étant donné suffisamment d'échantillons d'entraînement Eh bien, si votre algorithme d'apprentissage ne se coincer dans un minimum local, bien sûr: Si vous avez suffisamment d'échantillons d'entraînement, un ensemble de poids qui ne correspond pas à votre fonction donne une erreur d'entraînement plus grande Que 0, alors qu'un ensemble de poids qui correspondent à la fonction que vous essayez d'apprendre a une erreur de formation0. Donc, si vous trouvez un optimum global, le réseau doit correspondre à la fonction. La raison pour laquelle je pensais à x2. Et les moyennes simples ou exponentielles mobiles est en particulier parce qu'il est utilisé une bonne affaire dans la prévision des marchés financiers dans l'analyse technique. J'espérais qu'un réseau de neurones pourrait potentiellement apprendre ces algorithmes et le commerce basé sur eux sans avoir d'abord de les coder en dur et d'entrer leur résultat. Cependant, j'essaie de savoir si un réseau neuronal peut même apprendre une fonction comme celle-là. Ndash Essam Al-Mansouri Je comprends comment x2 n'est pas exactement utile pour la prévision météorologique, et pourrait faire le réseau de prévoir 49 degrés le lundi suivant, mais I39m sûr d'être en mesure d'apprendre une fonction polynomiale pourrait être utile Pour la prédiction des prix FOREX, par exemple. Je comprends peut-être une architecture de réseau différente que j'avais à l'esprit pourrait être capable, mais je ne connais aucune architecture qui peut représenter f (x, x1) xx1 Je pense que j'ai pu mal utiliser le mot approximate au lieu de représenter, mais je crois que vous Toujours compris ce que j'essayais de dire très bien. Désolé, je n'ai pas pu modifier mon dernier post dans le temps. Ndash Essam Al-Mansouri Je comprends réseaux neuronaux avec un nombre quelconque de couches cachées peut approximer les fonctions non linéaires, cependant, peut-il approximative: Oui, il peut. Je ne sais pas ce qui vous fait penser que c'est une fonction difficile à approcher, son un très facile. Compte tenu de suffisamment d'unités cachées un réseau neuronal peut approximer toute fonction à une précision arbitraire sur une plage arbitraire. Parlant de la moyenne mobile, les réseaux neuronaux récurrents peuvent-ils s'approcher correctement de Oui, il peut le faire. C'est un nouveau problème très simple que vous semble penser est difficile pour une raison que vous ne partagez pas. Vous pouvez voir la solution triviale en créant simplement l'état caché assez grand pour contenir l'histoire entière et le reste du réseau pour calculer la moyenne de l'état caché récurrent. Nous devrions d'abord savoir combien de timestaps il devrait avoir, ce que nous dont. C'est un problème de réglage des paramètres, ceux-ci ont été traités avant. Vous pouvez facilement rechercher plus d'informations sur eux. Est-ce que je manque quelque chose d'énorme ici ou sont des algorithmes d'apprentissage machine extrêmement limité Y at-il d'autres techniques d'apprentissage en plus des réseaux de neurones qui peuvent réellement faire tout cela Oui, vous semblez manquer toute compréhension réelle des réseaux neuronaux. Votre première déclaration de Je comprends les réseaux neuronaux avec n'importe quel nombre de couches cachées peut approcher des fonctions non linéaires, cependant, peut-il approcher montre que vous ne comprenez pas vraiment les mots que vous utilisez. Il ya une gamme massive de sujets que vous pourriez être incapable de comprendre ou de confondre les uns avec les autres, et personne ne va être en mesure de vous mettre directement dans un format simple QampA. Si vous voulez vraiment comprendre ce qui se passe, prendre quelques cours d'études supérieures en apprentissage des machines et réseaux de neurones en particulier. Un bon point de départ serait ces vidéos si vous avez déjà les connaissances nécessaires. Ce n'est pas l'endroit approprié pour enseigner. Prenez l'un des nombreux livres sur le sujet et lisez cela. Vous ne considérez même pas le type de fonction d'activation ou qu'il y a plus d'une unité par entrée ou qu'il peut y avoir beaucoup de couches cachées (pas qu'ils sont nécessaires, mais aidez à comprendre). Raff Edward, vous avez été rude et rabaissant dans vos réponses simplement parce que vous, et pas Essam, ne comprennent pas les limites théoriques des réseaux de neurones. Non, il ne peut jamais apprendre la fonction f (x) xx Il ne peut pas non plus apprendre un nombre infini d'autres fonctions, à moins de supposer que ce n'est pas pratique: 1- un nombre infini d'exemples d'entraînement 2- un nombre infini d'unités 3- une quantité infinie de temps pour converger NNs sont bons dans l'apprentissage des problèmes de reconnaissance de bas niveau de modèle (signaux qui ont en fin de compte un modèle statistique qui peut être représenté par une fonction continue), mais thats it Pas plus Heres un indice: essayez Pour construire un NN qui prend n1 entrées de données (x0, x1, x2. Xn) et il retournera vrai (ou 1) si (2 x0) est dans le reste de la séquence. Et bonne chance. Les fonctions infinies, en particulier celles qui sont récursives, ne peuvent pas être apprises. Ils sont juste Raff Edward mal compris ma question. Il avait tout à fait raison de dire que les réseaux de neurones peuvent approximer n'importe quelle fonction, mais une partie importante que lui et moi n'avons pas spécifié correctement, c'est qu'elle peut approximer toute fonction quotboundedquot. Cela signifie qu'il ne peut approcher f (x) si x a une portée infinie, comme l'a souligné Panagiotis. Ndash Essam Al-Mansouri Jan 10 at 9: 039.3 Modèles de réseaux neuronaux Les réseaux de neurones artificiels sont des méthodes de prévision basées sur des modèles mathématiques simples du cerveau. Ils permettent des relations non linéaires complexes entre la variable réponse et ses prédicteurs. Architecture de réseau neuronal Un réseau neuronal peut être considéré comme un réseau de neurones organisés en couches. Les prédicteurs (ou entrées) forment la couche inférieure, et les prévisions (ou sorties) forment la couche supérieure. Il peut y avoir des couches intermédiaires contenant des neurones cachés. Les réseaux les plus simples ne contiennent pas de couches cachées et sont équivalents à la régression linéaire. La figure 9.9 montre la version de réseau neuronal d'une régression linéaire avec quatre prédicteurs. Les coefficients attachés à ces prédicteurs sont appelés poids. Les prévisions sont obtenues par une combinaison linéaire des entrées. Les pondérations sont sélectionnées dans le réseau de neurones en utilisant un algorithme d'apprentissage qui minimise une fonction de coût telle que MSE. Bien sûr, dans cet exemple simple, nous pouvons utiliser la régression linéaire qui est une méthode beaucoup plus efficace pour la formation du modèle. Une fois que nous ajoutons une couche intermédiaire avec des neurones cachés, le réseau neuronal devient non-linéaire. Un exemple simple est illustré à la figure 9.10. Ceci est connu sous le nom de réseau d'avance de plusieurs couches où chaque couche de noeuds reçoit des entrées des couches précédentes. Les sorties des nœuds dans une couche sont des entrées pour la couche suivante. Les entrées de chaque noeud sont combinées en utilisant une combinaison linéaire pondérée. Le résultat est alors modifié par une fonction non linéaire avant d'être sortie. Par exemple, les entrées dans le neurone caché j de la figure 9.10 sont combinées linéairement pour donner 91 zj bj somme 4 w xi. 93 Dans la couche cachée, celle-ci est alors modifiée à l'aide d'une fonction non linéaire telle qu'un sigmoïde, pour donner l'entrée pour la couche suivante. Cela tend à réduire l'effet des valeurs d'entrée extrêmes, rendant ainsi le réseau assez robuste aux valeurs aberrantes. Les paramètres b1, b2, b3 et w, points, w sont tirés des données. Les valeurs des poids sont souvent restreintes pour les empêcher de devenir trop volumineuses. Le paramètre qui restreint les poids est connu sous le nom de paramètre de décroissance et est souvent mis à 0,1. Les poids prennent des valeurs aléatoires pour commencer, qui sont ensuite mis à jour en utilisant les données observées. Par conséquent, il ya un élément de hasard dans les prédictions produites par un réseau de neurones. Par conséquent, le réseau est généralement formé plusieurs fois en utilisant différents points de départ aléatoires, et les résultats sont moyennés. Le nombre de couches masquées et le nombre de nœuds dans chaque couche cachée doivent être spécifiés à l'avance. Nous examinerons comment ces méthodes peuvent être choisies en utilisant la validation croisée plus loin dans ce chapitre. Exemple 9.5 Notation de crédit Pour illustrer la prévision de réseau neuronal, nous utiliserons l'exemple de notation de crédit qui a été discuté au chapitre 5. Nous y avons adapté le modèle de régression linéaire suivant: y beta bêta x beta x bêta 3x3 bêta 4x4 e, Log (x1). Cela pourrait être représenté par le réseau représenté à la figure 9.9 où les entrées sont x1, points, x4 et la sortie est y. Le réseau de neurones plus sophistiqué représenté sur la figure 9.10 pourrait être monté comme suit. Bibliothèque 40 caret 41 creditlog lt - data. Frame 40 score points, log. Registre des économies 40 créditsavances 1 41, journal. Journal des revenus 40 creditincome 1 41, log. Journal d'adresse 40 crédits. Adresse 1 41, log. Employé journal 40 crédit. Employée 1 41, fte creditfte, single créditsingle 41 fit lt - avNNet 40 journal des résultats. Journal des économies. Journal des revenus. Journal d'adresses. Employés. Data creditlog, se répète 25. size 3. decay 0.1, linout TRUE 41 La fonction avNNet du paquet caret s'adapte à un réseau neuronal feed-forward avec un calque caché. Le réseau spécifié ici contient trois nœuds (size3) dans la couche masquée. Le paramètre de décroissance a été réglé à 0,1. L'argument répète25 indique que 25 réseaux ont été formés et que leurs prédictions doivent être calculées en moyenne. L'argument linoutTRUE indique que la sortie est obtenue en utilisant une fonction linéaire. Dans ce livre, nous spécifions toujours linoutTRUE. Auto-régression du réseau neuronal Avec les données de séries chronologiques, les valeurs retardées des séries temporelles peuvent être utilisées comme entrées d'un réseau neuronal. De même que nous avons utilisé des valeurs décalées dans un modèle d'autorégression linéaire (chapitre 8), nous pouvons utiliser des valeurs décalées dans une autorégression de réseau neuronal. Dans ce livre, nous ne considérons que les réseaux de feed-forward avec une couche cachée et utilisons la notation NNAR (p, k) pour indiquer qu'il y a des entrées p lag et k noeuds dans la couche masquée. Par exemple, un modèle NNAR (9,5) est un réseau de neurones avec les neuf dernières observations (y, y, dots, y) utilisées comme entrées pour prévoir la sortie y t et avec cinq neurones dans la couche cachée. Un modèle NNAR (p, 0) est équivalent à un modèle ARIMA (p, 0,0) mais sans les restrictions sur les paramètres pour assurer la stationnarité. Avec les données saisonnières, il est utile d'ajouter également les dernières valeurs observées de la même saison que les intrants. Par exemple, un modèle NNAR (3,1,2) a des entrées y, y, y et y, et deux neurones dans la couche cachée. Plus généralement, un modèle NNAR (p, P, k) m a des entrées (y, y, points, y, y, y, y) et k neurones dans la couche cachée. Un modèle NNAR (p, P, 0) m est équivalent à un modèle ARIMA (p, 0,0) (P, 0,0) m mais sans les restrictions sur les paramètres pour assurer la stationnarité. La fonction nnetar () correspond à un modèle NNAR (p, P, k) m. Si les valeurs de p et P ne sont pas spécifiées, elles sont automatiquement sélectionnées. Pour les séries temporelles non saisonnières, la valeur par défaut est le nombre optimal de décalages (selon l'AIC) pour un modèle AR (p) linéaire. Pour les séries temporelles saisonnières, les valeurs par défaut sont P1 et p est choisi dans le modèle linéaire optimal adapté aux données désaisonnalisées. Si k n'est pas spécifié, il est réglé sur k (pP1) 2 (arrondi à l'entier le plus proche). Exemple 9.6: Les taches solaires La surface du soleil contient des régions magnétiques qui apparaissent comme des taches sombres. Ceux-ci affectent la propagation des ondes radio et donc les entreprises de télécommunication comme de prédire l'activité des taches solaires afin de planifier les difficultés futures. Les taches solaires suivent un cycle de longueur entre 9 et 14 ans. À la figure 9.11, les prévisions d'un RNAR (9,5) sont indiquées pour les 20 prochaines années. Fit ltnnetar 40 sunspotarea 41 parcelle 40 prévu 40 ajustement, h 20 41 41 Les prévisions sont en fait légèrement négatives, ce qui est évidemment impossible. Si nous voulions restreindre les prévisions pour qu'elles restent positives, nous pourrions utiliser une transformation logarithmique (spécifiée par le paramètre Box-Cox lambda 0): ajustement 40 sunspotarea, lambda 0 41 graphe 40 prévision 40 ajustement, h 20 41 41
No comments:
Post a Comment