Kurz gesagt: Ich möchte verstehen, warum ein neuronales Netzwerk mit einer verborgenen Schicht zuverlässiger auf ein gutes Minimum konvergiert, wenn eine größere Anzahl versteckter Neuronen verwendet wird. Nachfolgend eine detailliertere Erklärung meines Experiments:
Ich arbeite an einem einfachen 2D-XOR-ähnlichen Klassifizierungsbeispiel, um die Auswirkungen der Initialisierung neuronaler Netze besser zu verstehen. Hier ist eine Visualisierung der Daten und der gewünschten Entscheidungsgrenze:
Jeder Blob besteht aus 5000 Datenpunkten. Das neuronale Netzwerk mit minimaler Komplexität zur Lösung dieses Problems ist ein Netzwerk mit einer verborgenen Schicht und zwei versteckten Neuronen. Da diese Architektur die minimal mögliche Anzahl von Parametern hat, um dieses Problem zu lösen (mit einem NN), würde ich naiv erwarten, dass dies auch am einfachsten zu optimieren ist. Dies ist jedoch nicht der Fall.
Ich fand heraus, dass diese Architektur bei zufälliger Initialisierung etwa die Hälfte der Zeit konvergiert, wobei die Konvergenz von den Vorzeichen der Gewichte abhängt. Insbesondere habe ich folgendes Verhalten beobachtet:
w1 = [[1,-1],[-1,1]], w2 = [1,1] --> converges
w1 = [[1,1],[1,1]], w2 = [1,-1] --> converges
w1 = [[1,1],[1,1]], w2 = [1,1] --> finds only linear separation
w1 = [[1,-1],[-1,1]], w2 = [1,-1] --> finds only linear separation
Das macht für mich Sinn. In den beiden letztgenannten Fällen bleibt die Optimierung in suboptimalen lokalen Minima stecken. Wenn jedoch die Anzahl der versteckten Neuronen auf Werte größer als 2 erhöht wird, entwickelt das Netzwerk eine Robustheit gegenüber der Initialisierung und beginnt zuverlässig für zufällige Werte von w1 und w2 zu konvergieren. Sie können immer noch pathologische Beispiele finden, aber mit 4 versteckten Neuronen ist die Wahrscheinlichkeit größer, dass ein "Pfadweg" durch das Netzwerk nicht pathologische Gewichte aufweist. Aber passiert mit dem Rest des Netzwerks, wird es dann einfach nicht verwendet?
Versteht jemand besser, woher diese Robustheit kommt, oder kann er vielleicht Literatur zu diesem Thema anbieten?
Weitere Informationen: Dies tritt in allen von mir untersuchten Trainingseinstellungen / Architekturkonfigurationen auf. Zum Beispiel wurden Aktivierungen = Relu, endgültige_Aktivierung = Sigmoid, Optimierer = Adam, Lernrate = 0,1, Kostenfunktion = Kreuzentropie, Verzerrungen in beiden Schichten verwendet.
quelle
Antworten:
Sie haben ein bisschen von der Antwort verstanden.
Wenn Sie nur zwei Dimensionen haben, existiert ein lokales Minimum. Wenn Sie mehr Dimensionen haben, wird es immer schwieriger, diese Minima zu erreichen, da ihre Wahrscheinlichkeit abnimmt. Intuitiv haben Sie viel mehr Dimensionen, durch die Sie sich verbessern können, als wenn Sie nur 2 Dimensionen hätten.
Das Problem besteht immer noch, selbst bei 1000 Neuronen konnte man einen bestimmten Satz von Gewichten finden, der ein lokales Minimum war. Es wird jedoch viel weniger wahrscheinlich.
quelle
Ich habe möglicherweise die Oberfläche eines viel größeren Problems zerkratzt, als ich diese Frage gestellt habe. In der Zwischenzeit habe ich das Papier zur Lotterie-Hypothese gelesen: https://arxiv.org/pdf/1803.03635.pdf
Grundsätzlich ist es wahrscheinlicher, dass Sie bei einer Überparametrisierung Ihres Netzwerks eine zufällige Initialisierung finden, die eine gute Leistung erbringt: Ein Gewinn-Ticket. Das obige Papier zeigt, dass Sie die nicht benötigten Teile des Netzwerks nach dem Training tatsächlich entfernen können. Sie müssen das Netzwerk jedoch zunächst überparametrieren, um die Wahrscheinlichkeit zu erhöhen, dass eine erfolgreiche Ticketkonfiguration zufällig ausgewählt wird.
Ich glaube, der Fall in meiner obigen Frage ist ein minimales Beispiel dafür.
quelle