NS + Indikatoren. Experiment. - Seite 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) Die Information ist "tautologisch" für Sie, für mich, für viele andere μl-Programmierer... Haben Sie eine gegenseitige Korrelation versucht, um zu sehen, wie die Eingaben korreliert sind? Außerhalb des Lernbereichs ist der Unterschied nach meiner persönlichen Erfahrung nur auf die Nicht-Stationarität des Inputs zurückzuführen...

Zweitens: Was die Frage betrifft, "wie weit die Inputs vom Preis entfernt sein sollten" - relativ, im Gegenteil, für mich verbessert der Einsatz von Derivaten das Kriterium... Ich persönlich glaube das nicht. Was die Eingaben sein sollten, hängt von der Ausgabe ab, das Problem hängt davon ab, wie Sie (grob gesagt) darauf kommen.

 
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]

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

Auf den ersten Blick ist die Information, die in den Fällen a) und b) in das Netz eingespeist wird, tatsächlich tautologisch. Das Gehirn nimmt über die Augen grafische Informationen in Form von geschriebenen Formeln auf.

Die Symbole der Formeln selbst enthalten keine nützlichen Informationen für das Gehirn, die Informationen sind in den Werten dieser Symbole enthalten.

Er sieht den Unterschied zunächst praktisch nicht. Ich habe es nicht gesehen. :)

Es erkennt den Unterschied erst, wenn es zu verstehen beginnt, welche Zahlen sich unter den Zeichen der Formeln verbergen. Hier wird sofort klar, worin der Unterschied besteht, ein großer Unterschied.


Hier ist ein Screenshot von Diagramm a),

Wir sehen eine nahezu perfekte Linie von unendlich bis zum Wert der Differenz zwischen Open[0]-Open[1]:



Betrachten wir nun das Diagramm b):



Der Unterschied ist, wie man so schön sagt, offensichtlich! Im zweiten Fall "springt" der Wert unserer Funktion in wohldefinierten Grenzen um 0 herum.

Jedes NS hat Grenzen der Empfindlichkeit der Eingänge, die durch die Funktion der Neuronenaktivierung und die Grenzen der Gewichte bestimmt werden. Vom Netz kann nicht verlangt werden, dass es etwas lernt, was es nicht innerhalb der Muster der Lernfunktion und innerhalb seiner Empfindlichkeitsgrenzen gelernt hat. Das bedeutet, dass das NS nur auf den Eingabedaten korrekt rechnen kann, auch wenn diese nicht in der Trainingsstichprobe enthalten waren, aber gleichzeitig, wenn die der Eingabe unterzogenen Werte zum Bestimmungsbereich der Trainingsfunktion gehören und innerhalb der Empfindlichkeit des Netzes liegen. Dies sind zwei notwendige Bedingungen, unter denen jede NS richtig funktioniert.

Figar0 >>:
Zwei). Ich möchte die Meinung erfahrener oder sich selbst für erfahren haltender neuronaler Netzwerker wissen, wie weit von den Preiseingaben in unserem angewandten Problem der Vorhersage des Preises VR entfernt sein sollte? Meine Erfahrung zeigt, dass die Verwendung aller Arten von Indikatoren, "Ableitungen N-ter Ordnung" vom Preis, im Allgemeinen bestenfalls nichts bringt. Preis, maximale Glättung, Extreme, alles andere von NS-Opium... Meinen Sie nicht auch?

Die vom Preis abgeleiteten Indikatoren, die sich in den Berechnungsgrundlagen grundsätzlich unterscheiden, können und sollten verwendet werden. Getrennte benachbarte Balken enthalten für sich genommen keine nützlichen Informationen. Nützliche Informationen erhält man nur, wenn man die Interaktion von "Gruppen" von Balken oder, anders ausgedrückt, von "Fenstern" betrachtet.

 
joo писал(а) >>

Auf den ersten Blick ist die Information, die in den Fällen a) und b) in das Netz eingespeist wird, tatsächlich tautologisch.

Hier ist ein Screenshot von Diagramm a),

Irgendetwas sagt mir, dass Sie die Formel a) grafisch nicht richtig interpretiert haben.

Ihr Diagramm sieht in etwa so aus (Variante von):

f[0] = Öffnen[0]-Öffnen[1] Ich verstehe.

f[1] = Open[0]-Open[2] D.h. vorausschauend?

Oder ersetzen Sie Open[0] durch den aktuellen Wert, d. h.

f[1] = Open[1]-Open[2] d.h. Formel b)

Oder ähem.

f[1] = Open[1]-Open[3] Dies ergibt sich jedoch nicht aus dem Kontext

So wie ich es verstehe (zumindest hatte ich das bei ähnlichen "Experimenten" mit Eingaben im Kopf), ist das Ganze ein Array von N-1 Ziffern am "Punkt 0", d.h. f[0][N-1]

am Punkt f[1][N-1] wird Open[1]-Open[2], Open[1]-Open[3], ...

Das bedeutet, dass man eine n-1-dimensionale Ebene zeichnen sollte.

