Neuronales Netz - Seite 3

 
joo >> :

Der Sinn der Minimierung/Maximierung der Zielfunktion E(w1,w2) besteht darin, ein globales Extremum zu finden. Und wenn es eine Million dieser globalen Extrema gibt, welchen Unterschied macht es dann für uns, in welches 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.


Beschrieben von gpwr - auf keinen Fall.


Ich stimme zu, dass es keinen Unterschied macht, in welchem der lokalen Minima das Netz landet, wenn alle lokalen Minima die gleiche Tiefe haben und somit global sind. Aber für die vereinfachte Version des Netzes mit verrauschten Reihen gibt es auch lokale Minima auf den Scheitelpunkten der Oberfläche E(w1,w2). Daher ist eine genetische Optimierung oder ein Gradientenabstieg mit mehreren Varianten von Ausgangswerten erforderlich, um in das Tal zu gelangen. Mein Beispiel sollte die Mathematik der parallelen neuronalen Netze veranschaulichen, die zu einer großen Anzahl lokaler Minima und einem komplizierten (langen) Lernprozess führt. Dieser Lernprozess besteht oft aus mehreren Schritten unter Verwendung verschiedener Optimierungstechniken: global (genetischer Algorithmus, Differentialevolution, Partikelschwarmoptimierung, Ameisenkolonieoptimierung) und lokal (Gradientenabstieg, konjugierter Gradient, Levenberg-Marquardt, BFGS) und nimmt viel Zeit in Anspruch.

Die Grundlage der Mathematik der neuronalen Netze ist das Theorem von Kolmogorow: Jede kontinuierliche Funktion von n Variablen x[1]...x[n] kann als Summe von 2n+1 Überlagerungen von kontinuierlichen und monotonen Abbildungen von Einheitssegmenten dargestellt werden:


Jede stetige Funktion kann auch als unendliche Taylor-Reihe dargestellt werden:


Eine Potenzreihe ist eine vereinfachte Version einer Taylor-Reihe:



Die Darstellung einer unbekannten Funktion als Potenzreihe ist mathematisch einfacher als ein neuronales Netz. Das werde ich weiter unten erklären.

Nehmen wir eine Potenzreihe der ersten Ordnung:


(1) y = f(x[1]...x[n]) = a[0] + Summe(a[i]*x[i], i=1...n)


Dies ist etwas anderes als eine lineare Funktion. Wenn y,x[1],...,x[n] Terme derselben Reihe sind, dann haben wir ein lineares autoregressives (AR) Modell. Das einschichtige neuronale Netz wird ebenfalls durch das gleiche Modell (1) beschrieben.

Nehmen wir nun eine Potenzreihe zweiter Ordnung:


(2) y = f(x[1]..x[n]) = a[0] + Summe(a[i]*x[i], i=1..n) + Summe(b[i,j]*x[i]*x[j], i=1..n,j=1..n)


und so weiter. Die unbekannten Parameter des auf einer Potenzreihe basierenden Modells sind die Koeffizienten a[i],b[i,j],..., die partielle Ableitungen der Funktion f(x[1]..x[n]) für jeden Eingang x[i] sind. Der Output des Modells ist eine lineare Funktion dieser Koeffizienten, während der Output eine nichtlineare Funktion von x[1]...x[n] ist. Die Ermittlung der Modellkoeffizienten a[i],b[i,j],..., erfolgt durch Minimierung der Summe der Fehlerquadrate wie beim Training eines neuronalen Netzes:


E(a[i],b[i,j],...) = sum( (t[k]-y[k])^2, k=1...p)


Aber im Fall des neuronalen Netzes erhalten wir eine nichtlineare Methode der kleinsten Quadrate, und im Fall einer Potenzreihe erhalten wir eine lineare Methode der kleinsten Quadrate, die ganz einfach gelöst wird: Wir finden die Ableitungen E(a[i],b[i,j],...) für jeden Koeffizienten a[i],b[i,j],... und setzen sie mit Null gleich. Wir erhalten ein lineares symmetrisches Gleichungssystem mit den Unbekannten a[i],b[i,j],..., das mit der Cholesky-Methode gelöst wird.

