Was ist der Unterschied zwischen einem neuronalen Netzwerk und einem tiefen neuronalen Netzwerk und warum funktionieren die tiefen besser?


114

Ich habe die Frage nicht genau in diesen Begriffen gesehen, und aus diesem Grund stelle ich eine neue Frage.

Was mich interessiert, ist nicht die Definition eines neuronalen Netzwerks, sondern das Verstehen des tatsächlichen Unterschieds zu einem tiefen neuronalen Netzwerk.

Für mehr Kontext: Ich weiß, was ein neuronales Netzwerk ist und wie Backpropagation funktioniert. Ich weiß, dass ein DNN mehrere versteckte Ebenen haben muss. Vor 10 Jahren in der Klasse lernte ich jedoch, dass das Vorhandensein mehrerer Schichten oder einer Schicht (ohne Berücksichtigung der Eingabe- und Ausgabe-Schichten) in Bezug auf die Funktionen, die ein neuronales Netzwerk darstellen kann, äquivalent ist (siehe Cybenko's Universal Approximation Theorem ), und dass dies der Fall ist Durch mehr Schichten wurde die Analyse komplexer, ohne dass Leistungseinbußen zu verzeichnen waren. Offensichtlich ist das nicht mehr der Fall.

Ich vermute, vielleicht zu Unrecht, dass die Unterschiede eher in Bezug auf Trainingsalgorithmus und -eigenschaften als in Bezug auf die Struktur bestehen, und daher würde ich es begrüßen, wenn die Antwort die Gründe unterstreichen könnte, die den Wechsel zu DNN ermöglichten (z. B. mathematische Beweise oder zufälliges Spielen mit Netzwerken) ?) und wünschenswert (zB Konvergenzgeschwindigkeit?)



Wenn die Funktion, die Sie approximieren möchten, eine Kompositionsfunktion ist (häufig in der Bildverarbeitung und in vielen natürlichen Bereichen aufgrund des physikalischen Gesetzes). Es kann bewiesen werden, dass tiefe Netzwerke diese Komposition ausnutzen und denselben Grad an Approximationsfehlern mit einer exponentiell geringeren Anzahl von Neuronen erzielen können (im Vergleich zu einem Netzwerk mit einer einzigen verborgenen Schicht). Literaturhinweis: Poggio, Tomaso et al. "Warum und wann können tiefe, aber nicht flache Netzwerke dem Fluch der Dimensionalität entgehen: ein Rückblick." Internationale Zeitschrift für Automatisierung und
Datenverarbeitung

Vielleicht möchten Sie einen Blick auf diesen Artikel
werfen

Antworten:


152

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 :

Tiefes vs nicht tiefes neuronales Netzwerk

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:

Mehr schichten ist gut

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:

  1. Vielleicht braucht ein flaches Netzwerk mehr Neuronen als das tiefe?
  2. 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)?
  3. 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)?
  4. 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):

tiefe Restnetzwerke

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.]


2
Schöne Antwort! 1) Wie auch von Nicolas erwähnt, stellt sich heraus, dass es einen Satz gibt ( en.wikipedia.org/wiki/Universal_approximation_theorem ), der besagt , dass ein Feed-Forward-neuronales Netzwerk mit einer einzelnen verborgenen Schicht und einer endlichen Anzahl von Neuronen approximieren kann jede kontinuierliche Funktion (einschließlich einer DNN) auf dem Einheitshyperwürfel. Dieses Ergebnis soll unabhängig von der Wahl der Aktivierungsfunktion sein. 2) Ich bin mir nicht sicher, ob Ihre letzte Bemerkung (dh, dass Hinton zu Google gestoßen ist) für den jüngsten Erfolg von DNNs relevant ist. Hinton ist Google beigetreten, lange nachdem DNNs epidemisch wurden!
Sobi

4
n-1n

2
Die Sache mit der Linearität scheint eine Kombination aus zwei Aspekten zu sein. Perzeptrone können nur lineare Entscheidungsgrenzen berechnen - sie können nur gerade Linien zeichnen, um zwei Klassen zu teilen. Multilayer-Netzwerke können kompliziertere Grenzen "ziehen". Aber weder Perceptrons noch Multilayer-Netzwerke verwenden lineare Aktivierungsfunktionen, mit Ausnahme der Ausgabeschicht eines Multilayer-Netzwerks. Die Perzeptron-Aktivierungsfunktion ist ein Heaviside (1, wenn x> 0, sonst 0); Multilayer-Netzwerke verwenden häufig Sigmoide. sind ziemlich mild: nicht konstant, begrenzt und monoton ansteigend.
Matt Krause

