Neuronales Netz - Seite 2

 
xweblanser >> :

Vielen Dank, tut mir leid, nicht viele Kommentare, aber ich werde versuchen, es herauszufinden....

Hier www.nnea.net/downloads gibt es eine gute Sammlung von pdfs mit Forschungsergebnissen zur Vorhersage von Finanzmärkten mit NS. Sie müssen sich registrieren.

 
marketeer >> :

Ein Händler muss nicht unbedingt das Innenleben der NS verstehen. Für ihn ist es eine Blackbox mit Eingängen und Ausgängen. Es gibt viele fertige Netze im öffentlichen Bereich, auch auf dieser Website - geben Sie einfach "neuronale Netze" in das Suchfeld ein. Eine der jüngsten Veröffentlichungen, zum Beispiel - Predictor based on a self-learning neural network. Das Hauptproblem bei der Verwendung von NS ist die Wahl der Daten, die eingegeben und trainiert werden sollen, die Aufbereitung dieser Daten, die Struktur und Größe des Netzes usw. Nehmen wir zum Beispiel das bereits erwähnte Netzwerk, versuchen wir es so zu trainieren, wie es Yezhov und Shumsky getan haben (siehe Neurocomputing and its application in economics and business, ich empfehle)... Und am Ende haben wir einen Flop. Dafür kann es viele Gründe geben. Und hier beginnt die Arbeit des Händlers, um zu erahnen, was sich seither geändert haben könnte (oder was die Autoren weggelassen haben ;-) ), und was an den Einstellungen und Eingabedaten zu ändern ist.

Nun, ich bin Händler, aber hauptsächlich bin ich Programmierer... Ich wollte ein neuronales Netz für mich selbst schreiben und mir gleichzeitig beweisen, dass ich....

 
njel >> :

Es gibt eine gute Auswahl an pdfs mit Studien zur Vorhersage von Finanzmärkten unter Verwendung von NS hier www.nnea.net/downloads. Sie müssen sich registrieren. siehe auch den Abschnitt Forschung.

>> Danke.

 
xweblanser >> :

1. Soweit ich verstehe, ist jedes Neuron des Netzwerks die gleiche Funktion... aber ich verstehe nicht, wie die gleiche Funktion unterschiedliche Werte erzeugen kann, wenn die gleichen Daten eingehen...

Diese Eingaben werden mit verschiedenen Gewichten multipliziert. Daher werden die Funktionswerte unterschiedlich sein. Nachdem ich mich eingehend mit neuronalen Netzen befasst und verschiedene Lernalgorithmen verwendet habe, die vom Gradientenabstieg bis zur Genetik reichen, bin ich zu dem Schluss gekommen, dass der mathematische Apparat neuronaler Netze nicht perfekt ist. Ein neuronales Netz dient der Annäherung an eine nichtlineare Funktion. Nach dem Kolmogorow-Theorem ist das Netz in der Lage, jede kontinuierliche Funktion zu realisieren. In der Praxis führt die Parallelität des Netzes zu einer Vielzahl von lokalen Minima und Realisierungen der zu modellierenden Funktion. Nehmen Sie das unten abgebildete Netz als Beispiel. Das Netz hat eine Eingabe, eine Ausgabe und eine versteckte Schicht mit zwei Neuronen. Jedes versteckte Neuron multipliziert die Eingabe x mit seinem Gewicht (w1 oder w2), führt das Ergebnis durch die Aktivierungsfunktion (z. B. tanh) und summiert die erhaltenen Werte am Netzausgang. Der Einfachheit halber wird angenommen, dass die Vorspannungseingänge gleich Null sind. Die Gewichte der Ausgangsneuronen sind gleich und gleich 1.


Nun wollen wir ein Problem der Funktionsannäherung lösen. Angenommen, unsere Funktion ist t = cos(x) (t bedeutet Ziel). Das Netz berechnet seinen Wert nach der folgenden Formel

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

Das Training (oder Coaching) des Netzes besteht darin, die Gewichte w1 und w2 zu finden, bei denen die Ausgabe des Netzes y dem Wert unserer Funktion t am nächsten kommt. Dies wird durch Minimierung der Summe der Fehlerquadrate erreicht

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

wobei die Summierung auf verschiedenen Trainingsdaten durchgeführt wird: x[k],t[k]. Schauen wir uns an, wie die Oberfläche unserer minimierenden Zielfunktion E(w1,w2) aussieht, wenn es kein Rauschen in den Messungen gibt t[k] = cos(x[k]):