Die Vorteile der Potenzreihenmethode im Vergleich zur Kolmogorov-Methode (neuronales Netz) sind:

1. Es ist viel einfacher und schneller, das Modell zu trainieren: nur eine Iteration. Neuronale Netze werden in 1000-100000 Iterationen durch die Kombination verschiedener Optimierungsmethoden trainiert.

2. Das Ergebnis des Lernens einer Potenzreihe ist eindeutig, d.h. es gibt nur ein Minimum, das sowohl lokal als auch global ist. Ein konsistentes Training eines neuronalen Netzes führt zu unterschiedlichen lokalen Minima und damit zu unterschiedlichen Werten der Gewichte und unterschiedlichen Modellen desselben Prozesses (Zeitreihe)

Nachstehend die Oberfläche E(a,b) für die Potenzreihe y = a*x + b*x^2 mit "verrauschten" Trainingsdaten t[k] = cos(x[k]) + rnd:


Beachten Sie, dass es im Gegensatz zum neuronalen Netz hier nur ein Minimum gibt.

Der Nachteil des nichtlinearen Modells auf der Grundlage von Potenzreihen besteht darin, dass die Anzahl der Koeffizienten mit zunehmender Ordnung der Potenzreihen schnell ansteigt. Angenommen, n ist die Anzahl der Eingänge (x[1]..x[n]). Die Anzahl der Koeffizienten nc wird durch Formeln bestimmt:

Ordnung = 1, nc = n+1

Ordnung = 2, nc = (n+1)*(n+2)/2

Ordnung = 3, nc = (n+1)*(n+2)*(n+3)/6

Ordnung = 4, nc = (n+1)*(n+2)*(n+3)*(n+4)/24

...

Ein Prozessmodell 3. Ordnung mit 12 Eingängen hat zum Beispiel 455 Koeffizienten. Ihre Auffindungsrate ist immer noch höher als die des neuronalen Netzes mit weniger Gewichten. Das Problem besteht nicht darin, die Lernrate der Potenzreihe zu verlangsamen, sondern eine ausreichende Anzahl von Trainingssätzen x[1...n][k],t[k] zu finden, die die Anzahl der Koeffizienten des Modells übersteigen muss, um Entartung zu vermeiden. In der Praxis führen Potenzreihen 2. oder 3. Ordnung zu zufriedenstellenden Ergebnissen.

 
gpwr >> :

Ich kenne mich mit Meshes noch nicht aus, daher kann ich mich nicht mit Bestimmtheit äußern,

aber ich denke, dass alle Mesh-Enthusiasten im Forum versuchen, einen linearen Solver (ein System von linearen Gleichungen) zu erstellen,

und dann, um die Lösung unvorhersehbar zu machen, passen sie sie an, indem sie die Eingabe mit der Ausgabe in einer Schleife verbinden.


Ich bin durch Nachdenken und den Versuch zu verstehen, was andere tun, zu demselben Schluss gekommen wie Sie.

Aber auf diese Weise werden Sie die Frage nicht beantworten können:

Und diese neu eingetroffenen Daten haben keine Wurzeln im System - sie sind KAUFEN oder VERKAUFEN.

Denn es gibt keine Funktion, die das Modell definiert.


versuchen, das Raster auf die gemalte Fläche zu übertragen.

Sie wollen TE so trainieren, dass das Gitter bei der Eingabe von Koordinaten aus diesem Bereich eine 1 und bei der Eingabe von Koordinaten aus einem nicht gemalten Bereich eine 0 erzeugt.

Der Ausgang jedes Neurons sollte einen Klassifikator haben, der je nach Training einen Zustand annehmen sollte:

Wenn d größer als d ist oder wahr, wenn kleiner als d (d ist ein Schwellenwert). (Wenn ich mich irre, verurteilen Sie mich nicht zu hart).

 
gpwr >> :

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.

Man muss nicht unbedingt ein Ideal in den Händen halten. Dies alles hängt mit der Frage zusammen, welchen Prozentsatz an Bewegung man sich leisten kann, um die Zuverlässigkeit beim Markteintritt zu verbessern. Idealerweise möchte man 100% nehmen, genau auf dem Zickzack ;-). In der Praxis wäre es für viele Menschen ein Gral, mindestens 50 % auf jeder Kante zu nehmen.

