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?
machine-learning
neural-networks
boltzmann-machine
Lyndon White
quelle
quelle
Antworten:
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.
quelle
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).
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.
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).
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):
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.
Eine genauere Zeitleiste der künstlichen Intelligenz finden Sie hier .
quelle
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).
quelle
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.
quelle