Mehrschichtiges Perzeptron gegen tiefes neuronales Netzwerk

16

Dies ist eine terminologische Frage. Manchmal sehe ich Menschen, die tiefe neuronale Netze als "vielschichtige Perzeptrone" bezeichnen. Warum ist das so? Mir wurde beigebracht, dass ein Perzeptron ein einschichtiger Klassifikator (oder Regressor) mit einem binären Schwellenwert ist, der eine bestimmte Art des Trainings der Gewichte verwendet (kein Back-Prop). Wenn die Ausgabe des Perzeptrons nicht mit der Zielausgabe übereinstimmt, addieren oder subtrahieren wir den Eingabevektor zu den Gewichten (abhängig davon, ob das Perzeptron falsch positiv oder falsch negativ war). Es ist ein recht primitiver Algorithmus für maschinelles Lernen. Das Trainingsverfahren scheint sich nicht auf einen mehrschichtigen Fall zu verallgemeinern (zumindest nicht ohne Änderung). Ein tiefes neuronales Netzwerk wird über Backprop trainiert, wobei die Kettenregel verwendet wird, um Gradienten der Kostenfunktion über alle Gewichte des Netzwerks hinweg weiterzugeben.

Die Frage ist also. Ist ein "mehrschichtiges Perzeptron" dasselbe wie ein "tiefes neuronales Netzwerk"? Wenn ja, warum wird diese Terminologie verwendet? Es scheint unnötig verwirrend zu sein. Darüber hinaus habe ich unter der Annahme, dass die Terminologie einigermaßen austauschbar ist, die Terminologie "mehrschichtiges Perzeptron" nur für ein Feed-Forward-Netzwerk gesehen, das aus vollständig verbundenen Schichten besteht (keine Faltungsschichten oder wiederkehrende Verbindungen). Wie weit ist diese Terminologie? Würde man den Begriff "mehrschichtiges Perzeptron" verwenden, wenn man sich zum Beispiel auf Inception net bezieht? Wie wäre es mit einem wiederkehrenden Netzwerk mit LSTM-Modulen, die in NLP verwendet werden?

enumaris
quelle
1
Tiefes neuronales Netzwerk = Neuronales Netzwerk mit> 1 versteckter Schicht, MLP fällt in diese Kategorie.
Tim
es ist nur eine Umbenennung. MLPs wurden in den 90ern gehypt und von SVMs verdrängt, also muss man es in den 2000ern etwas anderes nennen. der vorschlag ist, dass dnn mehr schichten hat, aber keinen so großen unterschied zB le net [mlp / cnn] (1998) 2 convolutional 2 vollständig verbunden. alexnet = DNN (2012) 5 Faltung und 3 vollständig verbunden.
Seanv507
SVMs basieren auf dem Gradientenanstieg, ANNs basieren auf dem Gradientenabstieg, sodass sie ANNs nicht wirklich verdrängten. SVMs waren überverkauft und wurden überbeansprucht, weil Studenten nichts über ANNs wussten. Um SVMs auszuführen, haben die Schüler einfach R-Pakete gepackt und waren fertig. Aber für ANNs benötigen Sie ein ganzes Semester, um sie aus der Perspektive numerischer Methoden zu verstehen - nicht aus der Perspektive interpretativer Sprachen (dh Code zusammenfügen).
16.

Antworten:

21

Man kann Multi-Layer-Perceptron (MLP) als Teilmenge von tiefen neuronalen Netzen (DNN) betrachten, die jedoch in der Literatur häufig synonym verwendet werden.

Die Annahme, dass Perceptrons aufgrund ihrer Lernregel benannt werden, ist falsch. Die klassische "Perceptron-Aktualisierungsregel" ist eine der Möglichkeiten, um sie zu trainieren. Die frühzeitige Ablehnung neuronaler Netze erfolgte aus genau diesem Grund, da die Perceptron-Aktualisierungsregel dazu neigte, Farbverläufe zu verschwinden und zu explodieren, was es unmöglich machte, Netze mit mehr als einer Schicht zu trainieren.

