Was ist die „Kapazität“ eines maschinellen Lernmodells?

15

Ich studiere dieses Tutorial über Variations-Autoencoder von Carl Doersch . Auf der zweiten Seite heißt es:

Eines der beliebtesten Frameworks dieser Art ist der Variational Autoencoder [1, 3], der Gegenstand dieses Tutorials ist. Die Annahmen dieses Modells sind schwach und das Training erfolgt schnell über Backpropagation. VAEs machen eine Annäherung, aber der durch diese Annäherung verursachte Fehler ist angesichts von Modellen mit hoher Kapazität wohl gering . Diese Eigenschaften haben zu einem raschen Anstieg ihrer Popularität beigetragen.

Ich habe in der Vergangenheit solche Behauptungen über Modelle mit hoher Kapazität gelesen , aber ich scheine keine klare Definition dafür zu finden. Ich habe auch diese verwandte Stackoverflow-Frage gefunden, aber für mich ist die Antwort sehr unbefriedigend.

Gibt es eine Definition für die Kapazität eines Modells? Kannst du es messen?

Andrés Marafioti
quelle

Antworten:

13

Kapazität ist ein informeller Begriff. Es ist sehr nah (wenn nicht ein Synonym) für die Komplexität des Modells. Auf diese Weise können Sie darüber sprechen, wie kompliziert ein Muster oder eine Beziehung ein Modell ausdrücken kann. Sie können erwarten, dass ein Modell mit höherer Kapazität mehr Beziehungen zwischen mehr Variablen modellieren kann als ein Modell mit niedrigerer Kapazität.

Wenn Sie eine Analogie aus der umgangssprachlichen Definition von Kapazität ziehen, können Sie sich diese als die Fähigkeit eines Modells vorstellen, aus immer mehr Daten zu lernen, bis diese vollständig mit Informationen "gefüllt" sind.

Es gibt verschiedene Möglichkeiten, die Kapazität zu formalisieren und einen numerischen Wert dafür zu berechnen. Wichtig ist jedoch, dass dies nur einige mögliche "Operationalisierungen" der Kapazität sind (ähnlich wie wenn Sie eine Formel zur Berechnung der Schönheit finden würden, würden Sie dies erkennen Die Formel ist nur eine fehlbare Interpretation von Schönheit.


Die VC-Dimension ist eine mathematisch strenge Formulierung der Kapazität. Es kann jedoch eine große Lücke zwischen der VC-Dimension eines Modells und der tatsächlichen Fähigkeit des Modells bestehen, die Daten anzupassen. Obwohl die Kenntnis des VC-Dim eine Grenze für den Generalisierungsfehler des Modells darstellt, ist dies normalerweise zu locker, um mit neuronalen Netzen nützlich zu sein.

Eine andere Forschungsrichtung , die hier zu sehen ist, besteht darin, die Spektralnorm der Gewichtsmatrizen in einem neuronalen Netzwerk als Maß für die Kapazität zu verwenden. Ein Weg, dies zu verstehen, besteht darin, dass die Spektralnorm die Lipschitz-Konstante des Netzwerks begrenzt.

Die gebräuchlichste Methode zur Schätzung der Kapazität eines Modells besteht darin, die Anzahl der Parameter zu zählen. Je mehr Parameter vorhanden sind, desto höher ist im Allgemeinen die Kapazität. Natürlich lernt ein kleineres Netzwerk oft, komplexere Daten besser zu modellieren als ein größeres Netzwerk, daher ist diese Maßnahme auch alles andere als perfekt.

Eine andere Möglichkeit, die Kapazität zu messen, besteht darin, Ihr Modell mit zufälligen Beschriftungen zu trainieren ( Neyshabur et al. ). Wenn sich Ihr Netzwerk eine Reihe von Eingaben zusammen mit zufälligen Beschriftungen korrekt merken kann, zeigt dies im Wesentlichen, dass das Modell in der Lage ist, sich alle diese zu merken Datenpunkte einzeln. Je mehr Eingabe / Ausgabe-Paare "gelernt" werden können, desto höher ist die Kapazität.

Wenn Sie dies an einen Auto-Encoder anpassen, können Sie zufällige Eingaben generieren, das Netzwerk trainieren, um sie zu rekonstruieren, und dann zählen, wie viele zufällige Eingaben Sie mit weniger als Fehlern erfolgreich rekonstruieren können .ϵ

Shimao
quelle
1
Dies ist eine bessere Antwort als die von stackoverflow, danke. Ich habe immer noch Probleme damit, lose definierte Begriffe zu sehen, die als Rechtfertigung für etwas anderes verwendet werden, aber ich denke, so bewegt sich das Feld vorwärts.
Andrés Marafioti
1
"Es kann eine große Lücke zwischen der VC-Dimension eines Modells und der tatsächlichen Kapazität des Modells bestehen." Dies ist eine sehr irreführende Aussage, da die "tatsächliche Kapazität" nicht genau definiert ist. Tatsächlich ist die VC-Dimension ein gutes Maß für die Kapazität eines Modells. Nur weil neuronale Netze bestimmte Probleme zu lösen scheinen, sind sie nicht "hoch fähig". Tatsächlich denken die Menschen meistens, dass die neuronalen Netze ein Problem lösen, während sie ein viel einfacheres Problem lösen, und tatsächlich scheitern sie oft katastrophal (weil sie "unerwartet" darauf trainiert wurden, ein einfacheres Problem zu lösen).
6.