Beginnen wir mit einer Zivilisation: Deep Neural Network ist einfach ein Feedforward-Netzwerk mit vielen versteckten Schichten.
Dies ist mehr oder weniger alles, was es über die Definition zu sagen gibt. Neuronale Netze können wiederkehrend oder vorwärts gerichtet sein. Feedforwards haben keine Schleifen in ihrem Diagramm und können in Ebenen organisiert werden. Wenn es "viele" Schichten gibt, dann sagen wir, dass das Netzwerk tief ist .
Wie viele Schichten muss ein Netzwerk haben, um sich als tief zu qualifizieren? Es gibt keine eindeutige Antwort darauf (es ist ein bisschen so, als würde man fragen, wie viele Körner einen Haufen ergeben ), aber normalerweise zählen zwei oder mehr versteckte Schichten als tief. Im Gegensatz dazu wird ein Netzwerk mit nur einer einzigen verborgenen Schicht herkömmlicherweise als "flach" bezeichnet. Ich vermute, dass es hier zu einer gewissen Inflation kommen wird, und in zehn Jahren könnte man denken, dass alles, was weniger als zehn Schichten hat, flach und nur für Kindergartenübungen geeignet ist. Informell bedeutet "tief", dass das Netzwerk schwer zu handhaben ist.
Hier ist eine Illustration, angepasst von hier :
Aber die eigentliche Frage, die Sie sich stellen, ist natürlich, warum es von Vorteil ist, viele Schichten zu haben.
Ich denke, dass die etwas erstaunliche Antwort ist, dass niemand wirklich weiß. Es gibt einige häufige Erklärungen, die ich im Folgenden kurz erläutern werde, von denen jedoch keine überzeugend als wahr erwiesen wurde, und man kann nicht einmal sicher sein, dass es wirklich vorteilhaft ist , viele Schichten zu haben .
Ich sage, das ist erstaunlich, weil Deep Learning sehr beliebt ist, alljährlich alle Rekorde (von der Bilderkennung über das Abspielen von Go bis zur automatischen Übersetzung usw.) durchbricht, von der Branche verwendet wird usw. usw. Und Wir sind uns immer noch nicht ganz sicher, warum es so gut funktioniert.
Ich stütze meine Diskussion auf das Deep Learning- Buch von Goodfellow, Bengio und Courville, das 2017 herauskam und allgemein als das Buch über Deep Learning gilt. (Es ist online frei verfügbar.) Der relevante Abschnitt ist 6.4.1 Eigenschaften und Tiefe der universellen Approximation .
Das hast du geschrieben
Vor 10 Jahren in der Klasse habe ich gelernt, dass mehrere Schichten oder eine Schicht (ohne die Eingabe- und Ausgabe-Schichten) in Bezug auf die Funktionen äquivalent sind, die ein neuronales Netzwerk darstellen kann [...]
Sie müssen sich auf den sogenannten universellen Näherungssatz beziehen, der 1989 von Cybenko bewiesen und in den 1990er Jahren von verschiedenen Personen verallgemeinert wurde. Grundsätzlich heißt es, dass ein flaches neuronales Netzwerk (mit 1 versteckten Schicht) jede Funktion approximieren kann , dh im Prinzip alles lernen kann . Dies gilt für verschiedene nichtlineare Aktivierungsfunktionen, einschließlich gleichgerichteter Lineareinheiten, die die meisten neuronalen Netze heutzutage verwenden (das Lehrbuch bezieht sich für dieses Ergebnis auf Leshno et al. 1993 ).
Wenn ja, warum benutzt dann jeder tiefe Netze?
Naiv gesagt, weil sie besser funktionieren. Hier ist eine Abbildung aus dem Deep Learning- Buch, die zeigt, dass es hilfreich ist, mehrere Ebenen in einer bestimmten Aufgabe zu haben, aber dasselbe Phänomen wird häufig in verschiedenen Aufgaben und Bereichen beobachtet:
Wir wissen , dass ein flaches Netz könnte so gut wie die tiefer diejenigen durchführen. Aber das tut es nicht. und das tun sie normalerweise nicht. Die Frage ist --- warum? Mögliche Antworten:
- Vielleicht braucht ein flaches Netzwerk mehr Neuronen als das tiefe?
- Vielleicht ist es mit unseren aktuellen Algorithmen schwieriger, ein flaches Netzwerk zu trainieren (z. B. hat es schlimmere lokale Minima oder die Konvergenzrate ist langsamer oder was auch immer)?
- Vielleicht passt eine flache Architektur nicht zu den Problemen, die wir normalerweise lösen möchten (z. B. ist die Objekterkennung ein grundlegender "tiefer" hierarchischer Prozess)?
- Etwas anderes?
Das Deep Learning- Buch spricht sich für die Punkte 1 und 3 aus. Zunächst wird argumentiert, dass die Anzahl der Einheiten in einem flachen Netzwerk mit der Komplexität der Aufgaben exponentiell zunimmt. Um nützlich zu sein, muss ein flaches Netzwerk möglicherweise sehr groß sein. möglicherweise viel größer als ein tiefes Netzwerk. Dies basiert auf einer Reihe von Arbeiten, die belegen, dass flache Netzwerke in einigen Fällen exponentiell viele Neuronen benötigen; Aber ob es sich bei MNIST-Klassifikation oder Go-Spielen um solche Fälle handelt, ist nicht wirklich klar. Zweitens sagt das Buch Folgendes:
Die Auswahl eines tiefen Modells basiert auf der allgemeinen Überzeugung, dass die Funktion, die wir lernen möchten, die Zusammensetzung mehrerer einfacherer Funktionen beinhalten sollte. Dies kann unter dem Gesichtspunkt des Repräsentationslernens so interpretiert werden, dass wir glauben, dass das Lernproblem darin besteht, eine Reihe zugrunde liegender Variationsfaktoren zu entdecken, die wiederum durch andere, einfachere zugrunde liegende Variationsfaktoren beschrieben werden können.
Ich denke, der derzeitige "Konsens" ist, dass es sich um eine Kombination der Punkte 1 und 3 handelt: Für reale Aufgaben ist Tiefenarchitektur oft von Vorteil, und flache Architektur wäre ineffizient und erfordert viel mehr Neuronen für die gleiche Leistung.
Aber es ist alles andere als bewiesen. Betrachten Sie z. B. Zagoruyko und Komodakis, 2016, Wide Residual Networks . Verbleibende Netzwerke mit mehr als 150 Schichten erschienen im Jahr 2015 und gewannen verschiedene Bilderkennungswettbewerbe. Dies war ein großer Erfolg und schien ein überzeugendes Argument für die Tiefe zu sein. Hier ist eine Abbildung aus einer Präsentation des ersten Autors auf dem verbleibenden Netzwerkpapier (beachten Sie, dass die Zeit hier verwirrend nach links geht):
Das oben verlinkte Papier zeigt jedoch, dass ein "breites" verbleibendes Netzwerk mit "nur" 16 Schichten "tiefe" Netzwerke mit mehr als 150 Schichten übertreffen kann. Wenn dies zutrifft, bricht der gesamte Punkt der obigen Abbildung zusammen.
Oder denken Sie an Ba und Caruana, 2014: Müssen tiefe Netze wirklich tief sein? :
In diesem Artikel liefern wir empirische Beweise dafür, dass flache Netze die gleiche Funktion wie tiefe Netze erlernen können, und in einigen Fällen mit der gleichen Anzahl von Parametern wie die tiefen Netze. Dazu trainieren wir zunächst ein hochmodernes Tiefenmodell und anschließend ein flaches Modell, um das Tiefenmodell nachzuahmen. Das Mimic-Modell wird mit dem im nächsten Abschnitt beschriebenen Modellkomprimierungsschema trainiert. Bemerkenswerterweise können wir mit der Modellkomprimierung flache Netze so genau trainieren wie einige tiefe Modelle, obwohl wir diese flachen Netze nicht so genau trainieren können wie die tiefen Netze, wenn die flachen Netze direkt auf dem Original trainiert werden beschriftete Trainingsdaten. Wenn ein flaches Netz mit der gleichen Anzahl von Parametern wie ein tiefes Netz lernen kann, ein tiefes Netz mit hoher Wiedergabetreue nachzuahmen,
Wenn dies zutrifft, würde dies bedeuten, dass die richtige Erklärung eher meine Nummer 2 und nicht Nummer 1 oder Nummer 3 ist.
Wie gesagt - niemand weiß es wirklich genau.
Abschließende Bemerkungen
Die Menge des Fortschritts in der tiefen Lernen in den letzten ~ 10 Jahren erreicht ist wirklich erstaunlich, aber die meisten dieser Fortschritt wurde durch Versuch und Irrtum erreicht, und es fehlt uns immer noch sehr grundlegendes Verständnis darüber , was genau macht tiefe Netze so gut zu funktionieren. Sogar die Liste der Dinge, die die Menschen für den Aufbau eines effektiven, tiefen Netzwerks für entscheidend halten, scheint sich alle paar Jahre zu ändern.
Die Renaissance des tiefen Lernens begann im Jahr 2006, als Geoffrey Hinton (der seit über 20 Jahren ohne großes Interesse an neuronalen Netzwerken arbeitet) einige bahnbrechende Veröffentlichungen veröffentlichte, die eine effektive Möglichkeit zum Trainieren tiefer Netzwerke bieten ( Science Paper , Neural Computation Paper ). . Der Trick bestand darin, unbeaufsichtigtes Vortraining zu verwenden, bevor mit dem Gefälle begonnen wurde. Diese Papiere revolutionierten das Feld und für ein paar Jahre hielten die Leute unbeaufsichtigtes Vortraining für den Schlüssel.
2010 zeigte Martens dann, dass tiefe neuronale Netze mit Methoden zweiter Ordnung (so genannten hessischen Methoden) trainiert werden können und Netze übertreffen können, die mit Vortraining trainiert wurden: Tiefes Lernen durch hessische Optimierung . Im Jahr 2013 haben Sutskever et al. zeigten, dass der stochastische Gradientenabstieg mit einigen sehr cleveren Tricks hessische Methoden übertreffen kann: Über die Bedeutung von Initialisierung und Dynamik beim Deep Learning . Ungefähr 2010 wurde den Leuten klar, dass die Verwendung von gleichgerichteten Lineareinheiten anstelle von Sigma-Einheiten einen großen Unterschied für den Gradientenabstieg darstellt. Dropout erschien im Jahr 2014. Restliche Netzwerke erschienen im Jahr 2015. Die Leute entwickeln immer effektivere Methoden, um tiefe Netzwerke zu trainieren undWas vor 10 Jahren noch als Schlüsselerkenntnis galt, wird heute oft als störend empfunden. All dies ist größtenteils auf Versuch und Irrtum zurückzuführen, und es gibt wenig Verständnis dafür, warum manche Dinge so gut funktionieren und andere nicht. Das Trainieren tiefer Netzwerke ist wie eine große Trickkiste. Erfolgreiche Tricks werden normalerweise post factum rationalisiert.
Wir wissen nicht einmal, warum tiefe Netzwerke ein Leistungsplateau erreichen. Früher gaben nur 10 Jahre Menschen den lokalen Minima die Schuld, aber derzeit wird davon ausgegangen, dass dies nicht der Punkt ist (wenn die Leistungsplateaus erreicht sind, bleiben die Farbverläufe tendenziell hoch). Dies ist eine so grundlegende Frage über tiefe Netzwerke, und wir wissen nicht einmal, dies .
Update: Dies ist mehr oder weniger das Thema von Ali Rahimis NIPS 2017 Vortrag über maschinelles Lernen als Alchemie: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Diese Antwort wurde im April 2017 komplett neu geschrieben, sodass einige der folgenden Kommentare nicht mehr zutreffen.]