Nach den vorliegenden Informationen zu urteilen, funktionieren die Gitter sehr wohl. Mehrdeutigkeitsprobleme werden durch die Wahl der Konfiguration, der Maschengröße und ihrer Initialisierung gelöst. Im Prinzip wird auch das Problem der lokalen Minima gelöst - durch Annealing oder die gleiche genetische Methode (wählen wir dort nicht die Wahrscheinlichkeit, "schlechte Gene" zu akzeptieren, was einem Sprung aus dem lokalen Tal gleichkommt?) Außerdem dürfen wir nicht vergessen, dass es Ausschüsse von Netzen sind, die die Arbeit erledigen, nicht nur ein einziges. Und wenn man es etwas weiter fasst, ist dann nicht alles auf ein vollständig gebundenes Backpropagation-Grid mit lehrergestütztem Lernen beschränkt? Warum sollte man nicht versuchen, Anführungszeichen und Signale in den Eingangsvektor einzugeben und ihn z. B. an Kohonen zu übermitteln?

 
gpwr писал(а) >>

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

Was bedeutet Ihrer Meinung nach "stabile Gewinne"?

 
marketeer >> :

Sie müssen nicht unbedingt ein perfektes Exemplar in der Hand haben. Dies alles erinnert an die Frage, welchen Prozentsatz an Bewegung man sich leisten kann, um die Glaubwürdigkeit beim Markteintritt zu verbessern. Idealerweise möchte man 100% nehmen, genau auf dem Zickzack ;-). In der Praxis wäre es für viele ein Gral, mindestens 50 % auf jeder Seite zu nehmen.

Nach den vorliegenden Informationen zu urteilen, funktionieren die Netze. Die Probleme mit der Mehrdeutigkeit werden durch die Wahl der Konfiguration, der Gittergröße und ihrer Initialisierung gelöst. Im Prinzip wird auch das Problem der lokalen Minima gelöst - durch Annealing oder die gleiche genetische Methode (wählen wir dort nicht die Wahrscheinlichkeit, "schlechte Gene" zu akzeptieren, was einem Sprung aus dem lokalen Tal gleichkommt?) Außerdem dürfen wir nicht vergessen, dass es Ausschüsse von Netzen sind, die die Arbeit erledigen, nicht nur ein einziges. Und wenn man es etwas weiter fasst, ist dann nicht alles auf ein vollständig gebundenes Backpropagation-Gitter mit lehrergestütztem Lernen beschränkt? Warum sollte man nicht versuchen, Anführungszeichen und Signale in den Eingangsvektor einzugeben und diesen z. B. an Kohonen zu übermitteln?


Sie haben das Wesentliche meiner Argumentation missverstanden. Ich habe nicht von der Korrelation zwischen einem "nicht ausreichend erlernten" Netzwerk und den Handelsergebnissen gesprochen. Überall steht geschrieben, dass das Netz so lange trainiert werden soll, bis der Fehler bei der zu prüfenden Probe nicht mehr abnimmt. Ich stimme dem zu und möchte nicht darüber streiten. Der Kern meiner Überlegungen bestand darin, zu zeigen, wie eine parallele Netzstruktur zu Schwierigkeiten bei der Optimierung führt und wie ein nichtlineares Modell auf der Grundlage einer Potenzreihe dasselbe Ziel wie ein neuronales Netz erreichen kann, allerdings mit einem viel einfacheren mathematischen Apparat und einem schnellen Lernprozess, der zu einem einzigartigen Ergebnis führt.

Was den Ausschuss der Netze angeht, so habe ich eine Meinung: Das ist alles nutzlos. Ich habe eine Frage an alle, die an Netzausschüsse glauben. Angenommen, ein Netz gibt in 60 % der Fälle richtige Signale. Ein anderes Netz liefert in 60 % der Fälle die richtigen Signale. Kombinieren wir nun diese beiden Netze und berechnen wir die korrekten Signale, die von beiden Netzen gleichzeitig empfangen werden. Das heißt, wenn beide Netze "kaufen" oder "verkaufen" anzeigen, wird das entsprechende "Kauf"- oder "Verkaufs"-Signal gegeben. Wenn ein Netzwerk "Kaufen" und das andere "Verkaufen" anzeigt, wird kein Signal gegeben. Wie groß ist die Wahrscheinlichkeit, dass diese Signale richtig sind?