Die Verwendung von Backpropagation in Trainingsnetzwerken führte zur Verwendung alternativer Squash-Aktivierungsfunktionen wie Tanh und Sigmoid .

Also, um die Fragen zu beantworten,

die Frage ist. Ist ein "mehrschichtiges Perzeptron" dasselbe wie ein "tiefes neuronales Netzwerk"?

MLP ist eine Teilmenge von DNN. Während DNN Schleifen haben kann und MLP immer vorwärts gerichtet sind, dh

Ein Multi Layer Perceptron (MLP) ist ein endlicher azyklischer Graph

Warum wird diese Terminologie verwendet?

Viele der in der Wissenschaftsliteratur verwendeten Terminologien haben mit den Trends der Zeit zu tun und haben sich durchgesetzt.

Wie weit ist diese Terminologie? Würde man den Begriff "mehrschichtiges Perzeptron" verwenden, wenn man sich zum Beispiel auf Inception net bezieht? Wie wäre es mit einem wiederkehrenden Netzwerk mit LSTM-Modulen, die in NLP verwendet werden?

Ja, Inception, Convolutional Network, Resnet usw. sind alle MLP, da es keinen Zyklus zwischen den Verbindungen gibt. Selbst wenn Verknüpfungen vorhanden sind, bei denen Ebenen übersprungen werden, kann dies als mehrschichtiges Perzeptron bezeichnet werden. LSTMs, Vanilla-RNNs usw. haben jedoch zyklische Verbindungen und können daher nicht als MLPs bezeichnet werden, sondern sind eine Teilmenge von DNN.

Das ist mein Verständnis der Dinge. Bitte korrigieren Sie mich, wenn ich falsch liege.

Referenz-Links:

/cs/53521/what-is-differenz-zwischen-mehrschichtigem-Perceptron-und-mehrschichtigem-Netzwerk

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf

m1cro1ce
quelle
1
nur aus Neugier: Ich dachte , logistische Regression ist ein Regressionsverfahren , weil Sie die Wahrscheinlichkeit der Klasse 1 Mitgliedschaft schätzen, statt Klassenzugehörigkeit. Als solches scheint es mir keine Klassifizierungstechnik zu sein (der Forscher / Analyst muss sich für einen Wahrscheinlichkeitsschnitt entscheiden, um basierend auf der logistischen Regression zu klassifizieren).
IWS
@IWS du hast recht. Verschiedene Benutzer auf dieser Website haben wiederholt darauf hingewiesen, dass die logistische Regression ein Modell für die (bedingte) Wahrscheinlichkeitsschätzung und kein Klassifikator ist. Siehe zum Beispiel hier .
DeltaIV
1
Antwort auf Fehlerbehebung bearbeitet Beispielsweise ist "logistische Regression" eine Klassifizierungstechnik und sollte sozusagen nicht als "Regression" bezeichnet werden . Der von @DeltaIV geteilte Link macht sehr deutlich, warum es sich um eine Regression und nicht um einen Klassifikator handelt.
m1cro1ce
8

Gute Frage: Beachten Sie, dass im Bereich des Tiefenlernens die Dinge nicht immer so gut und klar definiert sind wie im Bereich des statistischen Lernens (auch weil es viel Hype gibt). Erwarten Sie also nicht, Definitionen zu finden, die so streng sind wie in der Mathematik. Das mehrschichtige Perzeptron ist auf jeden Fall eine spezielle vorwärtsgerichtete neuronale Netzwerkarchitektur, bei der mehrere vollständig verbundene Schichten (also überhaupt keine Faltungsschichten) gestapelt werden und bei der die Aktivierungsfunktionen der verborgenen Einheiten häufig Sigmoid oder Tanh sind. Die Knoten der Ausgabeschicht haben normalerweise Softmax-Aktivierungsfunktionen (zur Klassifizierung) oder lineare Aktivierungsfunktionen (zur Regression). Die typischen MLP-Architekturen sind nicht "tief", dh wir haben nicht viele versteckte Schichten. Normalerweise haben Sie beispielsweise 1 bis 5 ausgeblendete Ebenen. Diese neuronalen Netze waren in den 80er Jahren weit verbreitet.

