Wie viele Daten für Deep Learning?

9

Ich lerne über Deep Learning (insbesondere CNNs) und wie es normalerweise sehr viele Daten erfordert, um eine Überanpassung zu verhindern. Mir wurde jedoch auch gesagt, dass je höher die Kapazität / mehr Parameter eines Modells sind, desto mehr Daten erforderlich sind, um eine Überanpassung zu verhindern. Daher lautet meine Frage: Warum können Sie nicht einfach die Anzahl der Schichten / Knoten pro Schicht in einem tiefen neuronalen Netzwerk reduzieren und es mit einer geringeren Datenmenge arbeiten lassen? Gibt es eine grundlegende "Mindestanzahl von Parametern", die ein neuronales Netzwerk benötigt, bis es "einschaltet"? Unterhalb einer bestimmten Anzahl von Schichten scheinen neuronale Netze nicht so gut zu funktionieren wie handcodierte Merkmale.

Karnivaurus
quelle

Antworten:

10

Dies ist eine großartige Frage, und es wurden tatsächlich einige Untersuchungen zu den von Ihnen erwähnten Kapazitäts- / Tiefenproblemen durchgeführt.

Es gibt viele Hinweise darauf, dass die Tiefe in Faltungs-Neuronalen Netzen dazu geführt hat, dass reichhaltigere und vielfältigere Merkmalshierarchien erlernt wurden. Empirisch sehen wir, dass die Netze mit der besten Leistung tendenziell "tief" sind: Das Oxford VGG-Net hatte 19 Schichten, die Google Inception-Architektur ist tief, das Microsoft Deep Residual Network hat 152 Schichten und diese alle erhalten einen sehr beeindruckenden ImageNet-Benchmark Ergebnisse.

An der Oberfläche ist es eine Tatsache, dass Modelle mit höherer Kapazität dazu neigen, sich anzupassen, es sei denn, Sie verwenden eine Art Regularizer. Eine Möglichkeit, wie sehr tiefe Netzwerküberanpassungen die Leistung beeinträchtigen können, besteht darin, dass sie sich in einer kleinen Anzahl von Trainingsepochen schnell einem sehr geringen Trainingsfehler nähern, dh wir können das Netzwerk nicht für eine große Anzahl von Durchläufen durch den Datensatz trainieren. Eine Technik wie Dropout, eine stochastische Regularisierungstechnik, ermöglicht es uns, sehr tiefe Netze für längere Zeiträume zu trainieren. Auf diese Weise können wir bessere Funktionen erlernen und unsere Klassifizierungsgenauigkeit verbessern, da wir mehr Durchgänge durch die Trainingsdaten erhalten.

In Bezug auf Ihre erste Frage:

Warum können Sie nicht einfach die Anzahl der Schichten / Knoten pro Schicht in einem tiefen neuronalen Netzwerk reduzieren und dafür sorgen, dass es mit einer geringeren Datenmenge funktioniert?

Wie wirkt sich das auf die Generalisierungsleistung aus, wenn wir die Größe des Trainingssatzes reduzieren? Wenn wir eine kleinere Trainingssatzgröße verwenden, kann dies dazu führen, dass eine kleinere verteilte Feature-Darstellung gelernt wird, was unsere Generalisierungsfähigkeit beeinträchtigen kann. Letztendlich wollen wir gut verallgemeinern können. Mit einem größeren Trainingssatz können wir eine vielfältigere Hierarchie verteilter Funktionen erlernen.

In Bezug auf Ihre zweite Frage:

Gibt es eine grundlegende "Mindestanzahl von Parametern", die ein neuronales Netzwerk benötigt, bis es "einschaltet"? Unterhalb einer bestimmten Anzahl von Schichten scheinen neuronale Netze nicht so gut zu funktionieren wie handcodierte Merkmale.

Fügen wir nun der obigen Diskussion über das Tiefenproblem eine Nuance hinzu. Angesichts des aktuellen Standes der Technik scheint es, dass eine Art tiefe Architektur verwendet wird, um ein Hochleistungs-Conv-Netz von Grund auf zu trainieren.

Es gab jedoch eine Reihe von Ergebnissen, die sich auf die Modellkomprimierung konzentrieren . Dies ist also keine direkte Antwort auf Ihre Frage, aber sie hängt damit zusammen. Die Modellkomprimierung interessiert sich für die folgende Frage: Können wir bei einem Hochleistungsmodell (in unserem Fall einem tiefen Konv-Netz) das Modell komprimieren, seine Tiefe oder sogar die Anzahl der Parameter verringern und die gleiche Leistung beibehalten?

Wir können das hochleistungsfähige Conv net mit hoher Kapazität als Lehrer betrachten . Können wir den Lehrer verwenden, um ein kompakteres Schülermodell zu trainieren ?

Überraschenderweise lautet die Antwort: Ja . Es gab eine Reihe von Ergebnissen. Ein guter Artikel für die Conv-Net-Perspektive ist ein Artikel von Rich Caruana und Jimmy Ba. Müssen tiefe Netze wirklich tief sein? . Sie sind in der Lage, ein flaches Modell so zu trainieren, dass es das tiefere Modell nachahmt, ohne dass die Leistung beeinträchtigt wird. Es wurde auch noch mehr an diesem Thema gearbeitet, zum Beispiel:

unter anderem Werke. Ich bin sicher, ich vermisse einige andere gute Artikel.

Für mich stellen diese Ergebnisse die Frage, wie viel Kapazität diese flachen Modelle wirklich haben. In dem Artikel von Caruana, Ba, geben sie die folgende Möglichkeit an:

"Die Ergebnisse legen nahe, dass die Stärke des Deep Learning teilweise auf einer guten Übereinstimmung zwischen Deep Architectures und aktuellen Trainingsverfahren beruht und dass es möglich sein könnte, bessere Lernalgorithmen zu entwickeln, um genauere flache Feed-Forward-Netze zu trainieren Anzahl der Parameter, Tiefe kann das Lernen erleichtern, ist aber möglicherweise nicht immer wichtig. "

Es ist wichtig, klar zu sein: In dem Artikel von Caruana, Ba, trainieren sie kein flaches Modell von Grund auf neu, dh trainieren nur von den Klassenetiketten, um eine Leistung auf dem neuesten Stand der Technik zu erhalten. Sie trainieren vielmehr ein Hochleistungs-Tiefenmodell und extrahieren aus diesem Modell Protokollwahrscheinlichkeiten für jeden Datenpunkt. Wir trainieren dann ein flaches Modell, um diese Log-Wahrscheinlichkeiten vorherzusagen. Wir trainieren also nicht das flache Modell auf den Klassenbeschriftungen, sondern verwenden diese Protokollwahrscheinlichkeiten.

Trotzdem ist es immer noch ein interessantes Ergebnis. Dies liefert zwar keine direkte Antwort auf Ihre Frage, aber hier gibt es einige interessante Ideen, die sehr relevant sind.

Grundsätzlich gilt: Es ist immer wichtig, sich daran zu erinnern, dass es einen Unterschied zwischen der theoretischen "Kapazität" eines Modells und der Suche nach einer guten Konfiguration Ihres Modells gibt. Letzteres hängt von Ihren Optimierungsmethoden ab.

Indie AI
quelle