web-dev-qa-db-de.com

Deep Belief Networks vs Faltungs-Neuronale Netze

Ich bin neu auf dem Gebiet der neuronalen Netze und möchte den Unterschied zwischen Deep Belief Networks und Convolutional Networks kennenlernen. Gibt es auch ein Deep Convolutional Network, das aus Deep Belief und Convolutional Neural Nets besteht?

Das habe ich bis jetzt gesammelt. Bitte korrigieren Sie mich, wenn ich falsch liege.

Für ein Bildklassifizierungsproblem haben Deep Belief-Netzwerke viele Ebenen, von denen jede nach einer gierigen schichtweisen Strategie trainiert wird. Zum Beispiel, wenn meine Bildgröße 50 x 50 ist und ich nämlich ein Deep Network mit 4 Ebenen will

  1. Eingabeebene
  2. Versteckte Ebene 1 (HL1)
  3. Versteckte Ebene 2 (HL2)
  4. Ausgabeschicht

Meine Eingabeebene hat 50 x 50 = 2500 Neuronen, HL1 = 1000 Neuronen (etwa), HL2 = 100 Neuronen (etwa) und Ausgabeebene = 10 Neuronen, um die Gewichte (W1) zwischen Eingabeebene und HL1, I zu trainieren Verwenden Sie einen AutoEncoder (2500 - 1000 - 2500) und lernen Sie W1 der Größe 2500 x 1000 (dies ist unbeaufsichtigtes Lernen). Dann führe ich alle Bilder durch die ersten ausgeblendeten Ebenen, um eine Reihe von Merkmalen zu erhalten, und verwende dann einen anderen Autoencoder (1000 - 100 - 1000), um die nächste Reihe von Merkmalen zu erhalten, und verwende schließlich eine Softmax-Ebene (100 - 10) zur Klassifizierung. (nur das Lernen der Gewichte der letzten Schicht (HL2 - Ausgabe, die die Softmax-Schicht ist) wird überwachtes Lernen).

(Ich könnte RBM anstelle von Autoencoder verwenden).

Wenn das gleiche Problem mit Faltungs-Neuronalen Netzen gelöst würde, würde ich für 50x50-Eingabebilder ein Netzwerk mit nur 7x7 Patches entwickeln (sagen wir). Meine Schichten wären

  1. Eingangsschicht (7 x 7 = 49 Neuronen)
  2. HL1 (25 Neuronen für 25 verschiedene Merkmale) - (Faltungsschicht)
  3. Pooling-Schicht
  4. Ausgabeschicht (Softmax)

Und um die Gewichte zu lernen, nehme ich 7 x 7 Patches von Bildern der Größe 50 x 50 und führe sie durch die Faltungsebene, sodass ich 25 verschiedene Feature-Maps mit den Größen (50 - 7 + 1) x (50 - 7) habe + 1) = 44 × 44.

Ich benutze dann ein Fenster von etwa 11x11 für das Pooling von Hand und erhalte 25 Feature-Maps der Größe (4 x 4) für die Ausgabe der Pooling-Ebene. Ich benutze diese Feature-Maps zur Klassifizierung.

Beim Erlernen der Gewichte verwende ich nicht die schichtweise Strategie wie in Deep Belief Networks (Unüberwachtes Lernen), sondern verwende überwachtes Lernen und lerne die Gewichte aller Schichten gleichzeitig. Ist das richtig oder gibt es eine andere Möglichkeit, die Gewichte zu lernen?

Ist das, was ich verstanden habe, richtig?

Wenn ich also DBNs für die Bildklassifizierung verwenden möchte, sollte ich alle meine Bilder auf eine bestimmte Größe (z. B. 200 x 200) skalieren und so viele Neuronen in der Eingabeebene haben, während ich bei CNNs nur auf einem kleineren Patch der trainiere Geben Sie ein (sagen Sie 10 x 10 für ein Bild der Größe 200 x 200) und falten Sie die erlernten Gewichte über das gesamte Bild.

Liefern DBNs bessere Ergebnisse als CNNs oder hängen sie nur vom Datensatz ab?

Danke.

37
user3705926