Nun, mit Deep Neural Network meinen wir ein Netzwerk, das viele Schichten hat (19, 22, 152, ... sogar > 1200 , obwohl das zugegebenermaßen sehr extrem ist). Beachten Sie, dass

  • Wir haben die Architektur des Netzwerks nicht spezifiziert, daher kann dies ein Feed-Forward, ein Recurrent usw. sein.
  • Wir haben die Art der Verbindungen nicht spezifiziert, so dass wir vollständig verbundene Schichten, Faltungsschichten, Wiederholungen usw. haben könnten.
  • "viele" Schichten sind zugegebenermaßen keine strenge Definition.

32×32+32×10=134411584Gewichte. Dies ist nach heutigen Maßstäben ein winziger NN. Wenn Sie es jedoch mit einem entsprechend großen Datensatz trainieren, stellen Sie fest, dass sich die Konvergenzrate enorm verlangsamt hat. Dies ist nicht nur auf die größere Anzahl von Gewichten zurückzuführen, sondern auch auf das Problem des verschwindenden Gradienten: Die Rückübertragung berechnet den Gradienten der Verlustfunktion durch Multiplikation von Fehlern über jede Schicht. Diese kleinen Zahlen werden umso kleiner, je mehr Schichten Sie hinzufügen. Daher breiten sich die Fehler nicht (oder nur sehr langsam) in Ihrem Netzwerk aus, und es sieht so aus, als würde der Fehler auf dem Trainingssatz mit den Trainingsepochen nicht mehr abnehmen.

Und dies war ein kleines Netzwerk - die tiefen Faltungs-Neuronalen Netze mit dem Namen AlexNet hatten 5 Schichten, aber 60 Millionen Gewichte, und sie werden nach heutigen Maßstäben als klein angesehen! Wenn Sie so viele Gewichte haben, ist jeder Datensatz "klein" - sogar ImageNet, ein Bilddatensatz, der zur Klassifizierung verwendet wird, hat "nur" ungefähr 1 Million Bilder, daher ist das Risiko einer Überanpassung viel größer als bei einem flachen Netzwerk.

Deep Learning kann somit als eine Reihe von Werkzeugen verstanden werden, die in der Praxis verwendet werden, um neuronale Netze mit einer großen Anzahl von Schichten und Gewichten zu trainieren und so einen geringen Generalisierungsfehler zu erzielen. Diese Aufgabe ist anspruchsvoller als bei kleineren Netzwerken. Sie können definitiv ein Deep Multilayer Perceptron bauen und trainieren - aber (abgesehen von der Tatsache, dass es nicht die optimale Architektur für viele Aufgaben ist, bei denen Deep Learning heutzutage verwendet wird), werden Sie wahrscheinlich Werkzeuge verwenden, die sich von denen unterscheiden, die früher in Netzwerken verwendet wurden "flach". Beispielsweise ziehen Sie ReLU-Aktivierungseinheiten möglicherweise Sigmoid oder Tanh vor, da sie das Problem des verschwinden- den Gradienten mildern.