Diese Grafik zeigt, dass es eine unendliche Menge von Lösungen (w1,w2) gibt, die unsere Zielfunktion E minimieren (man beachte die flachen Täler). Es ist nicht schwer zu verstehen: Das Netz ist symmetrisch in Bezug auf w1 und w2. Die Ergebnisse des Netzwerktrainings sind unterschiedlich, wenn die Anfangswerte von w1 und w2 unterschiedlich gewählt werden. Da diese Anfangswerte immer zufällig gewählt werden, führt ein aufeinanderfolgendes Training des Netzes mit denselben Trainingsdaten x[k],t[k] zu unterschiedlichen Werten der optimierten Gewichte w1 und w2. Hier gibt es im Grunde kein globales Minimum. Oder anders ausgedrückt: Eine unendliche Menge lokaler Minima sind auch globale Minima.

Nun wollen wir unser Problem verkomplizieren, indem wir Rauschen zu unserer Reihe hinzufügen: t[k] = cos(x[k]) + rnd. Diese verrauschte Reihe ist der Preisreihe statistisch ähnlicher als der perfekte Kosinus:


Die Oberfläche unserer Minimierungsfunktion E(w1,w2) sieht nun wie folgt aus:


Beachten Sie die vielen Spitzen sowohl in den Gipfeln als auch in den Tälern. Lassen Sie uns in der Nähe eines der Täler brieflen:


Hier können wir die Menge der lokalen Minima deutlicher sehen. Stellen Sie sich nun die Optimierung von E(w1,w2) durch Gradientenabstieg vor. Je nach den Anfangswerten von w1 und w2 führt dieser Abstieg zu einem anderen Minimum. Außerdem kann dieses lokale Minimum entweder an der Spitze oder im Tal liegen. Genetische Optimierung hilft hier nur, vom Gipfel in eines der Täler abzusteigen und dort an einem der lokalen Minima hängen zu bleiben. Wesentlich komplizierter wird die Situation, wenn neben w1 und w2 auch die Gewichte des Ausgangsneurons optimiert werden, die in der vorangegangenen Betrachtung mit eins gleichgesetzt wurden. In diesem Fall haben wir einen 4-dimensionalen Raum mit einer großen Anzahl von lokalen Minima mit den Koordinaten (w1,w2,w3,w4).

Mit dieser vereinfachten Beschreibung des Verhaltens des neuronalen Netzes wollte ich beweisen, dass die Parallelität des Netzes (oder die Symmetrie seiner Ausgabe in Bezug auf die Gewichte der Neuronen derselben Schicht) zu Schwierigkeiten beim Training (Optimierung dieser Gewichte) führt, weil es eine unendliche Menge lokaler Minima gibt, insbesondere für chaotische Reihen wie die Preisreihen.

Ich füge die MathCAD-Datei bei, in der die obigen Berechnungen durchgeführt wurden.

Dateien:
nnrsimplea2.zip  699 kb
 
gpwr писал(а) >> Mit dieser vereinfachten Beschreibung des Verhaltens eines neuronalen Netzes wollte ich beweisen, dass die Parallelität des Netzes (oder die Symmetrie seines Outputs in Bezug auf die Gewichte der Neuronen derselben Schicht) zu Schwierigkeiten beim Training (Optimierung dieser Gewichte) führt, da es eine unendliche Anzahl von lokalen Minima gibt, insbesondere bei chaotischen Reihen wie Preisreihen.

Eine Frage: Wie wirkt sich das auf den Gewinn aus?

 
LeoV >> :

Eine Frage: Wie wirkt sich das auf die Rentabilität aus?

Verfügen Sie über ein Netzwerk, das kontinuierlich Gewinne erwirtschaftet?

 
LeoV >> :

Eine Frage: Wie wirkt sich das auf den Gewinn aus?

Die Rentabilität ist davon absolut betroffen. Es gibt keine Garantie dafür, das richtige, ausreichend tiefe lokale Minimum zu finden, das für die Implementierung eines auf einem neuronalen Netz basierenden profitablen TS geeignet wäre.

 
gpwr >> :

Welches MathCad verwenden Sie, Ihre Berechnungen lassen sich nicht in Mathcad 13 öffnen.

 

Der Sinn der Minimierung/Maximierung der Zielfunktion E(w1,w2) besteht darin, ein globales Extremum zu finden. Und wenn es sich bei diesen globalen Extremen um eine Million handelt, was für einen Unterschied macht es dann für uns, in welches dieser Extreme NN fällt!

Noch schlimmer ist es, wenn er an einem der lokalen Minima/Maxima hängen bleibt. Aber das ist nicht mehr das Problem von NN. Dies ist ein Problem des Optimierungsalgorithmus.


LeoV >> :

>> Eine Frage - wie wirkt sich das auf den Gewinn aus?

Das, was gpwr beschrieben hat, tut es nicht.

 
Urain >> :

Welches MathCad benutzen Sie, ich kann Ihre Berechnungen nicht in Mathcad 13 öffnen.

>> Mathcad 14. >> Ich füge die gleiche Datei in Version 11 bei.

Dateien:
nnosimplem2.zip  14 kb