Was ist der Unterschied zwischen einem neuronalen Netzwerk und einem tiefen neuronalen Netzwerk und warum funktionieren die tiefen besser?
On Dezember 22, 2020 by adminIch habe die Frage nicht genau in diesen Begriffen gesehen, und deshalb stelle ich eine neue Frage.
Was mich interessiert, ist nicht die Definition eines neuronalen Netzwerks, sondern das Verständnis 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 Schichten haben muss. Vor 10 Jahren habe ich jedoch im Unterricht gelernt, dass mehrere Schichten oder eine Schicht vorhanden sind (nicht) Das Zählen der Eingabe- und Ausgabeschichten) war äquivalent in Bezug auf die Funktionen, die ein neuronales Netzwerk darstellen kann (siehe Cybenkos Universal Approximation Theorem ), und das mit Mehr Schichten machten die Analyse ohne Leistungsgewinn komplexer. Offensichtlich ist das nicht mehr der Fall.
Ich nehme an, vielleicht zu Unrecht, dass die Unterschiede eher in Bezug auf Trainingsalgorithmus und Eigenschaften als in Bezug auf die Struktur liegen und daher Ich würde mich sehr freuen, wenn die Antwort die Gründe unterstreichen könnte, die den Wechsel zu DNN möglich gemacht haben (z. B. mathematischer Beweis oder zufälliges Spielen mit Netzwerken?) und wünschenswert (z. B. Konvergenzgeschwindigkeit?)
Kommentare
- FYI: Wie wahr ist diese Folie für tiefes Lernen?
- Wenn die Funktion, die Sie approximieren möchten, eine Kompositionsfunktion ist (häufig in der Bildverarbeitung und vielen anderen) natürliche Bereiche aufgrund des Gesetzes der Physik). Es kann bewiesen werden, dass tiefe Netzwerke diese Zusammensetzung ausnutzen und mit exponentiell weniger Neuronen das gleiche Maß an Approximationsfehler erzielen können (im Vergleich zu einem Netzwerk mit einer verborgenen Schicht). Ref: Poggio, Tomaso et al. “ Warum und wann können tiefe, aber nicht flache Netzwerke den Fluch der Dimensionalität vermeiden: eine Überprüfung. “ Internationales Journal für Automatisierung und Datenverarbeitung (2017)
- Vielleicht möchten Sie diesen Artikel ansehen
- Siehe 6.4 von arxiv.org/pdf/2004.06093.pdf
Antwort
Beginnen wir mit einer Zivilisation: Ein tiefes neuronales Netzwerk ist einfach ein Feedforward-Netzwerk mit vielen verborgenen Schichten.
Dies ist mehr oder weniger alles, was über die Definition zu sagen ist. Neuronale Netze können wiederkehrend oder vorwärtsgerichtet sein; vorwärtsgerichtete Netze haben keine Schleifen in ihrem Diagramm und können in Schichten 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 „sa ein bisschen wie zu fragen, wie viele Körner einen Haufen bilden ), 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önnten die Leute denken, dass alles mit weniger als beispielsweise zehn Schichten flach und nur für Kindergartenübungen geeignet ist. Informell bedeutet „tief“, dass das Netzwerk schwer zu handhaben ist.
Hier ist eine Abbildung, die von hier :
angepasst wurde
Aber die eigentliche Frage, die Sie stellen, ist natürlich, warum es von Vorteil sein sollte, viele Ebenen zu haben.
Ich denke, dass die Eine etwas erstaunliche Antwort ist, dass niemand wirklich weiß. Es gibt einige allgemeine Erklärungen, die ich im Folgenden kurz erläutern werde, aber keine davon hat sich überzeugend als wahr erwiesen, und man kann nicht einmal sicher sein, dass es sehr vorteilhaft ist, viele Schichten zu haben.
Ich sage, dass dies erstaunlich ist, weil Deep Learning sehr beliebt ist, jedes Jahr alle Rekorde bricht (von der Bilderkennung über das Spielen von Go bis zur automatischen Übersetzung usw.), von der Industrie verwendet wird usw. usw. Und wir sind uns immer noch nicht ganz sicher, warum es so gut funktioniert.
Ich stütze meine Diskussion auf die Deep Lernen Buch von Goodfellow, Bengio und Courville, das 2017 herauskam und allgemein als das Buch über tiefes Lernen angesehen wird. (Es ist online frei verfügbar.) Der relevante Abschnitt ist 6.4.1 Universelle Approximationseigenschaften und -tiefe .
Sie haben geschrieben, dass
Vor 10 Jahren in der Klasse habe ich gelernt, dass mehrere Schichten oder eine Schicht (ohne die Eingabe- und Ausgabeschichten) hinsichtlich der Funktionen, die ein neuronales Netzwerk darstellen kann, äquivalent sind […]
Sie müssen sich auf das sogenannte Universal Approximation Theorem beziehen, das durch bewiesen wurde Cybenko im Jahr 1989 und in den 1990er Jahren von verschiedenen Personen verallgemeinert. Grundsätzlich heißt es, dass ein flaches neuronales Netzwerk (mit 1 verborgenen Schicht) jede Funktion annähern kann, d. H. Im Prinzip alles lernen kann. Dies gilt für verschiedene nichtlineare Aktivierungsfunktionen, einschließlich gleichgerichteter linearer Einheiten, die die meisten neuronalen Netze heute verwenden (das Lehrbuch verweist für dieses Ergebnis auf Leshno et al. 1993 ).
Wenn ja, warum verwenden dann alle tiefe Netze?
Nun, eine naive Antwort ist, dass sie besser funktionieren. Hier ist eine Abbildung aus dem Buch Deep Learning , die zeigt, dass es hilfreich ist, mehr 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 Netzwerk könnte Leistung so gut wie die tieferen. Aber das tut es nicht; und normalerweise nicht. Die Frage ist — warum? Mögliche Antworten:
- Vielleicht würde ein flaches Netzwerk mehr Neuronen benötigen als das tiefe?
- Vielleicht ist es schwieriger, ein flaches Netzwerk mit unseren aktuellen Algorithmen zu trainieren (z böse lokale Minima oder die Konvergenzrate ist langsamer oder was auch immer)?
- Vielleicht passt eine flache Architektur nicht zu den Problemen, die wir normalerweise zu lösen versuchen (z. B. ist die Objekterkennung eine fundamentale „Tiefe“ „, hierarchischer Prozess)?
- Etwas anderes?
Das Buch Deep Learning spricht sich für die Aufzählungspunkte 1 und 3 aus. Erstens 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 Veröffentlichungen, die belegen, dass flache Netzwerke in einigen Fällen exponentiell viele Neuronen benötigen würden; aber ob z.B. MNIST-Klassifizierung oder Go-Playing sind solche Fälle nicht wirklich klar. Zweitens sagt das Buch Folgendes:
Die Auswahl eines tiefen Modells kodiert eine sehr allgemeine Überzeugung, dass die Funktion, die wir lernen möchten, die Zusammensetzung mehrerer einfacherer Funktionen beinhalten sollte. Dies kann unter dem Gesichtspunkt des Repräsentationslernens dahingehend interpretiert werden, dass wir glauben, dass das Lernproblem darin besteht, eine Reihe zugrunde liegender Variationsfaktoren zu entdecken, die wiederum anhand anderer, einfacherer zugrunde liegender Variationsfaktoren beschrieben werden können.
Ich denke, der aktuelle „Konsens“ ist, dass es sich um eine Kombination der Aufzählungspunkte 1 und 3 handelt: Für reale Aufgaben ist eine tiefe Architektur oft eine vorteilhafte und flache Architektur wäre ineffizient und würde viel mehr Neuronen für die gleiche Leistung erfordern.
Aber es ist alles andere als bewiesen. Betrachten Sie z.B. Zagoruyko und Komodakis, 2016, Wide Residual Networks . Restnetzwerke mit mehr als 150 Schichten erschienen 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 Erstautors auf dem verbleibenden Netzwerkpapier (beachten Sie, dass die Zeit hier verwirrenderweise nach links geht):
Das oben verlinkte Papier zeigt jedoch, dass ein „breites“ „Restnetzwerk mit“ nur „16 Schichten kann“ tiefe „mit mehr als 150 Schichten übertreffen. Wenn dies zutrifft, bricht der ganze Punkt der obigen Abbildung zusammen.
Oder betrachten Sie Ba und Caruana, 2014, müssen tiefe Netze wirklich sein Tief? :
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älle mit der gleichen Anzahl von Parametern wie die tiefen Netze. Dazu trainieren wir zuerst ein hochmodernes Tiefenmodell und dann ein flaches Modell, um das Tiefenmodell nachzuahmen. Das Mimikmodell wird unter Verwendung des im nächsten Abschnitt beschriebenen Modellkomprimierungsschemas 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, ist es klar, dass die von diesem tiefen Netz gelernte Funktion nicht wirklich tief sein muss.
Wenn true, würde dies bedeuten, dass die richtige Erklärung eher meine Kugel Nr. 2 und nicht Nr. 1 oder Nr. 3 ist.
Wie gesagt – – Niemand weiß es wirklich genau.
Abschließende Bemerkungen
Die in der Deep Learning in den letzten ~ 10 Jahren ist wirklich erstaunlich, aber der größte Teil dieses Fortschritts wurde durch Versuch und Irrtum erzielt, und wir haben immer noch kein grundlegendes Verständnis dafür, was genau Deep Nets so gut funktioniert. Sogar die Liste der Dinge, die Menschen als entscheidend für den Aufbau eines effektiven tiefen Netzwerks betrachten, scheint sich alle paar Jahre zu ändern.
Die Renaissance des tiefen Lernens begann 2006, als Geoffrey Hinton (der an neuronalen Netzwerken gearbeitet hatte) Netzwerke seit mehr als 20 Jahren ohne großes Interesse von irgendjemandem) veröffentlichten einige bahnbrechende Artikel, die eine effektive Möglichkeit bieten, tiefe Netzwerke zu trainieren ( Wissenschaftspapier , Neuronales Berechnungspapier ). Der Trick bestand darin, unbeaufsichtigtes Pre-Training zu verwenden, bevor der Gradientenabstieg gestartet wurde. Diese Papiere revolutionierten das Feld und für ein paar Jahre hielten die Leute unbeaufsichtigtes Pre-Training für den Schlüssel.
Dann zeigte Martens 2010, dass tiefe neuronale Netze mit Methoden zweiter Ordnung (sogenannte hessische Methoden) trainiert werden können und Netzwerke übertreffen können, die mit Vortraining trainiert wurden: Deep Learning durch hessische Optimierung . Dann haben Sutskever et al. zeigten, dass ein stochastischer Gradientenabstieg mit einigen sehr cleveren Tricks die hessischen Methoden übertreffen kann: Zur Bedeutung von Initialisierung und Dynamik beim tiefen Lernen . Um 2010 wurde auch klar, dass die Verwendung von gleichgerichteten Lineareinheiten anstelle von Sigmoideinheiten einen großen Unterschied für den Gradientenabstieg darstellt. Dropout erschien im Jahr 2014. Restliche Netzwerke erschienen im Jahr 2015. Immer wieder werden immer effektivere Methoden entwickelt, um tiefe Netzwerke zu trainieren, und , was vor 10 Jahren als wichtige Erkenntnis erschien, wird oft in Betracht gezogen ein Ärgernis heute. 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 manche 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. Nur 10 Jahre lang haben die Leute lokale Minima beschuldigt, aber derzeit wird davon ausgegangen, dass dies nicht der Punkt ist (Wenn das Leistungsplateau hoch ist, bleiben die Gradienten tendenziell groß.) Dies ist eine so grundlegende Frage zu tiefen Netzwerken, und wir kennen diese nicht einmal.
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, also einige der folgenden Kommentare gelten nicht mehr.]
Kommentare
- Nette Antwort! 1) Wie auch von @Nicolas erwähnt, ist es Es stellt sich heraus, dass es einen Satz gibt ( en.wikipedia.org/wiki/Universal_approximation_theorem ), der behauptet, dass ein Feed-Forward-Neuron n Mit einer einzelnen verborgenen Schicht und einer endlichen Anzahl von Neuronen kann jede kontinuierliche Funktion (einschließlich einer DNN) auf dem Einheitshyperwürfel angenähert werden. Dieses Ergebnis soll unabhängig von der Wahl der Aktivierungsfunktion sein. 2) Ich bin nicht sicher, ob Ihre letzte Bemerkung (d. H. Dass Hinton Google beigetreten ist) für den jüngsten Erfolg von DNNs relevant ist. Hinton ist Google beigetreten, lange nachdem DNNs epidemisch wurden!
- Vielleicht verwenden wir ‚ die Terminologie anders. Perceptrons haben ‚ keine versteckte Schicht – ihre Eingabe sind Daten, ihre Ausgabe ist die Klassifizierung. Ein mehrschichtiges Netzwerk besteht aus einer Reihe von Perzeptronen, die so miteinander verbunden sind, dass die Ausgabe von Schicht $ n-1 $ die Eingabe für Schicht $ n $ bildet. Ein Netzwerk mit einer einzelnen verborgenen Schicht hat somit drei Schichten (Eingabe, verborgen, Ausgabe). Diese verborgene Schicht ist der Schlüssel für die universelle Approximation: Perzeptrone, denen sie fehlt, können ‚ Dinge wie XOR nicht berechnen, die mehrschichtigen Netzwerke jedoch.
- Die Linearität Sache scheint wie eine Kombination von zwei Themen. Perceptrons können nur lineare Entscheidungsgrenzen berechnen – sie können nur gerade Linien zeichnen, um zwei Klassen zu teilen. Mehrschichtige Netzwerke können “ “ kompliziertere Grenzen ziehen. Aber Weder Perzeptrone noch mehrschichtige Netzwerke verwenden lineare Aktivierungsfunktionen, außer in der Ausgabeschicht eines mehrschichtigen Netzwerks. Die Perzeptronaktivierungsfunktion ist eine Heaviside (1, wenn x > 0, andernfalls 0); Mehrschichtnetzwerke verwenden häufig Sigmoide, aber die Einschränkungen für universelle ca. sind ziemlich mild: nicht konstant, begrenzt und monoton ansteigend.
- @amoeba tolle Antwort, das Bild am Anfang hat mich irgendwie davon abgehalten, den Rest zu lesen, aber es war das Beste. Das Perzeptron ist das Gegenstück zur linearen Regression für die Klassifizierung. Wenn Personen die Lösung in geschlossener Form (Pseudoinverse) verwenden, um das Problem anstelle von Online-Methoden (sgd) zu lösen, ist es ‚ s wird wegen der logistischen (Sigmoidfunktion) = Perzeptron als logistische Regression bezeichnet. Eine Perzeptron / logistische Regression kann nur ‚ ‚ lineare Entscheidungsgrenzen zeichnen und diese ‚ s warum es ‚ als linear bezeichnet wird.
- Das mehrschichtige Perzeptron (was Sie in Ihrem ersten Bild links gezeichnet haben) kann jedoch mehrere solcher linearen Entscheidungen kombinieren Grenzen und kann somit 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 in einem höheren Raum immer noch linear. Wenn Sie mit Kerneln vertraut sind, ist es ‚ ähnlich.
Antwort
Gute Antwort, obwohl es ein paar Dinge gibt, die hier niemand erwähnt, hier sind meine 0,02 $
Ich werde nur in Form einer Geschichte antworten, um die Dinge lustiger und klarer zu machen. Kein tldr hier. Dabei sollten Sie verstehen können, was der Unterschied ist.
Es gibt mehrere Gründe, warum DNNs dabei funkelten (Sterne mussten sich ausrichten, wie alle ähnlichen Dinge, es ist nur die Frage des Richtigen Ort, richtige 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“ zu verallgemeinern und zu lernen „(auch bekannt als die Grundbausteine, die zwischen Aufgaben / Anwendungen wiederverwendet werden können), dann benötigen Sie viele Daten. Und wilde Daten, darf ich hinzufügen, keine sterilen Datensätze, die sorgfältig im Labor mit kontrollierter Beleuchtung und allem aufgezeichnet wurden. Mechanisch Turk hat dies ermöglicht (Beschriftung).
Zweitens hat die Möglichkeit, größere Netzwerke mit GPUs schneller zu trainieren, das Experimentieren beschleunigt. ReLU-Einheiten haben die Arbeit auch rechnerisch beschleunigt und ihre Regularisierung bereitgestellt, da Sie mehr Einheiten in verwenden mussten eine Ebene, um die gleichen Informationen komprimieren zu können, da Ebenen jetzt mehr Holme waren e, so ging es auch gut mit Aussetzer. Außerdem haben sie bei einem wichtigen Problem geholfen, das auftritt, wenn Sie mehrere Ebenen stapeln. Dazu später mehr. Verschiedene Tricks, die die Leistung verbessern. Wie die Verwendung von Mini-Batches (was sich tatsächlich nachteilig auf den endgültigen Fehler auswirkt) oder Windungen (die tatsächlich nicht so viel Varianz erfassen wie lokale Empfangsfelder), aber rechnerisch schneller sind.
In der Zwischenzeit diskutierten die Leute Wenn sie sie dünner oder molliger, kleiner oder größer, mit oder ohne Sommersprossen usw. mochten, war die Optimierung so, als würde sie sprudeln oder knallen, so dass die Forschung sich auf komplexere Trainingsmethoden wie die Methode des konjugierten Gradienten und der Newton-Methode verlagerte Alle erkannten, dass es kein kostenloses Mittagessen gibt. Netzwerke rülpsten.
Was die Dinge verlangsamte, war das Problem des verschwindenden Gradienten . Die Leute sagten: whoa, das ist „weit weg, Mann! Kurz gesagt bedeutet es, dass es schwierig war, den Fehler auf Ebenen anzupassen, die näher an den Eingaben liegen. Wenn Sie mehr Ebenen auf den Kuchen legen, wird es zu wackelig. Sie konnten nicht.“ t Weitergabe eines bedeutungsvollen Fehlers an die ersten Schichten zurück. Je mehr Schichten, desto schlimmer wurde es. Schade.
Einige Leute haben herausgefunden, dass die Verwendung der Kreuzentropie als Verlustfunktion (nun ja, Klassifizierung und Bilderkennung) eine Art Regularisierung bietet und dazu beiträgt, dass das Netzwerk nicht gesättigt wird und der Gradient steigt Das konnte man nicht gut verbergen.
Was auch möglich war, war das Vor-Training pro Schicht mit unbeaufsichtigten Methoden. Grundsätzlich nimmt man eine Reihe von Auto-Encodern und lernt immer weniger abstrakte Darstellungen als Sie erhöhen das Komprimierungsverhältnis. Die Gewichte aus diesen Netzwerken wurden verwendet, um die überwachte Version zu initialisieren. Dies löste das Problem des verschwindenden Gradienten auf eine andere Weise: Sie beginnen das überwachte Training bereits von einer viel besseren Startposition aus. Also standen alle anderen Netzwerke auf und begannen zu revoltieren. Aber die Netzwerke mussten trotzdem überwacht werden, sonst war es unmöglich, die Big Data ruhig zu halten.
Nun zum letzten Teil, der schließlich 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 Merkmalsdeskriptoren. und Pools.
Hier ist ein Beispiel: Sie haben einen Datensatz mit Bildern. Wie werden Sie einen Plan NN mit diesen Daten trainieren? Nun, naiv, nehmen wir jede Zeile und Sie verketten es zu einem langen Vektor und das ist Ihre Eingabe. Was lernen Sie?Nun, einige Fuzzy-Nonsense-Funktionen, die aufgrund der vielen verschiedenen Arten von Abweichungen, die die Objekte im Bild enthalten, möglicherweise nicht nach irgendetwas aussehen und Sie nicht in der Lage sind, zwischen relevanten und irrelevanten Dingen zu unterscheiden. Und irgendwann muss das Netzwerk vergessen, neue Dinge neu lernen zu können. Es gibt also ein Kapazitätsproblem. Dies ist eine 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.
Also der Punkt Wenn Sie das Bild nur als ein Stück eingeben, bedeutet das Hinzufügen zusätzlicher Ebenen nicht viel für Sie, da Sie Abstraktionen nicht lernen können, was sehr wichtig ist. Ganzheitliches Handeln funktioniert daher nicht so gut, es sei denn, Sie erledigen einfachere Dinge mit dem Netzwerk, z. B. das Fokussieren auf einen bestimmten Objekttyp. Sie beschränken sich also auf eine Klasse und wählen einige globale Eigenschaften als Klassifizierungsziel aus.
Also, was gibt es zu tun? Schauen Sie auf den Bildschirmrand und versuchen Sie, diesen Text zu lesen. Problem? So dumm es auch klingen mag, Sie müssen sich ansehen, was Sie „lesen“. Andernfalls ist es zu unscharf / es gibt nicht genügend 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 es dann 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, und Sie können auch zwischen einer schläfrigen Katze, die auf einem Sofa sitzt, und einem umgedrehten 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, zunächst einfache, und baut dann auf diesen auf, um komplexere Filter zu lernen.
Um es zusammenzufassen: Empfangsfelder / Windungen, unbeaufsichtigte Initialisierung, gleichgerichtete lineare Einheiten, Ausfall oder andere Regularisierung Methoden. Wenn Sie dies sehr ernst meinen, empfehle ich Ihnen, sich Schmidhubers Deep Learning in Neuronalen Netzen anzusehen: Ein Überblick hier ist die URL für den Preprint http://arxiv.org/abs/1404.7828
Und denken Sie daran: großes Lernen, tiefe Daten. Word.
Kommentare
- Hallo Florin, danke für die nette Antwort! Ich mag den Schreibstil. Wenn Sie über Schiebefenster sprechen, beziehen Sie sich darauf, wie Faltungsschichten von Faltungs-NN verschiedene Teile eines Bildes und Projekts beobachten Ihre Aktivierungen in einem Raum niedrigerer Dimension?
- Ja, Faltungen sind nicht erforderlich, aber ‚ sind rechnerisch schneller, da die Gewichte eingeschränkt sind in diesem Artikel, in dem sie ‚ keine Faltungen und keine lokalen Empfangsfelder verwenden. Die wichtigen Schlüsselwörter sind lokal / hierarchisch: arxiv.org /pdf/1112.6209.pdf
- Ich denke auch am nächsten Die systematische Antwort lautet sobi ‚ s. er ‚ hat meine positive Bewertung erhalten. Ich habe hier und da noch ein paar Dinge mit etwas Salz und Pfeffer hinzugefügt.
Antwort
In Der Hauptunterschied zu den klassischen Neuronalen Netzen besteht darin, dass sie viel mehr versteckte Ebenen haben.
Die Idee besteht darin, den Ebenen Beschriftungen hinzuzufügen, um mehrere Abstraktionsebenen zu erstellen:
Zum Beispiel ein tiefes neuronales Netzwerk zur Objekterkennung :
- Schicht 1: Einzelpixel
- Schicht 2: Kanten
- Schicht 3: Formen (Kreise, Quadrate)
- Schicht n: Ganzes Objekt
Sie finden Eine gute Erklärung zu dieser Frage in Quora .
Und wenn Sie sich für dieses Thema interessieren, würde ich Ihnen empfehlen, sich das anzuschauen Buch .
Kommentare
- Danke David, aber ich ‚ Ich sehe nicht wirklich, wie man einfach Labels hinzufügt, um es anders zu machen. Ich erinnere mich auch, dass es ein schwieriges 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 erledigen.
- Die Leistung kommt, wenn Sie es wie eine Pipeline verwenden, also die Ein- und Ausgänge von den Ebenenstapeln auf jeder Ebene.
- 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 mit dem zu sein, was ich habe lesen. Ich ‚ werde versuchen, meine eigene Frage zu beantworten und diese Messwerte zusammenzufassen.
- Obwohl die angezeigte Ressource interessant ist, beantwortet die aktuelle Antwort die Frage nicht.
- Können Sie auf ein Beispiel verweisen, in dem die Ebenen beschriftet sind (außer auf rein beschreibende Weise)?Es ist sicher richtig, dass verborgene Ebenen in jeder verborgenen Ebene nacheinander komplexeren Merkmalen erscheinen, aber “ Hinzufügen von Labels “ scheint dies zu implizieren ‚ wird speziell dafür geschult.
Antwort
NN:
- Eine verborgene Ebene ist ausreichend, kann jedoch mehrere Ebenen aufweisen, wobei die Reihenfolge von links nach rechts (Modell: Feed-Forward-NN)
- nur überwacht überwacht wird (Backpropagation) )
- Wenn mehrere Ebenen verwendet werden, trainieren Sie alle Ebenen gleichzeitig (gleicher Algorithmus: Backpropagation). Mehr Ebenen erschweren die Verwendung, da Fehler zu klein werden.
- schwer zu bearbeiten Verstehen, was auf jeder Ebene gelernt wird
DNN:
- Es sind mehrere Ebenen erforderlich, ungerichtete Kanten (Modell: eingeschränkte Boltzman-Maschine)
- zuerst unbeaufsichtigt trainiert, wobei die Netzwerke relevante Funktionen lernen, indem sie lernen, ihre Eingaben zu reproduzieren , dann auf eine überwachte Weise trainiert, die die Merkmale fein abstimmt, um
- die Schichten einzeln von der Eingabe- zur Ausgabeschicht zu trainieren (Algorithmus: kontrastive Divergenz)
- jede Schicht klar zu trainieren enthält Merkmale zunehmender Abstraktion
Die Umstellung auf DNN ist auf drei unabhängige Durchbrüche zurückzuführen, die 2006 stattfanden.
In Bezug auf Theoreme zu NN ist dies die Frage, auf die die Frage anspielt :
- Universeller Approximationssatz oder Cybenko-Theorem: Ein Feed-Forward-Neuronales Netzwerk mit einer einzelnen verborgenen Schicht kann jede kontinuierliche Funktion approximieren. In der Praxis kann es jedoch viel mehr Neuronen erfordern, wenn eine einzelne verborgene Schicht verwendet wird.
Kommentare
- -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 …
- Ich habe nicht abgelehnt (vielleicht hat es einem Abstimmenden nicht gefallen, dass Sie Ihre eigene Frage beantworten? Aber das ist hier natürlich vollkommen in Ordnung), aber hier ist eine was nicht ganz richtig ist. Was Sie als Eigenschaften von DNN auflisten: dass Kanten ungerichtet sind, dass ‚ zuerst unbeaufsichtigt trainiert wird, dass die Ebenen einzeln trainiert werden – all das bezieht sich nur Dies gilt nicht unbedingt für tiefe neuronale Netze im Allgemeinen, und tatsächlich gibt es jetzt viele Möglichkeiten, ein tiefes Netzwerk ohne all das zu trainieren. Siehe meine Antwort.
Antwort
Ich war am Anfang auch ein bisschen verwirrt über den Unterschied zwischen Neuronale Netze (NN) und tiefe neuronale Netze (DNN), die „Tiefe“ bezieht sich jedoch leider nur auf die Anzahl der Parameter & -Schichten. Sie können dies als eine Art Re betrachten -branding unter der sogenannten „Canadian Mafia“.
Vor einigen Jahren hatte ich auch Neuronale Netze als Teil einer Klasse und wir haben Ziffernerkennung, Wellenannäherung und ähnliche Anwendungen mit NN durchgeführt, die hatte mehrere versteckte Ebenen und Ausgänge und all den Jazz, den DNNs haben. Was wir damals jedoch nicht hatten, war Rechenleistung.
Der Grund, der den Wechsel zu DNN möglich und wünschenswert machte, sind die Fortschritte in der Hardwareentwicklung. Einfach ausgedrückt, jetzt können wir mehr, schneller und mehr berechnen parallelisiert (DNN auf GPUs), während zuvor die Zeit der Engpass für NNs war.
Wie auf der Wikipedia-Seite für Deep angegeben Beim Lernen bezieht sich der „tiefe“ Teil hauptsächlich darauf, dass Features auf mehreren Ebenen nichtlinear interagieren und daher Features extrahieren und transformieren. Dies wurde auch in Standard-NNs durchgeführt, jedoch in kleinerem Maßstab.
Auf derselben Seite, hier , haben Sie die Definition „Ein tiefes neuronales Netzwerk (DNN) ist ein künstliches neuronales Netzwerk (ANN) mit mehreren verborgenen Schichten von Einheiten zwischen der Eingangs- und Ausgangsschicht.“
Kommentare
- Hallo Mttk, danke für deine Antwort, es hat mehr Licht auf diese Frage geworfen. In Bezug auf deinen letzten Punkt ist es sehr einfach, den Unterschied zu erklären (1 gegen mehrere Schichten), aber den Unterschied in Wie diese mehreren Ebenen verwendet werden, scheint wichtig zu sein und es ist viel weniger klar. Deshalb habe ich die Frage nicht auf die Struktur konzentriert.
- Ehrlich gesagt, ich ‚ t stimmt nicht mit der letzten Definition überein, auf die ich verwiesen habe – da ANN / NN mit einer verborgenen Schicht nicht wirklich effizient sind und Sie für jede Art von komplexerer Vorhersage mehrere benötigen (I ‚ m Dies zu sagen, weil ich denke, DNN war ein nutzloses Schlagwort hinzugefügt zu einem bereits guten Begriff, NN). Ich denke, Sie können NN und DNN austauschbar verwenden (da heutzutage niemand NN ‚ s mit einer verborgenen Schicht verwendet), während sich die Verwendung der Schichten zwischen den DNN-Typen ‚ s (CNN, RBM, RNN, LSTM, CW-RNN, …) und nicht die Idee von DNN selbst.
Antwort
Soweit ich weiß, hat das, was heute als Deep Neural Network (DNN) bezeichnet wird, nichts Grundlegendes oder philosophisch anders als das alte Standard Neural Network (NN). Obwohl man theoretisch eine beliebige NN unter Verwendung einer flachen NN mit nur einer verborgenen Schicht approximieren kann, ist dies jedoch nicht der Fall Dies bedeutet, dass die beiden Netzwerke eine ähnliche Leistung erbringen, wenn sie mit demselben Algorithmus und denselben Trainingsdaten trainiert werden. 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 trainiert wird, um die endgültige Ausgabe (d. H. Die Ausgabe der vorletzten Schicht) des tiefen Netzwerks nachzuahmen. Was tiefe Architekturen günstig macht, ist, dass die heutigen Trainingstechniken (Rückausbreitung) besser funktionieren, wenn die Neuronen in einer hierarchischen Struktur angeordnet sind.
Eine andere Frage, die gestellt werden kann, ist: Warum neuronale Netzwerke (insbesondere DNNs) wurden plötzlich so beliebt. Nach meinem Verständnis sind die magischen Bestandteile, die DNNs in letzter Zeit so beliebt gemacht haben, folgende:
A. Verbesserte Datensätze und Datenverarbeitungsfunktionen
1. Große Datensätze mit Millionen verschiedener Bilder wurden verfügbar.
2. Die schnelle GPU-Implementierung wurde der Öffentlichkeit zur Verfügung gestellt.
B. Verbesserte Trainingsalgorithmen und Netzwerkarchitekturen
1. Gleichgerichtete lineare Einheiten (ReLU) anstelle von Sigmoid oder Tanh
2. Im Laufe der Jahre haben sich tiefe Netzwerkarchitekturen entwickelt
A-1) Zumindest bis vor kurzem In Computer Vision konnten wir keine Modelle auf Millionen von beschrifteten Bildern trainieren. einfach, weil beschriftete Datensätze dieser Größe nicht existierten. 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 dieses Dokuments a) >, von Azizpour et al.).
A-2) Es wurden viele technische Anstrengungen unternommen Es wurde ermöglicht, DNNs zu trainieren, die in der Praxis gut funktionieren, insbesondere das Aufkommen von GPU-Implementierungen. Eine der ersten erfolgreichen GPU-Implementierungen von DNNs läuft auf zwei parallelen GPUs. Es dauert jedoch ungefähr eine Woche, um eine DNN auf 1,2 Millionen Bildern von 1000 Kategorien mit High-End-GPUs zu trainieren (siehe dieses Dokuments von Krizhevsky et al.).
B-1) Die Verwendung einfacher gleichgerichteter linearer Einheiten (ReLU) anstelle von Sigmoid und Tanh-Funktionen sind 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 fast Null haben, je nachdem, wie schnell sie von der niedrigen Aktivierungsstufe zur hohen wechseln. Im Extremfall, wenn der Übergang plötzlich erfolgt, erhalten wir eine Schrittfunktion mit der Steigung Null überall außer an einem Punkt, an dem der Übergang stattfindet.
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. Parameter-Sharing ( zB in Faltungsschichten), Dropout-Regularisierung, Initialisierung, Lernratenplan, räumliches Pooling, Unterabtastung in den tieferen Schichten und viele andere Tricks, die jetzt als Standard in Trainings-DNNs gelten, wurden entwickelt, weiterentwickelt, Ende über die Jahre zugeschnitten, um das Training der tiefen Netzwerke so zu ermöglichen, wie es heute ist.
Kommentare
- +1. Die erste Antwort in Dieser Thread bietet eine angemessene Antwort auf die Fragen des OP ‚. Viele gute Punkte hier. Mein einziger wichtiger Kommentar wäre, dass zusätzlich zu Ihrem A und B, th Es gibt auch C: Massive Zunahme der Größe der verfügbaren Trainingsdatensätze. Dies scheint mindestens so wichtig zu sein wie A und B.
- Ich glaube nicht, dass Relu so wichtig ist: Alex Krizhevsky-Artikel behauptete, es habe nn das Lernen gebracht. Id id = „02bd39cd20“>
bis 6 mal schneller. Die meisten anderen von Ihnen erwähnten Änderungen der Netzwerkstruktur beziehen sich auf Faltungs-nns, die nur Standard-Bildverarbeitungs-Pipelines kopieren (gute Sache, aber keine neuen Erkenntnisse).
Antwort
Der Unterschied zwischen einem „tiefen“ NN und einem Standard-NN ist rein qualitativ: Es gibt keine Definition dessen, was „tief“ bedeutet. „Tief“ kann alles bedeuten, von extrem hoch entwickelten Architekturen, die von Google, Facebook und Co. verwendet werden und 50-80 oder sogar mehr Ebenen haben, bis zu Architekturen mit 2 versteckten Ebenen (insgesamt 4 Ebenen). Es würde mich nicht wundern, wenn Sie Artikel finden könnten, die behaupten, mit einer einzigen verborgenen Schicht tiefes Lernen zu betreiben, denn „tief“ bedeutet nicht viel.
„Neuronales Netz“ ist auch ein Wort, das dies nicht tut „t hat eine sehr genaue Bedeutung. Es deckt ein extrem großes Ensemble von Modellen ab, von zufälligen Boltzman-Maschinen (die ungerichtete Graphen sind) bis zu Feedforward-Architekturen mit verschiedenen Aktivierungsfunktionen. Die meisten NNs werden mit Backprop trainiert, müssen es aber nicht Dies ist der Fall, so dass selbst die Trainingsalgorithmen nicht sehr homogen sind.
Insgesamt sind Deep Learning, Deep NNs und NNs zu Sammelwörtern geworden, die eine Vielzahl von Ansätzen erfassen.
Für gute einführende Referenzen zu „was sich geändert hat“: Tiefes Lernen von Repräsentationen: Blick nach vorne , 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 dies veranschaulichen t tief zu sein ist möglicherweise nicht nützlich für die Darstellung, sondern zum Lernen.
Kommentare
- Die von Ihnen angegebenen Referenzen 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 viele Dinge tun „) nicht viel, würden Sie eine Überarbeitung in Betracht ziehen?
Antwort
Um die Antwort von David Gasquez zu erweitern, besteht einer der Hauptunterschiede zwischen tiefen neuronalen Netzen und traditionellen neuronalen Netzen darin, dass wir die Backpropagation nicht nur für tiefe neuronale Netze verwenden.
Warum? Da die Backpropagation spätere Schichten effizienter trainiert als frühere Schichten – wenn Sie früher und früher im Netzwerk arbeiten, werden die Fehler kleiner und diffuser. Ein zehnschichtiges Netzwerk besteht also im Wesentlichen aus sieben Schichten zufälliger Gewichte, gefolgt von drei Schichten angepasster Gewichte, und funktioniert genauso gut wie ein dreischichtiges Netzwerk. Weitere Informationen finden Sie unter hier .
Der konzeptionelle Durchbruch besteht also darin, die einzelnen Probleme (die beschrifteten Ebenen) als separate Probleme zu behandeln – wenn wir dies zuerst tun Versuchen Sie, das Problem des Aufbaus einer allgemein guten ersten Schicht zu lösen, und versuchen Sie dann, das Problem des Aufbaus einer allgemein guten zweiten Schicht zu lösen. Schließlich haben wir einen tiefen Merkmalsraum, den wir in unser eigentliches Problem einspeisen können.
Antwort
Ich würde nicht sagen, dass es einen großen philosophischen Unterschied zwischen NN und DNN gibt (tatsächlich würde ich sagen, dass DNN nur ein Marketing ist Begriff zur Unterscheidung von „fehlgeschlagen“ NN). Was sich geändert hat, ist die Größe der Datensätze. Im Wesentlichen sind neuronale Netze derzeit die besten statistischen Schätzer für $ O (n) $ und 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 einem Wiederaufleben von geführt hat flache KI – z Der Wortbeutel für die Stimmungsanalyse und andere Sprachanwendungen sowie der visuelle Wortbeutel waren der führende Ansatz zur Bilderkennung vor DNN. Niemand sagt, dass eine Wortsack ein echtes Sprachmodell ist, aber es ist eine effektive technische Lösung. Ich würde also sagen, dass DNN eine bessere „visuelle Tasche von Wörtern“ sind – siehe z. Szegedy et al. 2013 Faszinierende Eigenschaften neuronaler Netze und Nguyen et al. Tiefe neuronale Netze lassen sich leicht täuschen: Vorhersagen mit hohem Vertrauen für nicht erkennbare Bilder , bei denen klar ist, dass keine Strukturen höherer Ordnung usw. gelernt werden (oder was auch immer behauptet wird) DNN).
Kommentare
- @amoeba Dieses andere Papier ist fast ein Begleitpapier zum ersten (wieder mit vielen Bildern!)
Antwort
Um die letztere Frage zu beantworten, lesen Sie dieses Dokument aus Telgarsky was besagt, dass für ein bestimmtes Klassifizierungsproblem „alle flachen Netzwerke mit weniger als exponentiell (in k) vielen Knoten einen Fehler von mindestens 1/6 aufweisen, während ein tiefes Netzwerk mit 2 Knoten in jeder der 2k Schichten einen Fehler von Null erzielt.“
Das fragliche Klassifizierungsproblem ist das n-Wechselpunktproblem, bei dem wir das Intervall $ [0,1-2 ^ {- k}] betrachten. $ , so dass die Eingabe $ x_i $ die $ 2 ^ k $ gleichmäßig verteilten Punkte in sind Dieses Intervall und der entsprechende $ y_i $ werden durch $ y_i = 1 $ angegeben, wenn $ i $ ist ungerade und $ y_i = 0 $ , wenn $ i $ ist gerade. Wir fragen uns dann, wie gut flache Netzwerke ohne exponentielle Breiten diese Beziehung im Vergleich zu tiefen Netzwerken mit nur zwei Knoten in jeder Schicht erfassen können. Im Wesentlichen können wir Daten mit einer linearen (genau geraden) ( in $ k $ ) Anzahl der Ebenen mit nur zwei Knoten in jeder Ebene, während wir exponentiell viele benötigen würden (in $ k $ ) Knoten, um das gleiche Ergebnis in einem flachen Netzwerk zu erzielen.
Der Beweis des Zitats beinhaltet die Feststellung, dass die Zusammensetzung nichtlinearer Aktivierungen, die auf affine Transformationen angewendet werden (dh mit einer größeren Anzahl von Schichten), mehr Variabilität in den Daten erfasst als die Summierung derselben Funktionen (as in, wenn wir Knoten zu Ebenen hinzufügen).
Antwort
Deep Learning ist eine Reihe von Algorithmen für maschinelles Lernen Versuchen Sie, Abstraktionen auf hoher Ebene in Daten mithilfe von Architekturen zu modellieren, die aus mehreren nichtlinearen Transformationen bestehen.
Quelle: Arno Candel
Schreibe einen Kommentar