2
@amoeba tolle Antwort, das Bild am Anfang hat mich irgendwie davon abgehalten, den Rest zu lesen, aber es war zum Besten. Das Perzeptron ist das Gegenstück zur linearen Regression für die Klassifizierung, weshalb es aufgrund der logistischen (Sigmoid-Funktion) als logistische Regression bezeichnet wird, wenn Menschen die geschlossene Formlösung (Pseudoinverse) zur Lösung des Problems anstelle von Online-Methoden (SGD) verwenden. = Perceptron. Eine perzeptronische / logistische Regression kann nur lineare Entscheidungsgrenzen 'zeichnen', weshalb sie als linear bezeichnet wird.
Shuriken x blau

2
Das mehrschichtige Perzeptron (das Sie in Ihrem ersten Bild links gezeichnet haben) kann jedoch mehrere solcher linearen Entscheidungsgrenzen kombinieren und so den Raum aufteilen, um das (nichtlineare) XOR-Problem wie @Matt zu lösen. So können viele, viele kombinierte lineare Entscheidungsgrenzen einen Kreis bilden, wenn Sie beispielsweise Ihre Augen zusammenknicken. Es hängt davon ab, wie Sie darüber denken - die Entscheidung ist immer noch linear in einem höheren Bereich. Wenn Sie mit Kerneln vertraut sind, ist es ähnlich.
Shuriken x blau

8

Gute Antwort bisher, obwohl es ein paar Dinge gibt, die hier niemand erwähnt, hier sind meine 0,02 $

Ich antworte nur in Form einer Geschichte, die die Dinge unterhaltsamer und klarer machen soll. Kein tldr hier. Dabei sollten Sie in der Lage sein, den Unterschied zu verstehen.

Es gibt mehrere Gründe, warum DNNs ausgelöst haben, als sie es taten (Sterne mussten sich ausrichten, wie bei allen ähnlichen Dingen, es ist nur die Frage des richtigen Ortes, der richtigen Zeit usw.).

Ein Grund ist die Verfügbarkeit von Daten, viele Daten (beschriftete Daten). Wenn Sie in der Lage sein möchten, etwas wie "generische Prioritäten" oder "universelle Prioritäten" (die grundlegenden Bausteine, die zwischen Aufgaben / Anwendungen wiederverwendet werden können) zu verallgemeinern und zu lernen, benötigen Sie viele Daten. Und wilde Daten, möchte ich hinzufügen, nicht sterile Datensätze, die sorgfältig im Labor mit kontrollierter Beleuchtung und allem aufgezeichnet wurden. Mechanische Türken machten das (Etikettieren) möglich.

Zweitens hat die Möglichkeit, größere Netzwerke mithilfe von GPUs schneller zu trainieren, das Experimentieren beschleunigt. ReLU-Einheiten beschleunigten die Berechnungen und sorgten für deren Regularisierung, da Sie mehr Einheiten in einer Ebene verwenden mussten, um dieselben Informationen komprimieren zu können, da die Ebenen jetzt spärlicher waren, was auch für Dropout von Vorteil war. Außerdem haben sie bei einem wichtigen Problem geholfen, das beim Stapeln mehrerer Ebenen auftritt. Dazu später mehr. Verschiedene Tricks, die die Leistung verbessern. Zum Beispiel die Verwendung von Mini-Batches (was sich nachteilig auf den endgültigen Fehler auswirkt) oder Faltungen (die tatsächlich nicht so viele Varianzen erfassen wie lokale Empfangsfelder), die jedoch rechenschneller sind.

In der Zwischenzeit diskutierten die Leute darüber, ob sie sie dünner oder molliger, kleiner oder größer, mit oder ohne Sommersprossen usw. mögen. Die Optimierung war so, als ob sie sprudelte oder knallte, und die Forschung bewegte sich in Richtung komplexerer Trainingsmethoden wie dem konjugierten Gradienten und nach der Newton-Methode haben sie schließlich alle gemerkt, dass es kein kostenloses Mittagessen gibt. Netzwerke rülpsten.