Man könnte die gleiche Frage auch anders formulieren. Nehmen wir ein Treffen von Wissenschaftlern, bei dem alle über die Frage abstimmen, ob es Leben auf dem Mars gibt, und zwar unter biologischen Gesichtspunkten. 60 % der Abstimmenden beantworten die Frage richtig (ich kenne die Antwort übrigens nicht :) Nehmen Sie die Sitzung anderer Wissenschaftler, die über dieselbe Frage abstimmen, aber aus astronomischer Sicht, und nur 60 % von ihnen liegen richtig. Verbinden Sie dann zwei Treffen (Biologen und Astronomen) zu einem und stellen Sie die gleiche Frage. Wenn Sie sagen, dass die Korrektheit der Antwort auf wundersame Weise über 60 % liegt, dann müssen Sie die Statistik studieren.

 
gpwr писал(а) >>

Sie haben das Wesentliche meiner Argumentation missverstanden. Ich habe nicht über den Zusammenhang zwischen einem "ungeschulten" Netzwerk und den Handelsergebnissen gesprochen. Überall steht geschrieben, dass das Netz so lange trainiert werden muss, bis der Fehler in der zu prüfenden Probe nicht mehr abnimmt. Ich stimme dem zu und möchte nicht darüber streiten. Der Kern meiner Überlegungen bestand darin, zu zeigen, wie eine parallele Netzstruktur zu Schwierigkeiten bei der Optimierung führt und wie ein nichtlineares Modell auf der Grundlage einer Potenzreihe dasselbe Ziel wie ein neuronales Netz erreichen kann, allerdings mit einem viel einfacheren mathematischen Apparat und einem schnellen Lernprozess, der zu einem einzigartigen Ergebnis führt.

Was den Ausschuss der Netze angeht, so habe ich eine Meinung: Das ist alles nutzlos. Ich habe eine Frage an alle, die an Netzausschüsse glauben. Angenommen, ein Netz gibt in 60 % der Fälle richtige Signale. Ein anderes Netz liefert in 60 % der Fälle die richtigen Signale. Kombinieren wir nun diese beiden Netze und berechnen wir die korrekten Signale, die von beiden Netzen gleichzeitig empfangen werden. Das heißt, wenn beide Netze "kaufen" oder "verkaufen" anzeigen, wird das entsprechende "Kauf"- oder "Verkaufs"-Signal gegeben. Wenn ein Netzwerk "Kaufen" und das andere "Verkaufen" anzeigt, wird kein Signal gegeben. Wie groß ist die Wahrscheinlichkeit, dass diese Signale richtig sind?

Wir können die gleiche Frage auch anders formulieren. Nehmen wir ein Treffen von Wissenschaftlern, bei dem alle über die Frage abstimmen, ob es Leben auf dem Mars gibt, und zwar unter biologischen Gesichtspunkten. 60 % der Abstimmenden beantworten die Frage richtig (ich kenne die Antwort übrigens nicht :) Nehmen Sie die Sitzung der anderen Wissenschaftler, die über dieselbe Frage abstimmen, aber aus astronomischer Sicht, und nur 60 % von ihnen haben Recht. Verbinden Sie dann zwei Treffen (Biologen und Astronomen) zu einem und stellen Sie die gleiche Frage. Wenn Sie sagen, dass die Korrektheit der Antwort auf wundersame Weise über 60 % liegt, dann müssen Sie Statistik studieren.

Das ist kein besonders gutes Beispiel...

Es gibt viele Möglichkeiten, algorithmische Kompositionen zu erstellen (Ausschüsse). Sie schlagen Voting vor, aus meiner Erfahrung kann ich sagen, dass dies bei weitem nicht der beste Weg ist, eine einfache Gewichtung ist oft besser.

Die Autokorrelation (FunkOsh[i]||FunkOsh[i+1]) ist in der Regel signifikant > 0,8. Und die Korrelation der Fehlerfunktionen der Basisalgorithmen tendiert gegen 1. Ausschüsse bauen glauben, dass Basis-Algorithmen kompensieren sich gegenseitig, ist es notwendig, dass es keine Korrelation zwischen Fehler-Funktionen für alle gut.

Und vergessen wir nicht AdaBoost - es funktioniert wirklich, hat aber auch seine Tücken.

 
gpwr >> :

Wahrscheinlich haben Sie, wie die meisten Neuro-Autoren in diesem Forum, nach den Kommentaren zu urteilen, das Lernen ohne Lehrer vergessen. Warum müssen Sie NN etwas beibringen, wenn Sie NN im Handel einsetzen? Wir können uns selbst nicht ausreichend beibringen, wie man handelt. Wenn Sie von einem Ausschuss von Netzen sprechen, meinen Sie damit, dass jedes NN unabhängig trainiert wird? Und warum geben sie getrennt voneinander Signale? Beim Aufbau von NNs, und noch mehr bei einem Ausschuss von NNs, ist die einzig richtige Lösung das "Lernen ohne Lehrer". Das Gehirn besteht aus mehreren Teilen des Gehirns und mehr als einem Dutzend Unterzweigen. Jeder von ihnen erfüllt eine andere Funktion und verarbeitet Informationen, die von außen kommen. Und der Inhaber dieses "Ausschusses" trifft eine Entscheidung. Wie ist das möglich? Das ist möglich, weil der Ausschuss der Netze in Verbindung miteinander funktionieren muss - als Komplex, sonst funktioniert nichts und es kommt zur "gespaltenen Persönlichkeit".

 
StatBars >> :

nur ein kleines bisschen vor mir :)

 
gpwr >> :

Was den Netzausschuss betrifft, so habe ich eine Meinung: Er ist völlig nutzlos. Ich habe eine Frage an alle, die an Netzausschüsse glauben. Nehmen wir an, ein Netz gibt in 60 % der Fälle die richtigen Signale. Ein anderes Netz liefert in 60 % der Fälle die richtigen Signale. Kombinieren wir nun diese beiden Netze und berechnen wir die korrekten Signale, die von beiden Netzen gleichzeitig empfangen werden. Das heißt, wenn beide Netze "kaufen" oder "verkaufen" anzeigen, wird das entsprechende "Kauf"- oder "Verkaufs"-Signal gegeben. Wenn ein Netz "Kaufen" und das andere "Verkaufen" anzeigt, wird kein Signal gegeben. Wie groß ist die Wahrscheinlichkeit, dass diese Signale richtig sind?

Wir können die gleiche Frage auch anders formulieren. Nehmen wir ein Treffen von Wissenschaftlern, bei dem alle über die Frage abstimmen, ob es Leben auf dem Mars gibt, und zwar unter biologischen Gesichtspunkten. 60 % der Abstimmenden beantworten die Frage richtig (ich kenne die Antwort übrigens nicht :) Nehmen Sie die Sitzung der anderen Wissenschaftler, die über dieselbe Frage abstimmen, aber aus astronomischer Sicht, und nur 60 % von ihnen haben Recht. Verbinden Sie dann zwei Treffen (Biologen und Astronomen) zu einem und stellen Sie die gleiche Frage. Wenn Sie sagen, dass die Korrektheit der Antwort auf wundersame Weise über 60 % liegt, dann müssen Sie die Statistik studieren.

Wahrscheinlichkeit eines korrekten Signals (0,6*0,6)/(0,6*0,6+0,4*0,4)=69,23%, dies ist die Theorie)

das Beispiel einer Sammlung von Wissenschaftlern ist falsch. von der Wahrscheinlichkeit zum Mittelwert.

Statistik ist ein weiterer unterhaltsamer Teil der Mathematik :)

 
gpwr писал(а) >> Überall steht geschrieben, dass das Netz so lange trainiert werden muss, bis der Fehler in der getesteten Probe nicht mehr abnimmt.

Es ist eigentlich viel komplizierter als das. Wenn man es auf einen minimalen Fehler bei der zu testenden Probe trainiert, erhält man wahrscheinlich ein übertrainiertes Netzwerk......