Im Allgemeinen sind DBNs generative neuronale Netze, die Restricted Boltzmann Machines (RBMs) stapeln. Sie können sich RBMs als generative Autoencoder vorstellen. Wenn Sie ein tiefes Glaubensnetz wollen, sollten Sie RBMs stapeln und keine einfachen Autoencoder, da Hinton und sein Schüler Yeh bewiesen haben, dass das Stapeln von RBMs zu sigmoiden Glaubensnetzen führt.

Faltungsneuronale Netze schneiden in der aktuellen Literatur zu Benchmark-Computer-Vision-Datensätzen wie MNIST besser ab als DBNs. Wenn es sich bei dem Datensatz nicht um einen Computer-Vision-Datensatz handelt, können DBNs mit Sicherheit eine bessere Leistung erbringen. Theoretisch sollten DBNs die besten Modelle sein, aber es ist derzeit sehr schwierig, die gemeinsamen Wahrscheinlichkeiten genau abzuschätzen. Lee et. al's (2009) arbeiten an Convolutional Deep Belief Networks, die beides kombinieren wollen.

22
rahulm

Ich werde versuchen, die Situation durch Lernschuhe zu erklären.

Wenn Sie DBN verwenden, um diese Bilder zu lernen, ist dies die schlechte Sache, die in Ihrem Lernalgorithmus vorkommt

  • es wird Schuhe an verschiedenen Orten geben.

  • alle Neuronen werden versuchen, nicht nur Schuhe zu lernen, sondern auch die Position der Schuhe in den Bildern, da sie nicht das Konzept eines "lokalen Bildfleckens" innerhalb der Gewichte haben.

  • DBN ist sinnvoll, wenn alle Ihre Bilder in Bezug auf Größe, Verschiebung und Drehung ausgerichtet sind.

die Idee der Faltungsnetzwerke ist, dass es ein Konzept gibt, das als Gewichtsverteilung bezeichnet wird. Wenn ich versuche, dieses Konzept der Gewichtsverteilung zu erweitern

  • zuerst haben Sie sich 7x7-Patches angesehen und gemäß Ihrem Beispiel - als Beispiel für 3 Ihrer Neuronen in der ersten Schicht können Sie sagen, dass sie die Schuhteile "vorne", "hinten unten" und "hinten oben" gelernt haben würde für einen 7x7 Flecken durch alle Schuhe gleich aussehen.

    • Normalerweise besteht die Idee darin, mehrere Faltungsschichten nacheinander zu lernen

      • linien/Kanten in der ersten Ebene,
      • bögen, Ecken in der zweiten Schicht,
      • höhere Konzepte in höheren Schichten wie Schuhfront, Auge im Gesicht, Rad im Auto oder Rechtecke, Kegel, Dreiecke als primitive, aber dennoch Kombinationen aus vorherigen Schichten.
    • Sie können sich diese drei verschiedenen Dinge, die ich Ihnen erzählt habe, als drei verschiedene Neuronen vorstellen. Und solche Bereiche/Neuronen in Ihren Bildern werden ausgelöst, wenn sich in einem Teil des Bildes Schuhe befinden.

    • Durch das Zusammenfassen werden Ihre höheren Aktivierungen geschützt, während Ihre Bilder unterabgetastet werden und ein kleinerer Raum geschaffen wird, um die Berechnungen zu vereinfachen und umzusetzen.

    • Auf der letzten Ebene, wenn Sie sich Ihren 25X4x4, also den 400-dimensionalen Vektor, ansehen, werden Ihre Schuhneuronen aktiv sein, wenn sich irgendwo auf dem Bild ein Schuh befindet, wohingegen Neuronen, die keine Schuhneuronen sind, nahe Null sind.

    • Und um zu verstehen, welche Neuronen für Schuhe geeignet sind und welche nicht, werden Sie diesen 400-dimensionalen Vektor einem anderen überwachten Klassifikator zuordnen (dies kann so etwas wie eine SVM mit mehreren Klassen oder, wie Sie sagten, eine Soft-Max-Schicht sein).

Ich kann Ihnen raten, einen Blick auf das Papier von Fukushima 1980 zu werfen, um zu verstehen, was ich über Übersetzungsinvarianz und Linie -> Bogen -> Halbkreis -> Schuhfront -> Schuhidee ( http: //www.cs .princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf ). Sogar ein Blick auf die Bilder in der Zeitung gibt Ihnen einen Eindruck.

20
Doga Siyli