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 .