Zunächst einmal: Ich weiß, dass zum Trainieren eines neuronalen Netzwerks keine allgemeine Anzahl von Stichproben erforderlich ist. Es hängt von viel zu vielen Faktoren ab, wie der Komplexität der Aufgabe, dem Rauschen in den Daten und so weiter. Und je mehr Trainingsbeispiele ich habe, desto besser wird mein Netzwerk.
Aber ich habe mich gefragt: Ist es theoretisch möglich, ein neuronales Netzwerk mit weniger Trainingsmustern als Gewichten zu trainieren, wenn ich davon ausgehe, dass meine Aufgabe "einfach" genug ist? Kennt jemand ein Beispiel, wo das geklappt hat? Oder wird dieses Netzwerk mit ziemlicher Sicherheit eine schlechte Leistung erbringen?
Wenn ich zum Beispiel die Polynomregression betrachte, kann ich kein Polynom vom Grad 4 (dh mit 5 freien Parametern) nur auf 4 Datenpunkte anpassen. Gibt es eine ähnliche Regel für neuronale Netze, wenn ich meine Anzahl von Gewichten als die Anzahl von freien Parametern betrachte?
Antworten:
Das machen die Leute die ganze Zeit mit großen Netzwerken. Zum Beispiel hat das berühmte AlexNet-Netzwerk ungefähr 60 Millionen Parameter, während das ImageNet ILSVRC, auf dem es ursprünglich trainiert wurde, nur 1,2 Millionen Bilder hat.
Der Grund, warum Sie ein 5-Parameter-Polynom nicht an 4 Datenpunkte anpassen, ist, dass es immer eine Funktion finden kann, die genau zu Ihren Datenpunkten passt, aber an anderer Stelle unsinnige Dinge tut. Nun ja, wie wurde vor kurzem festgestellt , AlexNet und ähnliche Netzwerke können beliebige Zufalls Etiketten passen auf IMAGEnet angewendet und einfach auswendig lernen sie alle, vermutlich weil sie so viele mehr Parameter als Trainingspunkte. Etwas an den Prioritäten des Netzwerks in Kombination mit dem Optimierungsprozess für den stochastischen Gradientenabstieg bedeutet jedoch, dass diese Modelle in der Praxis immer noch gut auf neue Datenpunkte verallgemeinert werden können, wenn Sie ihnen echte Beschriftungen geben. Wir verstehen immer noch nicht wirklich, warum das passiert.
quelle
Unterbestimmte Systeme sind nur dann unterbestimmt, wenn Sie keine anderen Einschränkungen als die Daten auferlegen. Wenn Sie sich an Ihr Beispiel halten und ein 4-Grad-Polynom an 4 Datenpunkte anpassen, haben Sie einen Freiheitsgrad, der nicht durch die Daten eingeschränkt wird, sodass Sie eine Linie (im Koeffizientenraum) gleich guter Lösungen erhalten. Sie können jedoch verschiedene Regularisierungstechniken verwenden, um das Problem nachvollziehbar zu machen. Indem Sie beispielsweise die L2-Norm (dh die Summe der Quadrate) der Koeffizienten mit einer Strafe belegen, stellen Sie sicher, dass es immer eine eindeutige Lösung mit der höchsten Fitness gibt.
Regularisierungstechniken gibt es auch für neuronale Netze. Die kurze Antwort auf Ihre Frage lautet "Ja, Sie können". Von besonderem Interesse ist eine Technik namens "Dropout", bei der Sie für jede Aktualisierung der Gewichte zufällig eine bestimmte Teilmenge von Knoten aus dem Netzwerk "löschen". Das heißt, für diese bestimmte Iteration des Lernalgorithmus tun Sie so, als ob diese Knoten nicht existieren. Ohne Dropout kann das Netz sehr komplexe Darstellungen der Eingabe lernen, die davon abhängen, dass alle Knoten genau richtig zusammenarbeiten. Solche Darstellungen werden wahrscheinlich die Trainingsdaten "auswendig lernen", anstatt verallgemeinernde Muster zu finden. Dropout stellt sicher, dass das Netzwerk nicht alle Knoten gleichzeitig verwenden kann, um die Trainingsdaten anzupassen. es muss in der Lage sein, die Daten auch dann gut darzustellen, wenn einige Knoten fehlen,
Beachten Sie auch, dass bei Verwendung von Dropout die Freiheitsgrade an einem bestimmten Punkt während des Trainings tatsächlich kleiner sein können als die Anzahl der Trainingsmuster, obwohl Sie insgesamt mehr Gewichte als Trainingsmuster lernen.
quelle