Was die Dinge verlangsamte, war das Problem des verschwindenden Gefälles . Die Leute sagten: whoa, das ist weit weg, Mann! Auf den Punkt gebracht bedeutet dies, dass es schwierig war, den Fehler auf Ebenen zu korrigieren, die näher an den Eingaben liegen. Wenn Sie mehr Schichten auf den Kuchen legen, wird er zu wackelig. Sie konnten keinen aussagekräftigen Fehler zurück auf die ersten Ebenen übertragen. Je mehr Schichten, desto schlimmer wurde es. Schade.

Einige Leute fanden heraus, dass die Verwendung der Kreuzentropie als Verlustfunktion (nun, wieder Klassifizierung und Bilderkennung) eine Art Regularisierung bietet und gegen die Sättigung des Netzwerks hilft, und der Gradient konnte sich wiederum nicht so gut verstecken.

Möglich wurde dies auch durch das schichtweise Vortraining mit unbeaufsichtigten Methoden. Grundsätzlich nehmen Sie eine Reihe von Auto-Encodern und lernen immer weniger abstrakte Darstellungen, wenn Sie die Komprimierungsrate erhöhen. Die Gewichte aus diesen Netzwerken wurden verwendet, um die überwachte Version zu initialisieren. Dies löste das Problem des Fluchtgefälles auf eine andere Weise: Sie beginnen das betreute Training bereits von einer viel besseren Startposition aus. Also standen alle anderen Netzwerke auf und begannen sich zu empören. Die Netze brauchten aber trotzdem eine Überwachung, sonst war es unmöglich, die Big Data still zu halten.

Nun zum letzten Teil, der letztendlich zu Ihrer Antwort führt, die zu komplex ist, um es auf den Punkt zu bringen: Warum mehr Schichten und nicht nur eine. Weil wir können! und weil Kontext- und invariante Feature-Deskriptoren. und Pools.

Hier ist ein Beispiel: Sie haben einen Bilddatensatz. Wie trainieren Sie einen Plan NN mit diesen Daten? Naiv, nehmen wir mal jede Zeile und verketten sie zu einem langen Vektor und das ist Ihre Eingabe. Was lernst du? Nun, einige Fuzzy-Nonsense-Funktionen, die aufgrund der vielen verschiedenen Arten von Abweichungen, die die Objekte im Bild enthalten und die Sie nicht in der Lage sind, zwischen relevanten und irrelevanten Dingen zu unterscheiden, möglicherweise nicht wie irgendetwas aussehen. Und irgendwann muss das Netzwerk vergessen, neue Dinge neu lernen zu können. Also gibt es das Kapazitätsproblem. Dies ist mehr nichtlineare Dynamik, aber die Intuition ist, dass Sie die Anzahl der Neuronen erhöhen müssen, um mehr Informationen in Ihr Netzwerk aufnehmen zu können.

Der Punkt ist also, dass, wenn Sie das Bild nur als ein Teil eingeben, das Hinzufügen zusätzlicher Ebenen nicht zu viel für Sie bedeutet, da Sie nicht in der Lage sind, Abstraktionen zu lernen , was sehr wichtig ist. Ganzheitlich zu arbeiten funktioniert also nicht so gut, es sei denn, Sie tun einfachere Dinge mit dem Netzwerk, indem Sie sich auf einen bestimmten Objekttyp konzentrieren. Sie beschränken sich also auf eine Klasse und wählen einige globale Eigenschaften als Klassifizierungsziel aus.

Also, was gibt es zu tun? Sehen Sie sich den Rand Ihres Bildschirms an und versuchen Sie, diesen Text zu lesen. Problem? So dumm das auch klingt, Sie müssen sich ansehen, was Sie lesen. Ansonsten ist es zu unscharf / es gibt nicht genug Auflösung / Granularität. Nennen wir den Fokusbereich das Empfangsfeld. Netzwerke müssen sich auch konzentrieren können. Anstatt das gesamte Bild als Eingabe zu verwenden, verschieben Sie ein Schiebefenster entlang des Bildes und verwenden dieses als Eingabe für das Netzwerk (etwas weniger stochastisch als das, was Menschen tun). Jetzt haben Sie auch die Möglichkeit, Korrelationen zwischen Pixeln und damit Objekten zu erfassen. Außerdem können Sie zwischen schläfriger Katze, die auf einem Sofa sitzt, und auf dem Kopf stehendem Katzen-Bungee-Jumping unterscheiden. Ordentlich, der Glaube an die Menschheit wiederhergestellt. Das Netzwerk kann lokale Abstraktionen in einem Bild auf mehreren Ebenen lernen. Das Netzwerk lernt Filter,