Dass die Ergebnisse unterschiedlich sind, ist normal. Aber ich habe noch nicht entschieden, welche Eingaben "richtiger" sind (für dieselben Ergebnisse).

SZY: Ich habe vor langer Zeit und in "schwarzen Kästen" gesucht.

 
SergNF >>:

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

Und Sie konsultieren dieses "Etwas" umsonst.

Machen Sie einen Indikator und sehen Sie nach.

SergNF >>

Dass die Ergebnisse unterschiedlich sind, ist normal

.

Aber welche Eingaben "richtig" sind (für dieselben Ausgaben), habe

ich

noch nicht entschieden.

Was meinen Sie damit, dass die Ergebnisse unterschiedlich sind? Die Eingänge sind die gleichen wie die Ausgänge! Und welche davon "richtig" sind, beschreibt der obige Beitrag.

 
joo писал(а) >>

Und du nimmst den Rat von diesem "Etwas" umsonst an.

Du hast wahrscheinlich Recht :)

Machen Sie einen Indikator und sehen Sie nach.

Oberer "Graph" des Eingangsvektors!!!!! DBuffer[i]=Close[i]-Close[i+DPeriod];

Unterer "Graph" des Eingangsvektors!!!!! DBuffer[i]=Close[i+DPeriod]-Close[i+DPeriod+1];


Im Folgenden wird der ursprüngliche Beitrag sprachlich analysiert und... Nochmals zur Frage der Korrektheit der Formulierung in den ToR. ;)

 
SergNF >>:

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

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

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


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

Ja, die Aufgabenstellung des Fragestellers ist also nicht gut, da zwei Personen die Frage unterschiedlich interpretiert haben. :)

Wir sollten auf Figar0 warten, um zu sehen, was er zu sagen hat.

 
StatBars писал(а) >>

Was die Eingaben sein sollten, hängt von der Ausgabe (Aufgabe) ab, die Aufgabe (Ausgabe) davon, wie Sie (grob gesagt) darauf kommen.

Welche Ergebnisse kann es geben? Die Signale, von denen wir uns ein gleichmäßiges Wachstum des Eigenkapitals ohne Ausrutscher erhoffen) Obwohl die Aufgabe von der NS.... tatsächlich anders gestellt werden kann

joo schrieb >>

Nun, das bedeutet, dass die Aufgabenstellung des Fragestellers nicht gut ist, da zwei Personen die Frage unterschiedlich interpretiert haben. :)

Wir müssen auf Figar0 warten, was er zu sagen hat.

Ehrlich gesagt, hätte ich nicht gedacht, dass die Meinungen so weit auseinander gehen würden... Die Kosten für das Brauen von NS in ihren engen Welten. SergNF hat meine "ToR" richtig verstanden) Zwei Eingangsvektoren, von denen der eine leicht aus dem anderen gewonnen werden kann, mit unterschiedlichen Ergebnissen bei der Ausgabe. Und es scheint, dass ich zu verstehen beginne, warum sie unterschiedlich sind, morgen werde ich ein paar Experimente machen und versuchen, dieses Verständnis in Buchstaben umzusetzen...

 
Figar0 >>:

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

Die Signale, für die wir uns einen gleichmäßigen Anstieg erhoffen, sind eine Art von Problem, und es kann viele Prinzipien geben, aber viele werden dennoch sehr ähnlich sein (zumindest in Bezug auf die Korrelation). Und genau in diesem Zusammenhang war die Ausgabe gedacht.

Was halten Sie davon?

Ich stimme zu, dass wir keine Erfahrungen austauschen sollten, auf jeden Fall wäre vieles einerseits einfacher, und wichtige Informationen über das Projekt und die Entwicklungen würden trotzdem verborgen bleiben, d.h. ich habe z.B. etwas mitzuteilen, das anderen das Leben leichter machen wird, aber gleichzeitig werde ich meine Geheimnisse in keiner Weise preisgeben :)

 
Figar0 писал(а) >>

Und ich glaube, ich beginne zu verstehen, warum das anders ist. Ich werde morgen ein paar Experimente machen und versuchen, dieses Verständnis in Buchstaben umzusetzen...

Nun, es scheint ein klares Verständnis zu geben, eine Schlussfolgerung:

- Die Eingaben a) und b) sind gleich, und die Ergebnisse unterscheiden sich aufgrund eines unvollkommenen Lernmechanismus und von Berechnungsfehlern bei der Datenumwandlung. D.h., wenn ich für die Eingabe Inkremente von irgendetwas: Indikatoren, Preis, werde ich immer noch die Differenz von der Null-Bericht oder von benachbarten Punkten zu nehmen. Ich habe es nur experimentell gelernt, indem ich den NS maximal vereinfacht habe und es möglich gemacht habe, durch vollständige Suche nach Gewichten zu lernen. Die Ergebnisse decken sich zu einem Zent...

Nachdem ich diese Schlussfolgerung verdaut hatte, habe ich mich mit dem Studium der GA beschäftigt.

StatBars schrieb >>