DeltaIV
quelle
Die vorherige Antwort von m1cro1ce besagt, dass ein Conv-Netz (wie Inception) auch als MLP klassifiziert werden kann, während Sie angeben, dass ein MLP keine Faltungsschichten haben kann (und es scheint, dass Sie implizieren, dass die Auswahl der Aktivierungsfunktionen auch funktioniert beeinflusst, was als MLP bezeichnet werden kann oder nicht?). Gibt es in der Literatur (oder in der ML-Community) Übereinstimmung darüber, was MLP genau bedeutet und was es nicht bedeutet? Wenn jemand zu mir sagte: "Ich möchte, dass Sie einen MLP für Aufgabe X erstellen", auf was kann ich mich beschränken?
Enumaris
@enumaris Sie sind gesetzlich nicht dazu verpflichtet, irgendetwas zu tun. Als ich das letzte Mal nachgesehen habe, war es immer noch legal, ein CNN zu erstellen und es als MLP zu bezeichnen. Ich würde natürlich ein solches Papier / Poster / was auch immer ablehnen, aber das bin ich und ich kann nicht für die gesamte DL-Community sprechen, die nicht gerade für ihre strikte Verwendung von Terminologie berühmt ist. Wie auch immer, meine Definition: Neuronales Feed-Forward-Netzwerk mit vollständig verbundener Schicht und mindestens einer nichtlinearen Aktivierungsfunktion (andernfalls ist es, egal wie viele Schichten es sind, immer einem linearen Netzwerk mit einer Schicht äquivalent) entspricht der Definition in. .
DeltaIV
... Wikipedia . Beachten Sie die Zeile im Abschnitt Layer "Da MLPs vollständig verbunden sind [..]". Dies schließt CNNs aus. Sie finden die gleiche Definition (Vorwärtskopplung, vollständig verbunden, zumindest die verborgenen Ebenen haben nichtlineare Aktivierungsfunktionen) in diesem Buch . In Bezug auf die Aktivierungsfunktionen scheine ich definitiv nichts zu implizieren. Ich habe nur gesagt, dass MLPs normalerweise Tanh- oder Sigmoid-Aktivierungsfunktionen haben, aber das ist nicht obligatorisch.
DeltaIV
Ich möchte eine dieser beiden Antworten als akzeptierte Antwort markieren, aber da sie widersprüchliche Antworten enthalten, möchte ich wissen, welche Antwort in der Literatur oder in der ML-Community häufiger vorkommt.
Enumaris
@enumaris Der Titel Ihrer Frage lautet "Mehrschichtiges Perzeptron gegen tiefes neuronales Netzwerk", und Sie fragen, ob a "multi-layer perceptron" the same thing as a "deep neural network": Diese Frage wurde sowohl in meiner als auch in der Antwort von m1cro1ce ausführlich beantwortet. Jetzt stellen Sie die Frage "Sind CNNs eine Untergruppe von MLP?" - Die Stack Exchange-Sites haben eine Richtlinie mit einer Frage zum Posten .
DeltaIV
0

Ich möchte hinzufügen, was ich aus vielen Posts gelesen habe:

Es gibt viele verschiedene DNN-Architekturen wie MLPs (Multi-Layer Perceptron) und CNNs (Convolutional Neural Networks).

MLPs ist ein klassischer Typ von NN, der verwendet wird für:

  • Tabellarische Datensätze (enthalten Daten in einem Spaltenformat wie in einer Datenbanktabelle).
  • Klassifikation / Regression, Vorhersage pbs.

MLPs sind sehr nützlich und können im Allgemeinen verwendet werden, um das Mapping von den Eingaben auf die Ausgaben zu vereinfachen.

Sie können jedoch auch ein anderes Format wie Bilddaten als Vergleichspunkt für die Basislinie verwenden, um zu bestätigen, dass andere Modelle besser geeignet sind.

CNNs zur Abbildung von Bilddaten auf eine Ausgabevariable. es wird verwendet für:

  • Bilddaten,
  • Klassifikation / Regressionsvorhersage pbs,

Es funktioniert gut mit Daten, die haben räumliche Beziehungen haben .

Es wird traditionell für 2D-Daten verwendet, kann jedoch auch für 1D-Daten verwendet werden. CNNs erreichen bei einigen 1D-PBS den neuesten Stand der Technik.

Sie müssen zuerst "klar definieren" was Sie als Problem lösen möchten (welche Art von Daten bearbeitet werden sollen, Klassifizierungs- / Regressionsprobleme usw.), um zu wissen, welche Art von Architektur verwendet werden soll.

Sie können auf die Links verweisen, die mir so nützlich waren, um mehr über diese Konzepte zu erfahren :).

Hoffe, dieses Add wird nützlich sein: p.

DINA TAKLIT
quelle