Ein Problem, das ich im Zusammenhang mit neuronalen Netzen im Allgemeinen und Deep Neural Networks im Besonderen häufig gesehen habe, ist, dass sie "datenhungrig" sind - das heißt, dass sie nur dann eine gute Leistung erbringen, wenn wir einen großen Datenbestand haben mit dem man das netzwerk trainiert.
Meines Wissens liegt dies an der Tatsache, dass NNets, insbesondere Deep NNets, eine große Anzahl von Freiheitsgraden haben. Als Modell hat ein NNet eine sehr große Anzahl von Parametern, und wenn die Anzahl der Parameter des Modells relativ zur Anzahl der Trainingsdatenpunkte groß ist, besteht eine erhöhte Tendenz zur Überanpassung.
Aber warum wird dieses Problem nicht durch Regularisierung gelöst? Soweit ich weiß, können NNets L1- und L2-Regularisierung verwenden und haben auch ihre eigenen Regularisierungsmethoden wie Dropout, mit denen die Anzahl der Parameter im Netzwerk reduziert werden kann.
Können wir unsere Regularisierungsmethoden so wählen, dass sie Sparsamkeit erzwingen und die Größe des Netzwerks begrenzen?
Um meine Überlegungen zu verdeutlichen: Angenommen, wir verwenden ein großes Deep NNet, um unsere Daten zu modellieren, aber der Datensatz ist klein und könnte tatsächlich durch ein lineares Modell modelliert werden. Warum konvergieren dann die Netzwerkgewichte nicht so, dass ein Neuron die lineare Regression simuliert und alle anderen zu Nullen konvergieren? Warum hilft Regularisierung dabei nicht?
quelle
Antworten:
Der einfache Weg, dies zu erklären, besteht darin, dass Regularisierung hilft, sich nicht an das Rauschen anzupassen, und nicht viel dazu beiträgt, die Form des Signals zu bestimmen. Wenn Sie Deep Learning als einen riesigen prächtigen Funktionsapproximator betrachten, stellen Sie fest, dass er viele Daten benötigt, um die Form des komplexen Signals zu definieren.
Wenn es kein Rauschen gäbe, würde eine zunehmende Komplexität von NN eine bessere Annäherung ergeben. Es gäbe keinen Nachteil für die Größe des NN, größer wäre in jedem Fall besser gewesen. Betrachten Sie eine Taylor-Näherung, mehr Terme sind immer besser für nichtpolynomiale Funktionen (ohne Berücksichtigung numerischer Genauigkeitsprobleme).
Dies bricht bei Auftreten eines Geräusches zusammen, da Sie beginnen, sich an das Geräusch anzupassen. Hier kommt also die Regularisierung, um zu helfen: Sie kann die Anpassung an das Rauschen verringern und es uns ermöglichen, größere NN zu bauen , um nichtlineare Probleme zu berücksichtigen.
Die folgende Diskussion ist für meine Antwort nicht wesentlich, aber ich habe sie teilweise hinzugefügt, um einige Kommentare zu beantworten und den Hauptteil der obigen Antwort zu motivieren. Grundsätzlich ist der Rest meiner Antwort wie ein französisches Feuer, das mit einem Burgergericht einhergeht. Sie können es überspringen.
(Ir) relevanter Fall: Polynom-Regression
Schauen wir uns ein Spielzeugbeispiel für eine polynomielle Regression an. Es ist auch ein ziemlich guter Näherungswert für viele Funktionen. Wir werden uns die -Funktion in -Region . Wie Sie aus der Taylor-Reihe unten ersehen können, ist die Erweiterung 7. Ordnung bereits eine ziemlich gute Anpassung, daher können wir erwarten, dass ein Polynom der Ordnung 7+ auch eine sehr gute Anpassung sein sollte:x ∈ ( - 3 , 3 )sin(x) x∈(−3,3)
Als nächstes werden wir Polynome mit zunehmend höherer Ordnung in einen kleinen, sehr verrauschten Datensatz mit 7 Beobachtungen einpassen:
Wir können beobachten, was uns viele Kenner über Polynome gesagt haben: Sie sind instabil und beginnen wild zu schwingen, wenn die Reihenfolge der Polynome zunimmt.
Das Problem sind jedoch nicht die Polynome selbst. Das Problem ist der Lärm. Wenn wir Polynome an verrauschte Daten anpassen, liegt ein Teil der Anpassung am Rauschen und nicht am Signal. Hier sind die gleichen exakten Polynome, die zu demselben Datensatz passen, wobei jedoch das Rauschen vollständig entfernt wurde. Die Passformen sind super!
Beachten Sie eine optisch perfekte Anpassung für Ordnung 6. Dies sollte nicht überraschen, da nur 7 Beobachtungen erforderlich sind, um das Polynom der Ordnung 6 eindeutig zu identifizieren, und wir sahen, dass die Taylor-Näherungskurve über dieser Ordnung 6 bereits eine sehr gute Näherung für in unserem Datenbereich.sin(x)
Beachten Sie auch, dass Polynome höherer Ordnung nicht so gut passen wie die Polynome höherer Ordnung 6, da nicht genügend Beobachtungen vorliegen, um sie zu definieren. Schauen wir uns also an, was mit 100 Beobachtungen passiert. In der folgenden Tabelle sehen Sie, wie ein größerer Datensatz es uns ermöglichte, Polynome höherer Ordnung anzupassen und so eine bessere Anpassung zu erzielen!
Großartig, aber das Problem ist, dass wir normalerweise mit verrauschten Daten umgehen. Schauen Sie sich an, was passiert, wenn Sie 100 Beobachtungen mit sehr verrauschten Daten gleich bewerten (siehe folgende Tabelle). Wir kehren zu Punkt 1 zurück: Polynome höherer Ordnung erzeugen schreckliche oszillierende Anpassungen. Das Erhöhen des Datensatzes hat also nicht viel dazu beigetragen, die Komplexität des Modells zu erhöhen, um die Daten besser zu erklären. Dies liegt wiederum daran, dass ein komplexes Modell nicht nur besser an die Form des Signals, sondern auch an die Form des Rauschens angepasst werden kann.
Lassen Sie uns abschließend eine lahme Regularisierung dieses Problems versuchen. Die folgende Grafik zeigt die Regularisierung (mit unterschiedlichen Strafen), die auf die Polynomregression der Ordnung 9 angewendet wird. Vergleichen Sie dies mit der obigen Polynomanpassung (Potenz) 9: Bei einem angemessenen Grad an Regularisierung ist es möglich, Polynome höherer Ordnung an verrauschte Daten anzupassen.
Nur für den Fall, dass es nicht klar war: Ich schlage nicht vor, die polynomiale Regression auf diese Weise zu verwenden. Polynome eignen sich gut für lokale Anpassungen, daher kann ein stückweises Polynom eine gute Wahl sein. Es ist oft eine schlechte Idee, die gesamte Domäne mit ihnen zu kombinieren, da sie in der Tat geräuschempfindlich sind, wie aus den obigen Darstellungen hervorgeht. Ob das Rauschen numerisch ist oder von einer anderen Quelle stammt, ist in diesem Zusammenhang nicht so wichtig. das Rauschen ist Rauschen, und Polynome werden leidenschaftlich darauf reagieren.
quelle
Zu diesem Zeitpunkt ist nicht klar, wann und warum bestimmte Regularisierungsmethoden erfolgreich sind und scheitern. In der Tat ist es überhaupt nicht verstanden, warum Deep Learning überhaupt funktioniert.
In Anbetracht der Tatsache, dass ein ausreichend tiefes neuronales Netz die meisten wohlerzogenen Trainingsdaten perfekt speichern kann, gibt es erheblich mehr falsche Lösungen als für ein bestimmtes tiefes Netz richtig sind. Regularisierung ist im Großen und Ganzen ein Versuch, die Ausdruckskraft von Modellen für diese "falschen" Lösungen einzuschränken - wobei "falsch" durch Heuristiken definiert wird, die wir für einen bestimmten Bereich für wichtig halten . Aber oft ist es schwierig, die Heuristik so zu definieren, dass man damit nicht die "richtige" Ausdruckskraft verliert. Ein gutes Beispiel dafür sind L2-Strafen.
Nur sehr wenige Methoden, die als eine Form der Regularisierung angesehen werden könnten, sind im Allgemeinen auf alle Anwendungsbereiche von ML anwendbar. Visions-, NLP- und strukturierte Vorhersageprobleme verfügen alle über ein eigenes Kochbuch mit Regularisierungstechniken, von denen nachgewiesen wurde, dass sie experimentell für diese bestimmten Bereiche wirksam sind. Aber auch in diesen Bereichen sind diese Techniken nur unter bestimmten Umständen wirksam. Zum Beispiel scheint die Batch-Normalisierung in tiefen verbleibenden Netzen den Ausfall überflüssig zu machen, obwohl gezeigt wurde, dass beide unabhängig voneinander die Generalisierung verbessern.
Ich denke, der Begriff Regularisierung ist so weit gefasst, dass es schwierig ist, etwas darüber zu verstehen. Angesichts der Tatsache, dass Faltungen den Parameterraum in Bezug auf Pixel exponentiell einschränken, könnten Sie das neuronale Faltungsnetz als eine Form der Regularisierung im neuronalen Vanillenetz betrachten.
quelle
Eine Klasse von Theoremen, die zeigen, warum dieses Problem grundlegend ist, sind die No Free Lunch Theoreme . Für jedes Problem mit begrenzten Stichproben, bei dem eine bestimmte Regularisierung hilfreich ist, gibt es ein weiteres Problem, bei dem dieselbe Regularisierung die Situation verschlimmert. Wie Austin ausführt, ist die L1 / L2-Regularisierung im Allgemeinen für viele reale Probleme hilfreich, dies ist jedoch nur eine Beobachtung, und aufgrund der NFL-Theoreme kann es keine allgemeinen Garantien geben.
quelle
Ich würde sagen, dass auf hohem Niveau die induktive Vorspannung von DNNs (tiefen neuronalen Netzen) leistungsfähig ist, aber etwas zu locker oder nicht gut genug beurteilt. Damit meine ich, dass DNNs viele Oberflächenstatistiken darüber erfassen, was gerade vor sich geht, aber nicht zu einer tieferen kausalen / kompositorischen Struktur auf hoher Ebene gelangen. (Sie könnten Windungen als eine induktive Vorspannungsspezifikation für Arme betrachten).
Darüber hinaus wird in der maschinellen Lerngemeinschaft angenommen, dass der beste Weg zur Verallgemeinerung (gute Schlussfolgerungen / Vorhersagen mit wenigen Daten) darin besteht, das kürzeste Programm zu finden, das die Daten hervorgebracht hat. Aber Programmeinführung / -synthese ist schwierig und wir haben keine gute Möglichkeit, dies effizient zu tun. Stattdessen verlassen wir uns auf eine enge Annäherung, nämlich die Suche nach Schaltkreisen, und wir wissen, wie dies mit Backpropagation möglich ist. Hier gibt Ilya Sutskever einen Überblick über diese Idee.
Um den Unterschied in der Verallgemeinerungsstärke von Modellen, die als tatsächliche Programme dargestellt werden, im Vergleich zu Deep-Learning-Modellen zu veranschaulichen, zeige ich den in diesem Artikel beschriebenen Unterschied: Simulation als Motor für das Verständnis physikalischer Szenen .
Mein Punkt hier ist, dass die Anpassung in C wirklich gut ist, weil das Modell die richtigen Vorurteile darüber erfasst, wie Menschen physikalische Urteile fällen. Dies ist zum großen Teil darauf zurückzuführen, dass es die tatsächliche Physik modelliert (denken Sie daran, dass es sich um eine tatsächliche Physik-Engine handelt) und mit Unsicherheit umgehen kann.
Nun ist die offensichtliche Frage: Können Sie das mit tiefem Lernen tun? Dies ist, was Lerer et al in dieser Arbeit getan haben: Physische Intuition von Blocktürmen anhand eines Beispiels lernen
Ihr Modell:
Ihr Modell ist tatsächlich ziemlich gut für die anstehende Aufgabe (Vorhersage der Anzahl fallender Blöcke und sogar ihrer Fallrichtung)
Es weist jedoch zwei Hauptnachteile auf:
Es gab eine Vergleichsstudie von Tenenbaums Labor zu diesen beiden Ansätzen: Eine vergleichende Bewertung der ungefähren probabilistischen Simulation und der tiefen neuronalen Netze als Erklärungen für das Verständnis der menschlichen physischen Szene .
Zitieren des Diskussionsteils:
Zurück zu dem Punkt, den ich ansprechen möchte: Neuronale Netze sind zwar leistungsfähige Modelle, sie scheinen jedoch nicht in der Lage zu sein, kausale, kompositorische und komplexe Strukturen darzustellen. Und sie machen das wieder wett, indem sie viele Trainingsdaten benötigen.
Und zurück zu Ihrer Frage: Ich gehe davon aus, dass aufgrund der breiten induktiven Verzerrung und der Tatsache, dass neuronale Netze Kausalität / Komposition nicht modellieren, so viele Trainingsdaten benötigt werden. Regularisierung ist aufgrund der Art und Weise, wie sie verallgemeinert werden, keine gute Lösung. Eine bessere Lösung wäre es, ihre Vorurteile zu ändern, wie dies derzeit von Hinton mit Kapseln zur Modellierung der Ganz- / Teilegeometrie oder mit Interaktionsnetzwerken zur Modellierung von Beziehungen versucht wird .
quelle
Erstens gibt es viele Regularisierungsmethoden, die sowohl im Einsatz als auch in der aktiven Forschung für tiefes Lernen sind. Ihre Prämisse ist also nicht ganz sicher.
Bei den verwendeten Methoden ist der Gewichtsabfall eine direkte Implementierung einer L2-Strafe für die Gewichte über den Gradientenabstieg. Nehmen Sie den Gradienten der quadratischen Norm Ihrer Gewichte und fügen Sie bei jeder Iteration einen kleinen Schritt in diese Richtung hinzu. Aussetzer werden auch als eine Form der Regularisierung angesehen, die eine Art gemittelte Struktur auferlegt. Dies scheint so etwas wie eine L2-Strafe für ein Ensemble von Netzwerken mit gemeinsam genutzten Parametern zu bedeuten.
Vermutlich könnten Sie den Pegel dieser oder anderer Techniken erhöhen, um kleine Samples anzusprechen. Beachten Sie jedoch, dass Regularisierung das Auferlegen von Vorkenntnissen voraussetzt. Die L2-Strafe für die Gewichte impliziert beispielsweise einen Gaußschen Prior für die Gewichte. Wenn Sie den Grad der Regularisierung erhöhen, stellen Sie im Wesentlichen fest, dass Ihre Vorkenntnisse immer sicherer werden, und richten Sie Ihr Ergebnis auf diese Vorkenntnisse aus. Sie können es also tun und es wird weniger überanpassen, aber der voreingenommene Ausgang kann saugen. Offensichtlich ist die Lösung besseres Vorwissen. Für die Bilderkennung würde dies viel mehr strukturierte Prioritäten bezüglich der Statistik Ihres Problems bedeuten. Das Problem mit dieser Richtung ist, dass Sie eine Menge Fachwissen auferlegen, und die Vermeidung menschlicher Fachkenntnisse war einer der Gründe, warum Sie Deep Learning angewendet haben.
quelle
So können neuronale Netze trainiert werden. Wenn die richtige L1-Regularisierung verwendet wird, kann ein Großteil der Gewichte auf Null gesetzt werden, was dazu führt, dass sich neuronale Netze wie eine Verkettung von etwa 1 linearen Regressionsneuronen und vielen anderen Null-Neronen verhalten. Also ja - L1 / L2-Regularisierungen oder ähnliches können verwendet werden, um die Größe oder Repräsentationskraft des neuronalen Netzwerks einzuschränken.
Tatsächlich ist die Größe des Modells selbst eine Art Regularisierung. Wenn Sie das Modell groß machen, bedeutet dies, dass Sie Vorkenntnisse über das Problem haben. Die Probleme sind also sehr komplex, sodass ein Modell mit hoher Repräsentationskraft erforderlich ist. Wenn Sie das Modell klein machen, bedeutet dies, dass Sie wissen, dass das Problem einfach ist und das Modell nicht viel Kapazität benötigt.
Und dies bedeutet, dass die L2-Regularisierung Netzwerke nicht "spärlich" macht, wie Sie beschrieben haben, da die L2-Regularisierung das Wissen voraussetzt, dass der Beitrag jedes Neurons (Gewichts) klein, aber nicht null sein sollte. Das Netzwerk würde also jedes der Neuronen verwenden, anstatt nur einen kleinen Satz von Neuronen zu verwenden.
quelle
Ein wesentlicher Punkt hierbei ist, dass Regularisierung nicht immer hilfreich ist. Vielmehr ist das Regularisieren auf das, was wahrscheinlich wahr sein sollte, sehr hilfreich, aber das Regularisieren in die falsche Richtung ist eindeutig schlecht.
Nehmen wir nun an, unsere Daten sind Bilder von Katzen, die in tiefe neuronale Netze eingespeist werden. Wenn "spitze Ohren" in der Tat sehr hilfreich sind, um Katzen zu identifizieren, möchten wir vielleicht die Strafe reduzieren, um diese prädiktiver zu machen. Wir haben aber keine Ahnung, wo dies im Netzwerk vertreten sein wird! Wir können immer noch Strafen einführen, damit ein kleiner Teil des Systems nicht das gesamte Netzwerk dominiert. Abgesehen davon ist es jedoch schwierig, die Regularisierung auf sinnvolle Weise einzuführen.
Zusammenfassend ist es äußerst schwierig, frühere Informationen in ein System zu integrieren, das wir nicht verstehen.
quelle