Ich stimme zu, dass es eine Verschwendung ist, Erfahrungen nicht zu teilen, auf jeden Fall wäre vieles auf der einen Seite einfacher, und die wichtigen Informationen über das Projekt und die Entwicklungen würden immer noch verborgen bleiben, d.h. zum Beispiel, ich habe etwas zu teilen, das das Leben der anderen erleichtern wird, aber gleichzeitig werde ich meine Geheimnisse nicht preisgeben :)

Eindeutig eine Verschwendung... Es ist keine schlechte Idee, Ihre Uhr zumindest ab und zu zu synchronisieren).

Ich werde mit mir selbst beginnen. Im Moment bereite ich meine Netze in MQL vor und trainiere sie nur im Tester/Optimierer des Terminals. Ich untersuche jedoch einige Komponenten der Eingaben in Statistic. Dieser Ansatz hat sowohl Nachteile als auch gewisse Vorteile. Der größte Vorteil ist, dass man das Netzwerk direkt in der Anwendungsumgebung erlernt und es dem Endziel - dem Gewinn - zuführen kann. Als Architektur habe ich versuchsweise MLP mit wenigen Schichten verwendet: eingehende, ausgehende und ein oder zwei versteckte Schichten. IMHO ein mehr als ausreichender Näherungswert. Im Moment denke ich darüber nach, Backlinks zu MLP hinzuzufügen. Anzahl der verwendeten Eingänge ~ 50 bis 200, mehr würde die Architektur und das Training verkomplizieren, und ich denke, es wäre redundant.

Vielleicht ist einiges von dem, was ich beschreibe, seltsam, vielleicht auch nicht, aber ich bin ein autodidaktischer neuronaler Netzwerker, der sein Gehirn eifersüchtig vor zu viel verstaubter Literatur bewahrt.)

 

Ich verwende MQL für die Vorverarbeitung der Daten, das Hochladen in das interne Format und die Analyse der Netzwerkergebnisse. Ich trainiere nur Netzwerke in NSH2. Natürlich gibt es auch Netzwerke in MCL und C++, aber NSH2 ist besser...

Netze sind in der Regel nicht mehr als die üblichen 3-Schichten (MLP), mehr ist nicht erforderlich.

Übrigens, was die Eingaben betrifft, ich habe maximal 128 eingegeben, durch einige Experimente habe ich herausgefunden, dass mehr als 20-30 Eingaben bereits ein starker Überschuss sind, und höchstwahrscheinlich wird das Entfernen unwichtiger Eingaben das Lernkriterium stark verbessern. Bei weniger als 40 Eingängen mag die Frage noch diskutabel sein, aber mehr als 40 Eingänge sind 100 % Overkill.

Das Lernkriterium ist Standard in NSH2 - sko.

Achten Sie darauf, dass Sie ein Testmuster verwenden, um eine Netzanpassung zu vermeiden. Darüber hinaus ist die Aufteilung der Probe sequentiell - der erste Teil der Probe sagen wir von 2005.01.01 - 2006.01.01 - Training Probe, Test-Probe - 2006.01.01 - 2006.04.01. Viele mögen bezweifeln, dass eine solche Art und Weise loszuwerden Umschulung des Netzes zu bekommen, aber ich bin 100% sicher, dass es loszuwerden Umschulung bekommt, wenn Sie nicht loszuwerden, dann das Problem in einem anderen, dh ich empfehle nicht die Änderung der Probe Split, sondern lehren genau so (mit 2 Proben). Überlegen Sie, was für Sie wichtiger ist: Das Netzwerk sollte zunächst stabil sein, aber Sie müssen auch daran arbeiten, um es profitabel genug zu machen :) Oder das Netz ist rentabel, aber man weiß nicht, wann es unrentabel wird, d. h. zuerst sehen wir den Gewinn, und dann arbeiten wir die Stabilität des Netzes aus. Ich meinte nicht das gleichmäßige Wachstum des Eigenkapitals, sondern die Tatsache, dass das Netz bei verschiedenen Vorwärtstests unterschiedliche Ergebnisse anzeigt (Depotabflüsse und umgekehrt).

Die erste ist für mich persönlich wichtiger, da ich mich in diese Richtung entwickle. Jetzt habe ich zum Beispiel bestimmte Ergebnisse erzielt: (Ich habe es bereits im Forum gesagt, aber ich wiederhole es) Es gibt eine "allgemeine Stichprobe", ich trainiere das Netzwerk auf etwa 20-30% der allgemeinen Stichprobe und nach dem Training arbeitet das Netzwerk überall gleich, auf der gesamten Stichprobe, und das Datum der "allgemeinen Stichprobe" ist von 2003 bis jetzt.

Auch bei der Rentabilität des Netzes bin ich einer Lösung schon sehr nahe gekommen. Das Netz erkennt 84 % der Proben, und 87 % ist eine Mindestschwelle für ein stabiles, reibungsloses Wachstum von

Eigenkapital. Als ich anfing, dieses Problem zu lösen, lag die Erkennungsrate bei 70 %.

Grund der Beschwerde: