Es gibt eine Reihe von Fragen zu stellen:
- Haben Sie die entsprechende Anzahl von Neuronen in jeder Schicht?
- Verwenden Sie die entsprechenden Übertragungsfunktionen?
- Verwenden Sie den geeigneten Lernalgorithmus?
- Haben Sie eine ausreichend große Stichprobe?
- Können Sie bestätigen, dass Ihre Proben die richtige Beziehung zueinander haben, um informativ zu sein? (nicht redundant, von relevanter Dimension usw.)
Was können Sie der Ephemeride geben? Können Sie uns etwas über die Art der Daten erzählen?
Sie könnten einen gradientenverstärkten Baum neuronaler Netze erstellen.
Sie haben gefragt, was passiert, wenn Sie früh aufhören.
Sie können es selbst versuchen. Führen Sie 300x aus, wobei Sie mit zufällig initialisierten Gewichten beginnen und dann bei einer bestimmten Anzahl von Iterationen anhalten, z. B. 100. Berechnen Sie an diesem Punkt Ihren Ensemble-Fehler, Ihren Trainings-Teilmengen-Fehler und Ihren Test-Set-Fehler. Wiederholen. Nachdem Sie 300 Werte haben, die Ihnen den Fehler mitteilen, können Sie sich anhand von 100 Lerniterationen ein Bild von Ihrer Fehlerverteilung machen. Wenn Sie möchten, können Sie diese Verteilung bei mehreren anderen Lernwerten testen. Ich schlage 200, 500 und 1000 Iterationen vor. Dies gibt Ihnen eine Vorstellung davon, wie sich Ihr SNR im Laufe der Zeit ändert. Eine Darstellung des SNR gegen die Iterationszahl kann Ihnen eine Vorstellung von "Klippen" oder "gut genug" geben. Manchmal gibt es Klippen, auf denen Fehler zusammenbrechen. Manchmal ist der Fehler an diesem Punkt akzeptabel.
Es braucht "relativ einfache" Daten oder "ziemlich viel" Glück, bis Ihr System in weniger als 100 Iterationen konsistent konvergiert. Bei beiden geht es weder um Wiederholbarkeit noch um Verallgemeinerbarkeit.
Warum denken Sie an konvergierende Gewichte und nicht an Fehler, die unter einem bestimmten Schwellenwert liegen? Haben Sie jemals von einem Abstimmungsparadoxon gehört? ( Link ) Wenn Sie zyklische Interaktionen in Ihrem System haben (wie Feedback in neuronalen Netzen), können Sie Abstimmungsparadoxien haben - gekoppelte Änderungen. Ich weiß nicht, ob Gewichte allein ein ausreichender Indikator für die Konvergenz des Netzwerks sind.
Sie können sich die Gewichte als Leerzeichen vorstellen. Es hat mehr als 3 Dimensionen, aber es ist immer noch ein Raum. Im "Schwerpunkt" dieses Bereichs befindet sich Ihre "am besten passende" Region. Weit entfernt vom Schwerpunkt ist eine weniger gute Passform. Sie können sich die aktuelle Einstellung Ihrer Gewichte als einen einzelnen Punkt in diesem Bereich vorstellen.
Jetzt wissen Sie nicht, wo das "Gute" tatsächlich ist. Was Sie haben, ist ein lokaler "Hang". Sie können einen Gradientenabstieg in Richtung lokal "besser" durchführen, wenn Ihr Punkt gerade ist. Es sagt dir nicht das "Universelle" besser, aber lokal ist besser als nichts.
Also fängst du an zu iterieren und gehst bergab in Richtung des Tals der Betterness. Sie iterieren, bis Sie denken, dass Sie fertig sind. Vielleicht ist der Wert Ihrer Gewichte groß. Vielleicht hüpfen sie überall herum. Vielleicht dauert die Berechnung "zu lange". Du willst fertig sein.
Woher wissen Sie also, ob Ihr Standort "gut genug" ist?
Hier ist ein kurzer Test, den Sie durchführen können:
Nehmen Sie 30 einheitliche zufällige Teilmengen der Daten (wie jeweils einige Prozent der Daten) und trainieren Sie das Netzwerk darauf neu. Es sollte viel schneller sein. Beobachten Sie, wie lange sie brauchen, um zu konvergieren, und vergleichen Sie es mit der Konvergenzhistorie der großen Menge. Testen Sie den Fehler des Netzwerks für die gesamten Daten in diesen Teilmengen und sehen Sie, wie diese Fehlerverteilung mit Ihrem großen Fehler verglichen wird. Erhöhen Sie nun die Teilmengengröße auf bis zu 5% Ihrer Daten und wiederholen Sie den Vorgang. Sehen Sie, was Sie das lehrt.
Dies ist eine Variation der Partikelschwarmoptimierung (siehe Referenz), die darauf basiert, wie Honigbienen Entscheidungen auf der Grundlage von Scouting treffen.
Sie haben gefragt, was passiert, wenn die Gewichte nicht konvergieren.
Neuronale Netze sind ein Werkzeug. Sie sind nicht das einzige Werkzeug. Da sind andere. Ich würde versuchen, einen von ihnen zu verwenden.
Ich arbeite in Bezug auf Informationskriterien, also betrachte ich sowohl die Gewichte (Parameteranzahl) als auch den Fehler. Sie könnten eines davon versuchen.
Es gibt einige Arten der Vorverarbeitung, die nützlich sein können. Zentrum und Maßstab. Mit Hauptkomponenten drehen. Wenn Sie sich die Eigenwerte in Ihren Hauptkomponenten ansehen, können Sie mithilfe von Skree-Plot-Regeln die Dimension Ihrer Daten schätzen. Das Reduzieren der Dimension kann die Konvergenz verbessern. Wenn Sie etwas über die "zugrunde liegende Physik" wissen, können Sie die Daten glätten oder filtern, um Rauschen zu entfernen. Manchmal geht es bei der Konvergenz um Rauschen im System.
Ich finde die Idee der komprimierten Wahrnehmung interessant. Es kann eine radikale Unterabtastung einiger Systeme ohne Verlust der Verallgemeinerung ermöglichen. Ich würde mir einige neu abgetastete Bootstrap-Statistiken und Verteilungen Ihrer Daten ansehen, um festzustellen, ob und auf welcher Ebene der Unterabtastung der Trainingssatz repräsentativ wird. Dies gibt Ihnen ein gewisses Maß für den "Zustand" Ihrer Daten.
Manchmal ist es gut, dass sie nicht zusammenlaufen
Haben Sie jemals von einem Abstimmungsparadoxon gehört? Sie können es sich als einen Cousin mit höherer Anzahl in einer Zwei-Wege-Sackgasse vorstellen. Es ist eine Schleife. In einem 2-Personen-Abstimmungsparadoxon möchte die erste Person den Kandidaten "A", während die zweite den Kandidaten "B" (oder nicht-A oder so) möchte. Der wichtige Teil ist, dass Sie es als eine Schleife betrachten können.
Schleifen sind in neuronalen Netzen wichtig. Feedback. Rekursion. Dadurch konnte das Perzeptron XOR-ähnliche Probleme lösen. Es werden Schleifen erstellt, und manchmal können sich die Schleifen wie das Abstimmungsparadox verhalten, bei dem sich die Gewichte ständig ändern, wenn Sie unendlich viele Iterationen hatten. Sie sollen nicht konvergieren, weil es nicht auf das individuelle Gewicht ankommt, sondern auf das Zusammenspiel der Gewichte in der Schleife.
Hinweis:
Die Verwendung von nur 500 Iterationen kann ein Problem sein. Ich hatte NNs, bei denen 10.000 Iterationen kaum genug waren. Die Anzahl der Iterationen, um "genug" zu sein, hängt, wie bereits erwähnt, von Daten, NN-Topologie, Knotenübertragungsfunktionen, Lern- / Trainingsfunktion und sogar Computerhardware ab. Sie müssen ein gutes Verständnis dafür haben, wie sie alle mit Ihrer Iterationszahl interagieren, bevor Sie sagen, dass "genug" oder "zu viele" Iterationen vorhanden sind. Andere Überlegungen wie Zeit, Budget und was Sie mit dem NN tun möchten, wenn Sie mit dem Training fertig sind, sollten ebenfalls berücksichtigt werden.
Chen, RB, Chang, SP, Wang, W. & Wong, WK (2011, September). Optimale experimentelle Designs über Methoden zur Partikelschwarmoptimierung (Preprint), abgerufen am 25. März 2012 von http://www.math.ntu.edu.tw/~mathlib/preprint/2011-03.pdf