NS + indicateurs. Expérimentation. - page 11

 
Figar0 >>:

Пора поднять веточку, все-таки она посвящена входам НС и новую тему заводить не стану...

Появилась пара совсем простых теоритических вопросов-раздумий.

*

Ать). Подавая в НС варианты входов, которые утрировано выглядят примерно так:

а) Open[0]-Open[1], Open[0]-Open[2], Open[0]-Open[3], Open[0]-Open[4],..., Open[0]-Open[N]

б) Open[0]-Open[1], Open[1]-Open[2], Open[2]-Open[3], Open[3]-Open[4],..., Open[N-1]-Open[N]

рассчитывал получить примерно одинаковый результат. Все-таки входы весьма тавтологичны. Ан нет, результаты далеко не всегда даже рядом лежат, как и на участке обучения так и вне его. Пробовал разные варианты сетей, разные нейросетевые пакеты, везде картина примерно одинакова... Почему? несовершенство механизма обучения? "Слабость" сети? Многого от нее хочу?

*

Два). Хочу услышать мнение опытных или считающих себя таковыми нейросетевиков, как далеко должны быть входы от цены в нащей прикладной задаче прогнозирования ценового ВР? Мои опыты показывают, что использование всяческих индикаторов, "производных N-го порядка" от цены, в лучшем случае, вообщем-то ничего не дает. Цена, максимум сглаживание, экстремумы, все остальное от опиум для НС.. Не считаете?

At) L'information est " tautologique " pour vous, pour moi, pour de nombreux autres μl programmeurs.... Avez-vous essayé une corrélation mutuelle pour voir dans quelle mesure les entrées sont corrélées ? En dehors de la zone d'apprentissage, d'après mon expérience personnelle, la différence apparaît uniquement en raison de la non-stationnarité de l'entrée...

Deux)En ce qui concerne "l'écart entre les intrants et le prix" - relativement, au contraire, pour moi l'utilisation de dérivés améliore le critère... Personnellement, je ne le pense pas. Ce que les entrées doivent être dépend de la sortie, le problème dépend de la façon dont vous vous y prenez (en gros).

 
Figar0 >>:

Ать). Подавая в НС варианты входов, которые утрировано выглядят примерно так:

а) Open[0]-Open[1], Open[0]-Open[2], Open[0]-Open[3], Open[0]-Open[4],..., Open[0]-Open[N]

б) Open[0]-Open[1], Open[1]-Open[2], Open[2]-Open[3], Open[3]-Open[4],..., Open[N-1]-Open[N]

рассчитывал получить примерно одинаковый результат. Все-таки входы весьма тавтологичны. Ан нет, результаты далеко не всегда даже рядом лежат, как и на участке обучения так и вне его. Пробовал разные варианты сетей, разные нейросетевые пакеты, везде картина примерно одинакова... Почему? несовершенство механизма обучения? "Слабость" сети? Многого от нее хочу?

A première vue, les informations fournies à l'entrée du réseau dans les cas a) et b) sont effectivement tautologiques. Le cerveau, par l'intermédiaire des yeux, absorbe des informations graphiques sous la forme de formules écrites.

Les symboles des formules eux-mêmes ne portent aucune information utile pour le cerveau, l'information est contenue dans les valeurs de ces symboles.

Il ne voit pratiquement pas la différence au début. Je ne l'ai pas vu. :)

Il ne voit pas la différence jusqu'à ce qu'il commence à comprendre quels chiffres sont cachés sous les signes des formules. C'est là que la différence devient immédiatement claire, une grande différence.


Voici une capture d'écran du graphique a),

Nous voyons une ligne presque parfaite de l'infini à la valeur de la différence entre Open[0]-Open[1] :



Examinons maintenant le graphique b) :



La différence, comme on dit, est évidente ! Dans le second cas, la valeur de notre fonction "saute" autour de 0, dans des limites bien définies.

