Was ist der Unterschied zwischen einem neuronalen Netzwerk, einem Deep Learning System und einem Deep Belief Network?


23

Was ist der Unterschied zwischen einem neuronalen Netzwerk, einem Deep Learning System und einem Deep Belief Network?

Soweit ich mich recht erinnere, handelt es sich bei Ihrem neuronalen Grundnetz um eine Sache mit drei Schichten, und Deep Belief Systems wurde als übereinander gestapelte neuronale Netze beschrieben.

Ich habe bis vor kurzem noch nichts von einem Deep-Learning-System gehört, aber ich vermute sehr, dass es ein Synonym für Deep-Belief-System ist. Kann das jemand bestätigen?


Vielleicht meinst du "tiefes Lernen"? siehe
zb

Deep Belief System ist der Begriff, mit dem ich in Berührung gekommen bin. Sie können Synonyme sein oder auch nicht. (Eine Google-Suche wirft Artikel für Deep Belief System auf.)
Lyndon White

Deep Belief Network ist der kanonische Name, weil sie von Deep Boltzmann Network abgeleitet sind (und es kann mit einem Glaubensverbreitungssystem verwechselt werden, das völlig anders ist, da es sich um Bayes'sche Netzwerke und probabilistische Entscheidungstheorie handelt).
Gaborous

@gaborous Deep Belief Network ist der richtige Name (das Dokument, in dem ich mich vor Jahren vorgestellt habe, muss einen Tippfehler gehabt haben). Aber was die Abstammung von Deep-Boltzman-Netzwerken betrifft, ist dieser Name selbst nicht kanonisch (AFAIK, froh, ein Zitat zu sehen). DBNs stammen von Sigmoid Belief Networks und gestapelten RBMs. Ich glaube nicht, dass der Begriff Deep Boltzmann Network jemals verwendet wird. Auf der anderen Seite ist Deep Boltzmann Machine ein gebräuchlicher Begriff, aber Deep Boltzmann Machines wurden nach Deep Belief Networks erstellt
Lyndon White

@Oxinabox Du hast Recht, ich habe einen Tippfehler gemacht, es ist Deep Boltzmann Machines, obwohl es eigentlich Deep Boltzmann Network heißen sollte (aber dann wäre das Akronym dasselbe, vielleicht ist das der Grund). Ich weiß nicht, welche tiefe Architektur zuerst erfunden wurde, aber Boltzmann-Maschinen sind vor halbbeschränktem BM. DBN und DBM sind im Grunde genommen gleich aufgebaut, mit der Ausnahme, dass das als Wiederholungsschicht verwendete Basisnetz ein SRBM vs BM ist.
Gaborous

Antworten:


10

Modelle für künstliche neuronale Netze waren aus verschiedenen Gründen im Allgemeinen auf nur wenige Schichten beschränkt, beispielsweise 3, und zwar aus verschiedenen Gründen, einschließlich eines mathematischen Beweises namens Kolmogorovs thm, der angab, dass sie theoretisch beliebige Funktionen mit geringem Fehler (aber nur mit vielen Neuronen) approximieren konnten.

darüber hinausgehende mehrschichtige Netze waren über frühere Lerntechniken nicht realisierbar / effektiv. Ein ähnlicher Durchbruch gelang 2006 3 verschiedenen Forschern, Hinton, Le Cun, Bengio, die in der Lage waren, viel mehr Schichten zu trainieren. Das Hauptproblem in diesem Bereich war die Handschrifterkennung.

Der Begriff "Deep Believe Network" scheint aus einem Aufsatz von Hinton aus dem Jahr 2006 zu stammen , der sich auf Bayes'sche Netzwerke bezieht , die enge konzeptionelle / theoretische Verbindungen / Analogien zu neuronalen Netzwerken aufweisen. "Ein schneller Lernalgorithmus für Deep-Believe-Netze"

siehe insbesondere Folie 17 dieser Präsentation tiefe neuronale Netze

Das tiefe Lernfeld ist also nur etwa ein halbes Jahrzehnt alt und wird derzeit rasch erforscht und weiterentwickelt. Google, Facebook, Yahoo haben alle Deep-Learning-basierte Initiativen angekündigt, und die Forschung und Entwicklung ist noch nicht abgeschlossen.


Website gewidmet tief Lernen von Forschern auf dem Gebiet
VZN

14

Künstliche neuronale Netze sind eine Klasse von Algorithmen, die viele verschiedene Arten von Algorithmen enthalten, die auf Diagrammen basieren. Daher werde ich hier nicht näher auf Ihre Fragen eingehen, da es zu viel zu sagen gibt, da es so viele Arten von ANNs gibt.

Die erste Art künstlicher neuronaler Netze, die berühmten McCulloch-Pitts-Neuronen, waren linear , was bedeutete, dass sie nur lineare Entscheidungsprobleme lösen konnten (dh Datensätze, die durch Zeichnen einer Linie linear trennbar waren ). Im Laufe der Zeit wurde dieses lineare neuronale Netzwerkmodell als Perceptron oder Adaline bekannt (je nachdem, wie Sie die Aktualisierung der Gewichte berechnen).

Lineare neuronale Netze bestehen nur aus einem zweigliedrigen Graphen, bei dem die Knoten auf der linken Seite die Eingänge und die Knoten auf der rechten Seite die Ausgänge sind. Es werden nur die Gewichte der Kanten zwischen diesen Knoten gelernt (die Aktivierungsschwelle für Knoten kann ebenfalls angepasst werden, dies wird jedoch selten durchgeführt).

Grundlegendes neuronales Netzwerk wie Adaline oder Perceptron (keine versteckte Schicht) Lineare Entscheidungsgrenze

Ein großer Schritt wurde unternommen, als flache neuronale Netze erfunden wurden: Anstatt nur einen zweigliedrigen Graphen zu haben, verwenden wir einen dreigliedrigen Graphen: die Eingabe- "Schicht", die Ausgabe- "Schicht" und eine "verborgene Schicht" zwischen ihnen. Dank der verborgenen Ebene kann das Netzwerk nun nichtlineare Entscheidungen treffen und Probleme wie das kanonische XOR lösen.

Xoder neuronales Netzwerk Beispiel für Aktivierungspfade für Xor-Neuronales Netz Xoder Netzwerkentscheidungsgrenze

Es ist zu beachten, dass der Ausdruck "flach" nachträglich geprägt wurde, als ein tiefes neuronales Netzwerk (auch als neuronale Netze mit n Schichten bezeichnet ) erfunden wurde. Dies ist, um neuronalen Netzen mit nur einer verborgenen Schicht mit tiefen neuronalen Netzen mit n verborgenen Schichten entgegenzuwirken . Wie Sie sich vorstellen können, ermöglicht die Verwendung von mehr ausgeblendeten Ebenen die Entscheidung für komplexere Datasets, da mehr Ebenen für die Modulation der Entscheidung zur Verfügung stehen (dh Sie erhöhen die Dimension Ihrer Entscheidungsgrenze, was zu einer Überanpassung führen kann).

Neuronales N-Layer-Netzwerk Komplexe nichtlineare Entscheidungsgrenze unter Verwendung eines tiefen neuronalen n-Schicht-Netzwerks

Sie fragen sich vielleicht: Warum hat noch niemand versucht, mehrschichtige (tiefe) neuronale Netze zu verwenden? Tatsächlich taten sie dies bereits 1975 von Fukushima mit dem Cognitron und dem Neocognitron (was in der Tat ein Faltungs-Neuronennetz ist, aber das ist eine andere Geschichte). Das Problem war jedoch, dass niemand wusste, wie man solche Netzwerke effizient lernt, wobei das große Problem die Regularisierung war . Hinton Autoencoder öffnete den Weg, und später die Rectified Lineareinheiten von LeCun das Problem behoben für gut.

Was ist mit Deep Beliefs Networks (DBN)? Es handelt sich lediglich um mehrschichtige, teilweise eingeschränkte Boltzmann-Maschinen. Sie sind also eine Art tiefes neuronales Netzwerk, aber mit einem anderen grundlegenden Netzwerkmuster (dh die Schicht, dies ist das Muster, das sich wiederholt): Boltzmann-Maschinen unterscheiden sich von anderen Netzwerken darin, dass sie generativ sind , was bedeutet, dass sie normalerweise sind verwendet, um aus Ihren Daten zu lernen, um sie zu reproduzieren ("zu erzeugen"), während gewöhnliche tiefe neuronale Netze verwendet werden, um Ihre Daten zu trennen (indem eine "Entscheidungsgrenze" gezogen wird).

Mit anderen Worten, DNN eignet sich hervorragend zum Klassifizieren / Vorhersagen eines Werts aus Ihrem Datensatz, während DBN hervorragend zum "Reparieren" beschädigter Daten geeignet ist (wenn ich "Reparieren" sage, handelt es sich nicht nur um beschädigte Daten, sondern auch um einwandfreie Daten dass Sie nur ein wenig korrigieren möchten, um stereotyper zu sein, als um es mit einem anderen neuronalen Netzwerk, wie handgeschriebenen Ziffern, leichter zu erkennen).

Zusammenfassend lässt sich sagen, dass AutoEncoder eine einfachere Form von Deep Belief Network sind. Hier ist ein Beispiel für einen DBN, der darauf trainiert ist, Gesichter zu erkennen, aber KEINE Zahlen. Die Zahlen werden automatisch ausgeblendet (dies ist der "Fixing" -Effekt von DBN):

Deep Belief Network Beispiel zur Gesichtserkennung

Letztendlich sind DBN und DNN also nicht gegensätzlich: Sie ergänzen sich. Sie können sich zum Beispiel ein System vorstellen, das handgeschriebene Zeichen erkennt, die das Bild eines Zeichens zuerst einem DBN zuführen, um es stereotyper zu machen, und dann das stereotype Bild einem DNN zuführen, der dann ausgibt, welches Zeichen das Bild darstellt.

Ein letzter Hinweis: Deep Belief-Netze sind Deep Boltzmann-Maschinen sehr ähnlich: Deep Boltzmann-Maschinen verwenden Schichten von Boltzmann-Maschinen (bidirektionale neuronale Netze, auch als wiederkehrende neuronale Netze bezeichnet), während Deep Belief-Netze semi-eingeschränkte Boltzmann-Maschinen (semi-eingeschränkte Boltzmann-Maschinen) verwenden. Eingeschränkt bedeutet, dass sie in unidirektional geändert werden, sodass Backpropagation zum Erlernen des Netzwerks verwendet werden kann, was weitaus effizienter ist als das Erlernen eines rekursiven Netzwerks. Beide Netzwerke werden für den gleichen Zweck verwendet (Neuerstellung des Datensatzes), aber der Rechenaufwand ist unterschiedlich (Deep Boltzmann-Maschinen sind aufgrund ihrer wiederkehrenden Natur erheblich teurer zu erlernen: Es ist schwieriger, die Gewichte zu "stabilisieren").

Bonus: Bei Convolutional Neural Networks (CNN) gibt es viele widersprüchliche und verwirrende Behauptungen, und normalerweise handelt es sich nur um tiefe neuronale Netze. Es scheint jedoch, dass der Konsens darin besteht, die ursprüngliche Definition von Fukushimas Neocognitron zu verwenden: Ein CNN ist ein DNN, der gezwungen ist, verschiedene Merkmale auf verschiedenen Hierarchieebenen zu extrahieren, indem er vor der Aktivierung eine Faltung auferlegt (was ein DNN natürlich tun kann, aber erzwingt) Wenn Sie eine andere Faltungs- / Aktivierungsfunktion für verschiedene Schichten des Netzwerks einstellen, erhalten Sie möglicherweise ein besseres Ergebnis. Dies ist zumindest die Wette von CNN.

Deep neuronale Netzwerkfunktionen Funktionen des neuronalen Faltungsnetzwerks

Eine genauere Zeitleiste der künstlichen Intelligenz finden Sie hier .


1
Gute Antwort! Ein Schlüsselaspekt (vielleicht der definierende Aspekt) von Faltungstiefen Netzwerken besteht darin, dass jede Ebene einer Faltung entspricht und anschließend eine Aktivierungsfunktion angewendet wird: Es gibt einen Kernel, und alle Knoten in einer Ebene wenden denselben Kernel an. Stellen Sie sich vor, die Eingabe ist ein Bild. In der Regel haben Sie für jedes Pixel einen Knoten und Verbindungen, die von nahe gelegenen Pixeln eingehen. Ein gewöhnliches Netzwerk würde jedem Pixel erlauben, ein eigenes Muster von Gewichten an den ankommenden Kanten zu haben. Ein Faltungsnetzwerk setzt zusätzlich voraus, dass für jedes Pixel im Bild die gleiche Abfolge von Gewichten gilt.
DW

Ja, in der Tat hast du recht, und daher kommt der Name. Ich persönlich denke jedoch, dass dies häufig als Hack verwendet wird, um ein tiefes neuronales Netzwerk zu spezialisieren, als alles andere (wenn das definierende Merkmal eines tiefen neuronalen Netzwerks ein allgemeiner Zweck und eine Agnostik für den Datensatz sein soll). Beispielsweise verwendet HMAX, eine Art CNN, die Faltung, um Ausnahmekarten zu berechnen, was eindeutig ein Hack ist, wenn die Ausnahmekarte in einem biologischen neuronalen Netzwerk natürlich nicht mit dynamischer Programmierung berechnet wird ...
gaborous

3

Tiefe neuronale Netze sind neuronale Netze mit relativ hoher Tiefe. Sie sind eine Unterklasse von Neuronalen Netzen. Die Idee geht tatsächlich Jahrzehnte zurück und ist nicht neu. Neu ist, dass wir herausgefunden haben, wie man sie in der Praxis trainiert. Der Grund, warum es in letzter Zeit sehr populär geworden ist, ist die Möglichkeit, sie zu trainieren, und die Leute verwendeten sie, um die neuesten Algorithmen zu übertreffen. DNN benötigt eine Menge Daten und eine Menge Rechenleistung, die vor Jahrzehnten noch nicht verfügbar waren. Geoff Hinton und seine Studenten und Kollegen haben in den letzten zehn Jahren herausgefunden, wie sie in der Praxis trainiert werden können, und haben sie verwendet, um die neuesten Algorithmen für maschinelles Lernen in mehreren Bereichen zu übertreffen, in denen die meisten Forscher die Idee, sie zu dieser Zeit vollständig einzusetzen, vermieden haben.

Glaubensnetzwerke sind eine Klasse von probabilistischen grafischen Modellen. Sie modellieren eine Reihe von Zufallsvariablen und ihre Abhängigkeiten mithilfe eines Diagramms (es gibt verschiedene Möglichkeiten, dies zu tun). Diese Variablen selbst können aus parametrisierten Verteilungen stammen und können von neuronalen Netzen (oder einem anderen Modell zur Darstellung parametrisierter Verteilungen) modelliert werden. Deep Belief Networks sind Glaubensnetzwerke mit relativ hoher Tiefe.

Glaubensnetzwerke sind in der Regel generativ, dh wir können ein trainiertes Modell verwenden, um Stichproben aus der Verteilung zu generieren, die es darstellt.

Neuronale Netze sind tendenziell diskriminativ. Wir können sie verwenden, um die Wahrscheinlichkeit einer bestimmten Eingabe zu berechnen (ist dies ein Bild einer Katze? Wie groß ist die Wahrscheinlichkeit, dass dies ein Bild einer Katze ist?) Bild einer Katze).


Ich bin kein Experte für ML, also nimm, was ich geschrieben habe, mit einem Körnchen Salz.
Kaveh

-1

Neuronale Netze werden normalerweise dort implementiert, wo verborgene Schichten und quadratische Gleichungen erforderlich sind. Dort, wo Deep-Learning- und Deep-Believe-Netze verwendet werden, wo mehrere verborgene Schichten für die Manipulation von Daten erforderlich sind, genau wie Deep-Boltzmann-Netze.


Für beide sind also versteckte Ebenen erforderlich? Könnten Sie mehrere ausgeblendete Ebenen in normalem NN ausführen? Meinten Sie diese Boltzmann-Netzwerke, Boltzmann-Maschinen? Was ist der Unterschied? Es beantwortet die Frage nicht (oder vielleicht, aber es ist zu unklar).
Evil
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.