Also, um es zusammenzufassen: rezeptive Felder / Faltungen, unbeaufsichtigte Initialisierung, gleichgerichtete lineare Einheiten, Ausfall oder andere Regularisierungsmethoden. Wenn Sie das sehr ernst meinen, empfehle ich Ihnen einen Blick auf Schmidhubers Deep Learning in neuronalen Netzen: Eine Übersicht finden Sie unter der URL für den Preprint http://arxiv.org/abs/1404.7828

Und denken Sie daran: Großes Lernen, tiefe Daten. Wort.


Hallo Florin, danke für die nette Antwort! Ich mag den Schreibstil. Wenn Sie von Schiebefenstern sprechen, beziehen Sie sich darauf, wie Faltungsschichten von Faltungs-NN verschiedene Teile eines Bildes beobachten und ihre Aktivierungen auf einen Raum niedrigerer Dimension projizieren?
Nicolas

ziemlich ja, Windungen sind nicht notwendig, aber sie sind rechnerisch schneller, da die Gewichte beschränkt sind. Sehen Sie sich dieses Dokument an, in dem keine Windungen und lokale Empfangsfelder verwendet werden. Die wichtigsten Schlüsselwörter sind lokal / hierarchisch: arxiv.org/pdf/1112.6209.pdf
shuriken x blue

Ich denke auch, dass die systematischste Antwort Sobi's ist. Er hat meine Gegenstimme. Ich habe hier und da noch ein paar Dinge hinzugefügt, mit ein bisschen Salz und Pfeffer.
Shuriken x blau

6

Der Hauptunterschied zu den klassischen Neuronalen Netzen besteht darin, dass sie wesentlich mehr versteckte Ebenen haben.

Die Idee ist, den Ebenen Beschriftungen hinzuzufügen, um mehrere Abstraktionsebenen zu erstellen:

Zum Beispiel ein tiefes neuronales Netzwerk zur Objekterkennung :

  • Ebene 1: Einzelne Pixel
  • Schicht 2: Kanten
  • Ebene 3: Formen (Kreise, Quadrate)
  • Ebene n: Ganzes Objekt

Eine gute Erklärung zu dieser Frage finden Sie in Quora .

Und wenn Sie sich für dieses Thema interessieren, würde ich Ihnen empfehlen, sich dieses Buch anzuschauen .


1
Danke David, aber ich verstehe nicht wirklich, wie man einfach Labels hinzufügt, um es anders zu machen. Ich erinnere mich auch, dass es ein schweres Problem war, zu verstehen und zu zerlegen, wie eine Funktion vom neuronalen Netzwerk codiert wurde. Es muss etwas anderes geben, als nur mehr Schichten zu haben. Was das Beispiel betrifft, das Sie gegeben haben, glaube ich, dass Sie einzelne (alte Schule) neuronale Netze trainieren können, um jede der Aufgaben zu erfüllen.
Nicolas

Die Leistung kommt, wenn Sie es wie eine Pipeline verwenden, sodass sich die Ein- und Ausgänge der Ebenen auf jeder Ebene stapeln.
David Gasquez

Ich habe Ihren ersten Link gelesen, der eine gute Ressource ist, und andere verwandte Fragen zu quora und se, aber das Beispiel, das Sie gegeben haben, scheint nicht genau zu sein, was ich gelesen habe. Ich werde versuchen, meine eigene Frage zu beantworten und diese Lesungen zusammenzufassen.
Nicolas

2
Obwohl die Ressource, auf die verwiesen wird, interessant ist, beantwortet die Antwort die Frage aktuell nicht.
Nicolas

Können Sie auf ein Beispiel verweisen, in dem die Ebenen beschriftet sind (außer auf rein beschreibende Weise)? Es ist sicher richtig, dass ausgeblendete Ebenen in jeder ausgeblendeten Ebene immer komplexeren Features angezeigt werden, aber das Hinzufügen von Beschriftungen scheint zu implizieren, dass sie speziell dafür geschult wurden.
Matt Krause

2

Ich war am Anfang auch ein bisschen verwirrt über den Unterschied zwischen neuronalen Netzen (NN) und tiefen neuronalen Netzen (DNN), aber die "Tiefe" bezieht sich leider nur auf die Anzahl der Parameter und Schichten. Sie können es als eine Art Umbenennung unter der sogenannten "kanadischen Mafia" ansehen.

Vor einigen Jahren hatte ich auch Neuronale Netze als Teil einer Klasse und wir haben mit NN Ziffernerkennung, Wellenapplikation und ähnliche Anwendungen durchgeführt, die mehrere versteckte Ebenen und Ausgänge hatten und all den Jazz, den DNN haben. Was wir damals jedoch nicht hatten, war Rechenleistung.

Der Grund, warum der Umstieg auf DNN möglich und wünschenswert war, sind die Fortschritte in der Hardwareentwicklung. Einfach ausgedrückt, jetzt können wir mehr, schneller und parallelisierter berechnen (DNN auf GPUs), während die Zeit zuvor der Engpass für NNs war.

Wie auf der Wikipedia-Seite für Deep Learning erwähnt , bezieht sich der "Deep" -Teil hauptsächlich auf die nichtlineare Interaktion von Features auf mehreren Ebenen, wodurch Feature-Extraktion und -Transformation durchgeführt werden. Dies wurde auch in Standard-NN durchgeführt, jedoch in kleinerem Maßstab.

Auf derselben Seite haben Sie die Definition 'Ein tiefes neuronales Netzwerk (DNN) ist ein künstliches neuronales Netzwerk (ANN) mit mehreren versteckten Einheitenschichten zwischen der Eingabe- und der Ausgabeschicht.'


Hallo Mttk, danke für deine Antwort, es wirft mehr Licht auf diese Frage. In Bezug auf Ihren letzten Punkt ist es zwar sehr einfach, strukturell den Unterschied zu erklären (1 gegenüber mehreren Schichten), aber der Unterschied in der Verwendung dieser mehreren Schichten scheint von Bedeutung zu sein und es ist viel weniger klar. Aus diesem Grund habe ich mich nicht auf die Struktur konzentriert.
Nicolas

Ehrlich gesagt bin ich nicht mit der letzten Definition einverstanden, auf die ich mich bezog - da ANN / NN mit einer verborgenen Schicht nicht wirklich effizient sind und Sie für jede komplexere Vorhersage ein Vielfaches benötigen (ich sage das, weil ich denke, DNN war ein nutzloses Schlagwort zu einem bereits guten Begriff hinzugefügt, NN). Ich denke, Sie können NN und DNN austauschen (da heutzutage niemand NNs mit einer verborgenen Schicht verwendet), während sich die Verwendung der Schichten zwischen den DNN-Typen (CNN, RBM, RNN, LSTM, CW-RNN, ...) unterscheidet. und nicht die Idee von DNN selbst.
Montag,

2

Soweit ich weiß, unterscheidet sich das, was heute Deep Neural Network (DNN) genannt wird, weder grundlegend noch philosophisch vom alten Standard-Neural Network (NN). Theoretisch kann man zwar eine beliebige NN mit einer flachen NN mit nur einer verborgenen Schicht approximieren , dies bedeutet jedoch nicht, dass die beiden Netzwerke bei Training mit dem gleichen Algorithmus und den gleichen Trainingsdaten eine ähnliche Leistung erbringen. Tatsächlich besteht ein wachsendes Interesse daran, flache Netzwerke zu trainieren, die ähnlich wie tiefe Netzwerke funktionieren. Dies geschieht jedoch, indem zuerst ein tiefes Netzwerk trainiert wird und dann das flache Netzwerk zum Imitieren trainiert wirddie endgültige Ausgabe (dh die Ausgabe der vorletzten Schicht) des tiefen Netzwerks. Sehen Sie, was tiefe Architekturen günstig macht, ist, dass die heutigen Trainingstechniken (Back Propagation) besser funktionieren, wenn die Neuronen in einer hierarchischen Struktur angeordnet sind.