Tout SN a des limites de sensibilité des entrées déterminées par la fonction d'activation des neurones et les limites des poids. On ne peut pas demander au réseau d'apprendre quelque chose qu'il n'a pas appris dans les schémas de la fonction d'apprentissage et dans ses limites de sensibilité. Cela signifie que le NS ne peut calculer correctement que sur les données d'entrée, même si elles n'étaient pas dans l'échantillon d'entraînement, mais en même temps, si les valeurs soumises à l'entrée appartiennent à la zone de détermination de la fonction d'entraînement et se trouvent dans la sensibilité du réseau. Il s'agit là de deux conditions nécessaires au bon fonctionnement de tout SN.

Figar0 >>:
Deux). J'aimerais connaître l'opinion des spécialistes expérimentés ou qui se considèrent comme tels, sur la distance à respecter par rapport aux prix dans notre problème de prévision des prix du RV. Mon expérience montre que l'utilisation de toutes sortes d'indicateurs, "dérivés d'ordre N" du prix, ne donne généralement rien au mieux. Le prix, le lissage maximal, les extrêmes, tout le reste de l'opium NS... Tu ne crois pas ?

Les indicateurs dérivés du prix, qui présentent des différences principales entre eux dans les principes de calcul, peuvent et doivent être utilisés. Les barres voisines séparées ne fournissent pas d'informations utiles en soi. Des informations utiles ne peuvent être obtenues que si l'on considère l'interaction de "groupes" de barres, ou, en d'autres termes, de "fenêtres".

 
joo писал(а) >>

A première vue, les informations fournies à l'entrée du réseau dans les cas a) et b) sont effectivement tautologiques.

Voici une capture d'écran du graphique a),

Quelque chose me dit que vous n'avez pas interprété graphiquement la formule a) correctement.

Votre graphique est quelque chose comme (variante de) :

f[0] = Open[0]-Open[1] Je vois.

f[1] = Open[0]-Open[2] C'est-à-dire regarder vers l'avant ?

Ou remplacez Open[0] par la valeur actuelle, c'est-à-dire

f[1] = Open[1]-Open[2] c'est-à-dire formule b)

Ou ahem.

f[1] = Open[1]-Open[3] Mais ceci ne découle pas du contexte

Si je comprends bien (c'est en tout cas ce que j'avais en tête avec des "expériences" similaires avec des entrées), il s'agit d'un tableau de N-1 chiffres au "point 0", c'est-à-dire que f[0][N-1]

au point f[1][N-1] sera Open[1]-Open[2], Open[1]-Open[3], ...

Cela signifie que l'on doit dessiner un plan à n-1 dimensions.

Le fait que les résultats soient différents est naturel. Mais je n'ai pas encore décidé quelles entrées sont "plus correctes" (pour les mêmes résultats).

SZY. J'ai cherché il y a longtemps et dans les "boîtes noires".

 
SergNF >>:

Что-то мне подсказывает, что Вы не правильно графически интерпретировали формулу a).

Et vous consultez ce "quelque chose" pour rien.

Faites un indicateur et voyez.

SergNF >>
Le

fait que les résultats soient différents est naturel

.

Mais

je

n'

ai

pas encore décidé quelles entrées sont "correctes" (pour les mêmes sorties).

Comment ça, les résultats sont différents ? Quelles entrées sont les mêmes que les sorties ! Et lesquels d'entre eux sont "corrects", décrit le post ci-dessus.

 
joo писал(а) >>

Et tu prends conseil auprès de ce "quelque chose" pour rien.

Vous avez probablement raison :)

Faites un indicateur et voyez.

Graphique" supérieur du vecteur d'entrée !!!!! DBuffer[i]=Close[i]-Close[i+DPeriod] ;

Graphique" inférieur du vecteur d'entrée !!!!! DBuffer[i]=Close[i+DPeriod]-Close[i+DPeriod+1] ;


Ce qui suit est une analyse linguistique de l'article original et... Je reviens à la question de l'exactitude de la formulation des TDR. ;)

 
SergNF >>:

