Antworten:
Dies geht rückwärts, folgt aber irgendwie der Logik der Argumente.
In Bezug auf die Effizienz sehe ich einige Hauptprobleme bei klassischen neuronalen Netzen.
Große neuronale Netze erfordern zum Trainieren viele Daten. Die Menge kann abhängig von der Größe des Netzwerks und der Komplexität der Aufgabe variieren, ist jedoch in der Regel proportional zur Anzahl der Gewichte. Für einige überwachte Lernaufgaben gibt es einfach nicht genügend qualitativ hochwertige beschriftete Daten. Das Sammeln großer Mengen spezialisierter Trainingsdaten kann Monate oder sogar Jahre dauern, und die Kennzeichnung kann umständlich und unzuverlässig sein. Dies kann teilweise durch Datenerweiterung gemildert werden, was bedeutet, dass mehr Beispiele aus den bereits vorhandenen "synthetisiert" werden, aber es ist kein Allheilmittel.
Die Lernrate ist normalerweise ziemlich gering, so dass der Trainingsfortschritt langsam ist. Ein großes Modell, dessen Training auf einer Desktop-CPU Wochen dauern kann, kann beispielsweise in zwei Stunden mit einem GPU-Cluster trainiert werden, der mehrere kW Strom verbraucht. Dies ist aufgrund der Art des Trainingsverfahrens ein grundlegender Kompromiss. Die GPUs werden jedoch immer effizienter - beispielsweise ermöglicht die neue GPU-Architektur von nVidia Volta 15,7 TFLOPs bei einem Verbrauch von weniger als 300 W.
Derzeit erfordert praktisch jedes unterschiedliche Problem, dass ein benutzerdefiniertes neuronales Netzwerk entworfen, geschult und bereitgestellt wird. Während oft die Lösung funktioniert, ist es Art von gesperrt in dieses Problem. Zum Beispiel ist AlphaGo bei Go brillant, aber es wäre hoffnungslos, ein Auto zu fahren oder Musikempfehlungen zu geben - es wurde einfach nicht für solche Aufgaben entwickelt. Diese überwältigende Redundanz ist meiner Ansicht nach ein großer Nachteil neuronaler Netze und ein großes Hindernis für den Fortschritt der neuronalen Netzforschung im Allgemeinen. Es gibt ein ganzes Forschungsgebiet namens TransferlernenHier geht es darum, Wege zu finden, wie ein für eine Aufgabe geschultes Netzwerk auf eine andere Aufgabe angewendet werden kann. Dies hängt häufig mit der Tatsache zusammen, dass möglicherweise nicht genügend Daten vorhanden sind, um ein Netzwerk bei der zweiten Aufgabe von Grund auf zu trainieren. Daher ist es sehr ansprechend, ein vorab trainiertes Modell mit einer zusätzlichen Optimierung verwenden zu können.
Der erste Teil der Frage ist schwieriger. Abgesehen von rein statistischen Modellen habe ich keine herausragenden Ansätze für maschinelles Lernen gesehen, die sich grundlegend von neuronalen Netzen unterscheiden. Es gibt jedoch einige interessante Entwicklungen, die erwähnenswert sind, da sie einige der oben genannten Ineffizienzen beheben.
Zuerst ein bisschen Hintergrund.
Spiking Neuronale Netze haben ein enormes Potenzial an Rechenleistung. Tatsächlich wurde nachgewiesen, dass sie strikt leistungsfähiger sind als klassische neuronale Netze mit Sigmoidaktivierungen.
Hinzu kommt , dass spiking neuronale Netze haben ein intrinsisches Verständnis der Zeit - etwas , das eine große Hürde für klassische Netzwerke seit ihrer Gründung gewesen. Darüber hinaus sind Spiking-Netzwerke ereignisgesteuert , was bedeutet, dass Neuronen nur dann funktionieren, wenn ein Signal eingeht. Dies steht im Gegensatz zu klassischen Netzwerken, in denen jedes Neuron unabhängig von seiner Eingabe bewertet wird (dies ist wiederum nur eine Folge des Bewertungsverfahrens, das normalerweise als Multiplikation von zwei dichten Matrizen implementiert wird). Spiking-Netzwerke verwenden daher ein spärliches Codierungsschema, was bedeutet, dass zu einem bestimmten Zeitpunkt nur ein kleiner Teil der Neuronen aktiv ist.
Die spärliche spike-basierte Codierung und der ereignisgesteuerte Betrieb eignen sich nun für hardwarebasierte Implementierungen von Spike-Netzwerken, die als neuromorphe Chips bezeichnet werden . Beispielsweise kann der TrueNorth- Chip von IBM 1 Million Neuronen und 256 Millionen Verbindungen simulieren, während durchschnittlich nur etwa 100 mW Leistung verbraucht werden. Dies ist um Größenordnungen effizienter als die aktuellen nVidia-GPUs. Neuromorphe Chips können die Lösung für den oben erwähnten Kompromiss zwischen Trainingszeit und Energie sein.
Auch Memristoren sind eine relativ neue, aber sehr vielversprechende Entwicklung. Grundsätzlich ist ein Memristor ein grundlegendes Schaltungselement, das einem Widerstand sehr ähnlich ist, dessen variabler Widerstand jedoch proportional zur Gesamtmenge des Stroms ist, der über seine gesamte Lebensdauer durch ihn geflossen ist. Dies bedeutet im Wesentlichen, dass ein "Speicher" der durch ihn fließenden Strommenge aufrechterhalten wird. Eine der aufregenden Anwendungsmöglichkeiten von Memristoren ist die äußerst effiziente Modellierung von Synapsen in Hardware.
Ich denke, diese sind erwähnenswert, weil sie vielversprechende Kandidaten sind, um das Problem der Nichtübertragbarkeit anzugehen. Diese sind nicht auf neuronale Netze beschränkt. Da sie von Belohnungen gesteuert werden, sind RL und Evolution theoretisch in einer generischen Umgebung auf jede Aufgabe anwendbar, bei der es möglich ist, eine Belohnung oder ein Ziel zu definieren, das ein Agent erreichen soll. Dies ist nicht unbedingt trivial, aber viel allgemeiner als der übliche fehlergesteuerte Ansatz, bei dem der Lernagent versucht, den Unterschied zwischen seiner Ausgabe und einer Grundwahrheit zu minimieren. Der wichtigste Punkt hier ist , über Transfer Lernen: Im Idealfall, einen ausgebildeten Agenten auf eine andere Aufgabe der Anwendung sollte so einfach , das Ziel oder eine Belohnung (noch auf dieser Ebene sind sie nicht ganz, aber ...) als zu ändern.
In particular it is shown that networks of spiking neurons are, with regard to the number of neurons that are needed, computationally more powerful than these other neural network models.
max(0, x)
) ist sehr gefährdet stecken bleiben x < 0
, was zu toten Neuronen führt. In jedem Fall geht es um die Rechenleistung von Spike-Netzen und deren hocheffiziente Hardware-Implementierung im Hinblick auf den Stromverbrauch.
Neuronale Netze ersetzen
Möglicherweise gibt es neue Algorithmen, die neuronale Netze ersetzen können. Eines der Merkmale neuronaler Netze ist jedoch, dass sie einfache Elemente verwenden, die jeweils geringe Anforderungen an die Rechenressourcen in geometrischen Mustern stellen.
Künstliche Neuronen können parallel ausgeführt werden (ohne CPU-Zeitteilung oder Schleifenbildung), indem die Berechnungen DSP-Geräten oder anderer paralleler Computerhardware zugeordnet werden. Dass die vielen Neuronen im Wesentlichen gleich sind, ist daher ein starker Vorteil.
Was würden wir ersetzen?
Wenn wir algorithmische Ersetzungen für neuronale Netze betrachten, implizieren wir, dass ein neuronales Netzdesign ein Algorithmus ist. Es ist nicht.
Ein neuronales Netz ist ein Ansatz zur Konvergenz auf einer Echtzeitschaltung, um eine nichtlineare Transformation von Eingabe zu Ausgabe durchzuführen, basierend auf einer Formulierung dessen, was optimal ist. Eine solche Formulierung kann die Minimierung eines Maßes für Fehler oder Abweichung von einem definierten Ideal sein. Es kann ein Maß für das Wohlbefinden sein, das maximiert werden muss.
Die Quelle der Fitnessbestimmung für ein bestimmtes Netzwerkverhalten kann intern sein. Wir nennen das unbeaufsichtigtes Lernen. Es kann extern sein, was wir als überwacht bezeichnen, wenn die externen Fitnessinformationen mit Eingabevektoren in Form gewünschter Ausgabewerte gekoppelt sind, die wir als Bezeichnungen bezeichnen.
Fitness kann auch extern als Skalar oder Vektor entstehen, der nicht mit den Eingabedaten gekoppelt ist, sondern in Echtzeit, was wir Verstärkung nennen. Dies erfordert neu eintretende Lernalgorithmen. Die Netto-Verhaltenseignung kann alternativ von anderen Netzen innerhalb des Systems bewertet werden, im Fall von gestapelten Netzen oder anderen Konfigurationen wie Laplace-Hierarchien.
Die Auswahl von Algorithmen hat wenig mit vergleichender Intelligenz zu tun, sobald die mathematischen und Prozessdesigns ausgewählt sind. Das Design von Algorithmen hängt direkter mit der Minimierung des Bedarfs an Rechenressourcen und der Reduzierung des Zeitbedarfs zusammen. Diese Minimierung hängt auch von der Hardware und dem Betriebssystem ab.
Wird ein Ersatz angezeigt?
Sicher. Es wäre besser, wenn Netzwerke eher Säugetierneuronen ähneln würden.
Mit regionaler Signalübertragung sind die vielen chemischen Signale gemeint, die über die Signalübertragung über Synapsen hinausgehen.
Wir können sogar darüber nachdenken, über die Neurologie von Säugetieren hinauszugehen.
Neuronale Netzeffizienz
Der Wirkungsgrad kann in keiner universellen Skala quantifiziert werden, da die Temperatur in Grad Kelvin quantifiziert werden kann. Die Effizienz kann nur als Quotient eines gemessenen Wertes über ein theoretisches Ideal quantifiziert werden. Beachten Sie, dass es sich im Nenner um ein Ideal und nicht um ein Maximum handelt. Bei thermodynamischen Motoren ist dieses Ideal die Energieeintragsrate, die niemals vollständig auf die Leistung übertragen werden kann.
Ebenso können neuronale Netze niemals in der Nullzeit lernen. Ein neuronales Netz kann auch in der Produktion über einen beliebig langen Zeitraum keinen Nullfehler erreichen. Daher ist Information in gewisser Weise wie Energie, ein Konzept, das Claude Shannon von Bell Labs zu Beginn der digitalen Automatisierung untersucht hat, und die Beziehung zwischen Informationsentropie und thermodynamischer Entropie ist heute ein wichtiger Bestandteil der theoretischen Physik.
Es kann keine schlechte oder gute Lerneffizienz geben. Es kann weder eine schlechte noch eine gute Leistung geben, wenn wir logisch und wissenschaftlich denken möchten - nur eine relative Verbesserung einer Systemkonfiguration im Vergleich zu einer anderen Systemkonfiguration für einen ganz bestimmten Satz von Leistungsszenarien.
Ohne eine eindeutige Spezifikation der beiden Hardware-, Betriebssystem- und Softwarekonfigurationen und eine vollständig definierte Testsuite, die für die relative Bewertung verwendet wird, ist die Effizienz daher bedeutungslos.
Wir haben Hoffnung, dass in dieser Front lauert. Ab sofort haben wir Kapsel Netzwerke von J.Hinton , die eine andere nichtlineare Aktivierung der ‚Squash‘ Funktion aufgerufen verwendet.
Kapselnetzwerke selbst weisen einige Mängel auf. Es wurde also daran gearbeitet, über neuronale Netze hinauszuschauen. Sie können diesen Blog zum besseren Verständnis lesen, bevor Sie den Artikel von J.Hinton lesen.
Neuronale Netze erfordern viele Daten und Schulungen. Für die meisten Datasets im Tabellenformat ist es viel besser, entscheidungsbaumbasierte Modelle zu verwenden. Meistens reichen einfache Modelle aus, um eine gute Genauigkeit zu erzielen. Neuronale Netze hatten jedoch ihren Zeittest. Es ist erst fünf bis sechs Jahre her, dass die Revolution des tiefen Lernens begann, daher kennen wir die wahre Kraft des tiefen Lernens immer noch nicht.