Eine andere Frage, die gestellt werden könnte, lautet: Warum wurden neuronale Netze (insbesondere DNNs) plötzlich so populär? Nach meinem Verständnis sind die magischen Inhaltsstoffe, die DNNs in letzter Zeit so beliebt gemacht haben, die folgenden:

A. Verbesserte Funktionen für Datensätze und Datenverarbeitung

1. Umfangreiche Datensätze mit Millionen verschiedener Bilder wurden verfügbar

2. Die schnelle GPU-Implementierung wurde der Öffentlichkeit zugänglich gemacht

B. Verbesserte Trainingsalgorithmen und Netzwerkarchitekturen

1. Gleichgerichtete Lineareinheiten (ReLU) anstelle von Sigmoid oder Tanh

2. Tiefe Netzwerkarchitekturen haben sich im Laufe der Jahre entwickelt


A-1) Bis vor kurzem konnten wir zumindest in Computer Vision keine Modelle auf Millionen von etikettierten Bildern trainieren. einfach, weil beschriftete Datensätze dieser Größe nicht vorhanden waren. Es stellt sich heraus, dass neben der Anzahl der Bilder auch die Granularität des Etikettensatzes ein sehr entscheidender Faktor für den Erfolg von DNNs ist (siehe Abbildung 8 in diesem Artikel von Azizpour et al.).

A-2) Es wurden große technische Anstrengungen unternommen, um DNNs zu trainieren, die in der Praxis gut funktionieren, insbesondere die Einführung von GPU-Implementierungen. Eine der ersten erfolgreichen GPU-Implementierungen von DNNs wird auf zwei parallelen GPUs ausgeführt. Dennoch dauert es ungefähr eine Woche, um einen DNN mit 1,2 Millionen Bildern von 1000 Kategorien unter Verwendung von High-End-GPUs zu trainieren (siehe dieses Papier von Krizhevsky et al.).

B-1) Die Verwendung von einfachen gleichgerichteten Lineareinheiten (Rectified Linear Units, ReLU) anstelle von Sigmoid- und Tanh-Funktionen ist wahrscheinlich der größte Baustein, um das Training von DNNs zu ermöglichen. Beachten Sie, dass sowohl Sigmoid- als auch Tanh-Funktionen fast überall einen Gradienten von nahezu Null aufweisen , je nachdem, wie schnell sie von der niedrigen Aktivierungsstufe zur hohen übergehen. Im Extremfall, wenn der Übergang plötzlich erfolgt, erhalten wir eine Sprungfunktion, die überall, außer an einem Punkt, an dem der Übergang stattfindet , eine Steigung von Null aufweist .

B-2) Die Geschichte, wie sich neuronale Netzwerkarchitekturen im Laufe der Jahre entwickelt haben, erinnert mich daran, wie die Evolution die Struktur eines Organismus in der Natur verändert. Das Teilen von Parametern (z. B. in Faltungsschichten), die Regelmäßigkeit von Aussetzern, die Initialisierung, der Zeitplan für die Lernrate, das räumliche Pooling, die Unterabtastung in den tieferen Schichten und viele andere Tricks, die heute als Standard in der Ausbildung von DNNs gelten, wurden über das Internet entwickelt, weiterentwickelt und angepasst Jahre, um das Training der tiefen Netzwerke so zu ermöglichen, wie es heute ist.


3
+1. Die erste Antwort in diesem Thread, die eine angemessene Antwort auf die Fragen des OP bietet. Viele gute Punkte hier. Mein einziger wichtiger Kommentar wäre, dass es neben A und B auch C: Massive Vergrößerung der verfügbaren Trainingsdatensätze gibt. Dies scheint mindestens genauso wichtig zu sein wie A und B.
Amöbe

1
Ich denke nicht, dass relu so wichtig ist: Alex krizhevsky Papier behauptete, es habe das Lernen bis zu 6-mal schneller gemacht. Die meisten der anderen Netzwerkstrukturänderungen, die Sie erwähnen, beziehen sich auf Faltungs-nns, die nur Standard-Bildverarbeitungs-Pipelines kopieren (eine gute Sache, aber keine neuen Erkenntnisse)
seanv507

1
@amoeba: Größe des Datensatzes ist unter A. Ich habe den Text aktualisiert, um ihn hervorzuheben.
Sobi