Наверное Вы правы :)

Верхний "график" входного вектора!!!!! DBuffer[i]=Close[i]-Close[i+DPeriod];

Нижний "график" входного вектора!!!!! DBuffer[i]=Close[i+DPeriod]-Close[i+DPeriod+1];


Дальше будет лингвистический разбор исходного поста и ... опять к вопросу о корректности формулировок в ТЗ. ;)

Oui, donc les TdR du questionneur ne sont pas bons, puisque deux personnes ont interprété la question différemment. :)

Nous devrions attendre Figar0 pour voir ce qu'il a à dire.

 
StatBars писал(а) >>

Ce que doivent être les entrées dépend de la sortie (tâche), la tâche (sortie) de la manière dont vous vous en sortez (grosso modo).

Quels résultats peut-on obtenir ? Les signaux que nous espérons utiliser pour obtenir la croissance progressive de l'équité sans dérapage) Bien que la tâche puisse effectivement être fixée différemment par le NS.....

joo a écrit >>

Eh bien, cela signifie que la TdR de l'auteur de la question n'est pas bonne, puisque deux personnes ont interprété la question différemment. :)

Nous devons attendre Figar0, ce qu'il a à dire.

Honnêtement, je ne pensais pas qu'il y aurait une telle différence d'opinion... Le coût du brassage de la NS dans leurs mondes exigus. SergNF a bien compris mon "ToR") Deux vecteurs d'entrée, dont l'un peut être facilement obtenu à partir de l'autre et avec des résultats différents en sortie. Et il semble que je commence à comprendre pourquoi ils sont différents, demain je ferai quelques expériences et j'essaierai de mettre cette compréhension en lettres...

 
Figar0 >>:

Какие могут быть выходы? Сигналы, работая по которым надеемся получить плавный рост эквити без просадок) Хотя задачу НС можно действительно поставить по разному....

Les signaux pour lesquels nous espérons obtenir une montée régulière sont un type de problème. Il peut y avoir de nombreux principes, mais beaucoup seront toujours très similaires (du moins en termes de corrélation). Et la sortie était destinée à ce contexte précis.

Qu'en pensez-vous ?

Je suis d'accord sur le fait que nous ne devrions pas partager notre expérience, dans tous les cas, beaucoup de choses seraient plus faciles d'un côté, et les informations importantes sur le projet et les développements resteraient toujours cachées, c'est-à-dire que par exemple, j'ai quelque chose à partager qui rendra la vie plus facile aux autres, mais en même temps je ne révélerai pas mes secrets d'aucune manière :)

 
Figar0 писал(а) >>

Et je pense que je commence à comprendre pourquoi c'est différent, je vais faire quelques expériences demain et essayer de mettre cette compréhension en lettres...

Eh bien, il semble y avoir un accord définitif, une conclusion :

- Les entrées a) et b) sont identiques, et les résultats différents sont dus à un mécanisme d'apprentissage imparfait, et à des erreurs de calcul dans la conversion des données. C'est-à-dire que si j'utilise pour l'entrée des incréments de n'importe quoi : indicateurs, prix, je prendrai toujours la différence à partir du rapport zéro ou des points adjacents. Je ne l'ai appris qu'expérimentalement, après avoir simplifié au maximum la NS et rendu possible l'apprentissage par une recherche exhaustive des poids. Les résultats coïncident avec un cent...

Après avoir digéré cette conclusion, je suis tombé dans l'étude de l'AG.

StatBars a écrit >>

Je suis d'accord pour dire que c'est un gaspillage de ne pas partager son expérience, de toute façon, beaucoup de choses seraient plus faciles d'un côté, et les informations importantes sur le projet et ses développements resteraient toujours cachées, c'est-à-dire que par exemple, j'ai quelque chose à partager qui facilitera la vie des autres, mais en même temps je ne révélerai pas mes secrets :)

Définitivement un gaspillage... Ce n'est pas une mauvaise idée de synchroniser votre montre au moins une fois de temps en temps).

Je vais commencer par moi-même. Pour le moment, je prépare mes réseaux en MQL et je les entraîne uniquement dans le testeur/optimiseur du terminal. Cependant, j'étudie certaines composantes des entrées dans Statistic. Cette approche présente à la fois des inconvénients et certains avantages. Le plus grand avantage est d'apprendre le réseau directement dans l'environnement de l'application et vous pouvez l'enseigner jusqu'à l'objectif final - le profit. En tant qu'architecture, je me suis arrêté expérimentalement à un MLP avec quelques couches : entrantes, sortantes et une ou deux couches cachées. Une approximation plus que suffisante, selon moi. Pour l'instant, je pense ajouter des backlinks à MLP. Nombre d'entrées utilisées ~ 50 à 200, plus compliquerait l'architecture et la formation, et je pense que ce serait redondant.

Peut-être que certaines de mes descriptions sont étranges, peut-être pas, mais je suis un autodidacte des réseaux neuronaux, de plus, je garde jalousement mon cerveau de la littérature poussiéreuse excessive).

 

J'utilise MQL pour le prétraitement des données, leur téléchargement au format interne et l'analyse des résultats du réseau. Je ne forme que des réseaux en NSH2. Bien sûr, il existe aussi des réseaux en MCL et C++, mais NSH2 est meilleur...

Les réseaux ne sont généralement pas plus que les 3 couches habituelles (MLP), plus n'est pas nécessaire.

Au fait, en ce qui concerne les entrées, j'en ai introduit 128 au maximum, mais j'ai constaté, par quelques expériences, que plus de 20 à 30 entrées constituent déjà un excès important, et qu'il est fort probable que la suppression des entrées sans importance améliorera considérablement le critère d'apprentissage. Si le nombre d'entrées est inférieur à 40, la question peut encore être débattue, mais si le nombre d'entrées est supérieur à 40, c'est 100% excessif.

Le critère d'apprentissage est standard dans NSH2 - sko.

Veillez à utiliser un échantillon d'essai afin d'éviter tout ajustement du réseau. De plus, la division de l'échantillon de manière séquentielle - la première partie de l'échantillon, disons de 2005.01.01 - 2006.01.01 - échantillon de formation, échantillon de test - 2006.01.01 - 2006.04.01. Beaucoup peuvent douter qu'une telle façon de se débarrasser du réseau de recyclage, mais je suis sûr à 100% qu'il se débarrasse du recyclage, si vous ne vous débarrassez pas, alors le problème dans un autre, c'est-à-dire, je ne recommande pas de changer la partition de l'échantillon, plutôt de former exactement ainsi (avec 2 échantillons). Réfléchissez à ce qui est le plus important pour vous : le réseau doit être stable au départ, mais vous devez aussi y travailler pour le rendre suffisamment rentable :) Ou bien le réseau est rentable, mais vous ne savez pas quand il ne le sera plus, c'est-à-dire que nous voyons d'abord les bénéfices, puis nous déterminons la stabilité du réseau. Je ne parlais pas de la croissance régulière des fonds propres, mais du fait que le filet donne des résultats différents sur les différents tests à terme (dépotoirs et vice versa).

La première est plus importante pour moi personnellement car je me développe dans cette direction. Maintenant, j'ai obtenu certains résultats, par exemple : (Je l'ai déjà dit sur le forum, mais je répète) il y a un "échantillon général", je forme le réseau sur environ 20-30% de l'échantillon général et après la formation, le réseau fonctionne également partout, sur l'ensemble de l'échantillon, et la date de "l'échantillon général" est de 2003 à aujourd'hui.

En ce qui concerne la rentabilité du réseau également, j'ai déjà été très près d'une solution. Le filet reconnaît 84% des échantillons et 87% est un seuil minimal pour une croissance stable et régulière de la population.

l'équité. Lorsque j'ai commencé à résoudre ce problème, le taux de reconnaissance était de 70%.