@ seanv507: In der Tat hatte ich Faltungsnetzwerke (ConvNets) im Sinn, als ich die Antwort schrieb. Wenn es andere wichtige Faktoren gibt (die nichts mit ConvNets zu tun haben), die ich verpasst habe, würde ich es begrüßen, wenn Sie sie erwähnen. Gerne aktualisiere ich meine Antwort entsprechend. In Bezug auf ReLUs ist das Trainieren von nns mit tanh und sigmoid erheblich schwieriger als bei ReLUs, da es zu verschwindenden Verläufen kommt: Einheiten werden leicht gesättigt, und wenn dies passiert, dauert es lange, bis sie wieder ungesättigt sind (Verläufe sind sehr gering, wenn die Einheit ist) ist gesättigt)
Sobi

2

Der Unterschied zwischen einem "Deep" -NN und einem Standard-NN ist rein qualitativ: Es gibt keine Definition dessen, was dieses "Deep" bedeutet. "Deep" kann alles von den extrem ausgefeilten Architekturen, die von Google, Facebook und Co. verwendet werden und 50-80 oder noch mehr Schichten haben, bis zu 2 versteckten Schichten (insgesamt 4 Schichten) Architekturen bedeuten. Es würde mich nicht wundern, wenn Sie Artikel finden könnten, die behaupten, Deep Learning mit einer einzigen versteckten Ebene durchzuführen, denn "deep" bedeutet nicht viel.

"Neuronales Netzwerk" ist auch ein Wort, das keine sehr genaue Bedeutung hat. Es deckt eine extrem große Anzahl von Modellen ab, von zufälligen Boltzman-Maschinen (ungerichtete Graphen) bis hin zu Feedforward-Architekturen mit verschiedenen Aktivierungsfunktionen. Die meisten NNs werden mit Backprop trainiert, dies muss jedoch nicht der Fall sein, sodass selbst die Trainingsalgorithmen nicht sehr homogen sind.

Insgesamt sind Deep Learning, Deep NNs und NNs zu Schlagworten geworden, die eine Vielzahl von Ansätzen erfassen.

Für eine gute Einführung in "Was hat sich geändert ? ": Deep Learning of Representations: Looking Forward , Bengio, 2013 ist ein guter Rückblick + eine Perspektive für die Zukunft. Siehe auch Müssen tiefe Netze wirklich tief sein? Ba & Caruana, 2013, die verdeutlichen, dass es für die Repräsentation möglicherweise nicht hilfreich ist, tief zu sein , sondern um zu lernen.


Die Referenzen, die Sie geben, sind sehr hilfreich, aber der Rest der Antwort in der aktuellen Form (die lautet "NN bedeutet nichts, DNN bedeutet nichts, NN und DNN können eine Menge Dinge tun") würde nicht viel bedeuten Denken Sie darüber nach, es zu überarbeiten?
Nicolas

1

Um die Antwort von David Gasquez zu erweitern, besteht einer der Hauptunterschiede zwischen tiefen neuronalen Netzen und traditionellen neuronalen Netzen darin, dass wir nicht nur die Backpropagation für tiefe neuronale Netze verwenden.

Warum? Da die Backpropagation spätere Ebenen effizienter trainiert als frühere Ebenen - je früher Sie im Netzwerk vorgehen, desto kleiner und diffuser werden die Fehler. Ein zehnschichtiges Netzwerk besteht also im Grunde aus sieben Schichten mit zufälligen Gewichten, gefolgt von drei Schichten mit angepassten Gewichten, und funktioniert genauso gut wie ein dreischichtiges Netzwerk. Sehen Sie hier für mehr.

Der konzeptionelle Durchbruch besteht also darin, die einzelnen Probleme (die beschrifteten Schichten) als separate Probleme zu behandeln - wenn wir zuerst versuchen, das Problem des Aufbaus einer allgemein guten ersten Schicht zu lösen, und dann versuchen, das Problem des Aufbaus einer allgemein guten zweiten Schicht zu lösen, Irgendwann werden wir einen tiefen Funktionsbereich haben, in den wir unser eigentliches Problem einfließen lassen können.


1

NN:

  • Eine ausgeblendete Ebene reicht aus, kann jedoch mehrere Ebenen enthalten, und zwar von links nach rechts (Modell: Feed Forward NN)
  • nur unter Aufsicht trainiert (Backpropagation)
  • Wenn mehrere Ebenen verwendet werden, trainieren Sie alle Ebenen gleichzeitig (gleicher Algorithmus: Backpropagation). Wenn mehr Ebenen verwendet werden, ist die Verwendung schwierig, da die Fehler zu klein werden
  • schwer zu verstehen, was auf jeder Ebene gelernt wird

DNN:

  • Es sind mehrere Schichten erforderlich, ungerichtete Kanten (Modell: eingeschränkte Boltzman-Maschine)
  • zunächst unbeaufsichtigt trainiert, wobei das Netzwerk relevante Merkmale lernt, indem es lernt, seine Eingabe zu reproduzieren, und dann in beaufsichtigter Weise trainiert, um die Merkmale zu optimieren, um sie zu klassifizieren
  • trainiere die Schichten nacheinander von Eingabe zu Ausgabe (Algorithmus: Kontrastdivergenz)
  • Jede Schicht enthält eindeutig Merkmale zunehmender Abstraktion

Der Wechsel zu DNN ist auf drei voneinander unabhängige Durchbrüche im Jahr 2006 zurückzuführen.

In Bezug auf Theoreme zu NN spielt die Frage auf Folgendes an:

  • Universeller Näherungssatz oder Cybenko-Satz: Ein vorwärtskoppelndes neuronales Netz mit einer einzigen verborgenen Schicht kann jede kontinuierliche Funktion approximieren. In der Praxis können jedoch viel mehr Neuronen erforderlich sein, wenn eine einzelne verborgene Schicht verwendet wird.

2
-1? "Ja wirklich?" Ich habe das alles in der Literatur gelesen und beide Ansätze Punkt für Punkt verglichen! Bitte geben Sie zumindest an, was nicht korrekt ist ...
Nicolas

3
Ich habe nicht downvotiert (vielleicht hat es einem Downvoter nicht gefallen, dass Sie Ihre eigene Frage beantwortet haben? Aber das ist hier natürlich vollkommen in Ordnung), aber hier ist eine Sache, die nicht ganz richtig ist. Was Sie als Eigenschaften von DNN aufführen: dass Kanten ungerichtet sind, dass sie zunächst unbeaufsichtigt trainiert werden, dass die Schichten einzeln trainiert werden - all dies bezieht sich nur auf von Hinton im Jahr 2006 vorgeschlagene Deep-Believe-Netzwerke . Dies ist nicht der Fall Dies gilt zwangsläufig für tiefe neuronale Netze im Allgemeinen, und tatsächlich gibt es jetzt viele Möglichkeiten, ein tiefes Netz ohne all dies zu trainieren. Siehe meine Antwort.
Amöbe

1

O(n) statistischen Schätzer für eignen sich gut für hochdimensionale große Datensätze (z. B. Imagenet).

Ich denke, Sie sollten einen Schritt zurücktreten und feststellen, dass dies zu einer Wiederbelebung der flachen KI geführt hat - z. B. waren Wortsäcke für die Stimmungsanalyse und andere Sprachanwendungen und visuelle Wortsäcke führend bei der Bilderkennung vor DNN. Niemand sagt, Wortsack ist ein echtes Sprachmodell, aber es ist eine effektive technische Lösung. Daher würde ich sagen, dass DNN eine bessere visuelle Wortsammlung ist - siehe z. B. Szegedy et al. 2013 Faszinierende Eigenschaften neuronaler Netze und Nguyen et al. Tiefe neuronale Netze lassen sich leicht täuschen: Hochzuverlässige Vorhersagen für nicht erkennbare Bilder, bei denen klar ist, dass keine Strukturen höherer Ordnung usw. gelernt werden (oder was auch immer für DNN behauptet wird).


@amoeba dieses andere Papier ist fast ein Begleiter Papier zum ersten (wieder mit vielen Bildern!)
Seanv507

0

Deep Learning ist eine Reihe von Algorithmen für maschinelles Lernen, die versuchen, Abstraktionen auf hoher Ebene in Daten mithilfe von Architekturen zu modellieren, die aus mehreren nichtlinearen Transformationen bestehen .

Quelle: Arno Candel

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.