Was sind die Hauptunterschiede zwischen Spiking Neural Network und Deep Learning?


7

Deep Learning, heute eines der beliebtesten Gebiete im künstlichen neuronalen Netz, hat sich hinsichtlich seiner Genauigkeit bei Datensätzen als vielversprechend erwiesen. Wie ist es mit Spiking Neural Network zu vergleichen. Vor kurzem hat Qualcomm seinen nullten Prozessor für SNN vorgestellt. Daher habe ich mir überlegt, ob es einen Unterschied gibt, wenn stattdessen Deep Learning verwendet wird.


3
Ich bin kein Experte für KI, aber diese Frage hat das Gefühl: "Dieser Apfelkuchen ist ziemlich gut. Was wären die Hauptunterschiede, wenn wir stattdessen Birnen verwenden würden?"
Raphael

2
Bevor Sie hier Fragen stellen, müssen Sie einige Nachforschungen anstellen und versuchen, die Frage selbst zu beantworten. Was hast du dir angesehen? Gibt es einen bestimmten Aspekt von SNNs, den Sie mit Deep Learning vergleichen möchten, oder backen Sie Kuchen mit @Raphael? :-)
David Richerby

Der Hauptpunkt beim tiefen Lernen ist eher die Zeitdauer und die (große) Anzahl der Neuronen. man kann verschiedene neuronale Netzarchitekturen verwenden. Ich habe noch nichts von SNN gehört, das für tiefes Lernen verwendet wird, aber im Prinzip scheint es, dass es von jemandem getestet werden könnte. Es ist noch nicht wirklich bekannt, warum einige neuronale Algorithmen für tiefes Lernen besser zu skalieren scheinen als andere. "In der Praxis gibt es einen großen Unterschied zwischen der theoretischen Kraft des Spikens neuronaler Netze und dem, was gezeigt wurde. Sie haben sich in den Neurowissenschaften als nützlich erwiesen, aber (noch) nicht in der Technik."
VZN

@ vzn SNNs, die mit dem Neural Engineering Framework erstellt wurden, wurden in verschiedenen technischen Anwendungen wie der Arm- und Quadrocopter- Steuerung eingesetzt.
Seanny123

Antworten:


11

Kurze Antwort:

Genau genommen beziehen sich "Deep" und "Spiking" auf zwei verschiedene Aspekte eines neuronalen Netzwerks: "Spiking" bezieht sich auf die Aktivierung einzelner Neuronen, während sich "Deep" auf die gesamte Netzwerkarchitektur bezieht. Im Prinzip gibt es also keinen Widerspruch zu einem spitzen, tiefen neuronalen Netzwerk (tatsächlich ist das Gehirn wohl ein solches System).

In der Praxis arbeiten die derzeitigen Ansätze für DL und SNN jedoch nicht gut zusammen. Insbesondere beruht Deep Learning, wie es derzeit praktiziert wird, typischerweise auf einer differenzierbaren Aktivierungsfunktion und kann daher diskrete Spike-Züge nicht gut handhaben.

Weitere Details:

Echte Neuronen kommunizieren über diskrete Spannungsspitzen. Beim Erstellen von Hardware hat Spiking einige Vorteile hinsichtlich des Stromverbrauchs, und Sie können Spikes wie Datenpakete (Address Event Representation oder VRE) weiterleiten, um die im Gehirn vorhandene Konnektivität zu emulieren. Das Dotieren ist jedoch ein lauter Prozess. Im Allgemeinen bedeutet eine einzelne Spitze nicht viel, daher ist es in der Software üblich, die Spikedetails zu abstrahieren und eine einzelne skalare Spitzenrate zu modellieren. Dies vereinfacht viele Dinge, insbesondere wenn Ihr Ziel maschinelles Lernen und nicht biologische Modellierung ist.

Die Schlüsselidee von Deep Learning besteht darin, mehrere Schichten von Neuronen zu haben, wobei jede Schicht auf der Grundlage der vorherigen Schicht immer komplexere Merkmale lernt. In einer Vision-Einstellung lernt beispielsweise die unterste Ebene einfache Muster wie Linien und Kanten, die nächste Ebene kann Kompositionen der Linien und Kanten (Ecken und Kurven) lernen, die nächste Ebene kann einfache Formen lernen und so weiter in der Hierarchie . Die oberen Ebenen lernen dann komplexe Kategorien (Menschen, Katzen, Autos) oder sogar bestimmte Instanzen (Ihr Chef, Ihre Katze, das Batmobil). Ein Vorteil davon ist, dass die Funktionen der untersten Ebene generisch genug sind, um auf viele Situationen angewendet zu werden, während die oberen Ebenen sehr spezifisch werden können.

Die kanonische Methode zum Trainieren von Spike-Netzwerken ist eine Form der Spike Timing Dependent Plasticity (STDP) , die Verbindungen basierend auf korrelierten Aktivitäten lokal verstärkt. Die kanonische Methode zum Trainieren eines tiefen neuronalen Netzwerks ist eine Form der Gradientenabstiegs -Rückausbreitung, bei der alle Gewichte basierend auf dem globalen Verhalten des Netzwerks angepasst werden. Gradientenabstieg hat Probleme mit nicht differenzierbaren Aktivierungsfunktionen (wie diskreten stochastischen Spitzen).

Wenn Sie sich nicht für das Lernen interessieren, sollte es einfacher sein, die Ansätze zu kombinieren. Man könnte vermutlich ein vorab trainiertes tiefes Netzwerk nehmen und nur den Feed-Forward-Teil (kein weiteres Lernen) als spikierendes neuronales Netz implementieren (vielleicht um es auf einen Chip zu setzen). Der resultierende Chip würde nicht aus neuen Daten lernen, sondern sollte die Funktion implementieren, für die das ursprüngliche Netzwerk trainiert wurde.


1
Ich habe kürzlich eine Präsentation auf einem SNN gesehen, die mit nur ein paar Dutzend Bildern trainiert wurde und angesichts der geringen Stichprobengröße erstaunlich genau war. Arbeiten die Leute angesichts dieser Vorteile daran, wie sie mit SNNs so etwas wie tiefes Lernen machen können? Würde der in diesem kürzlich erschienenen Artikel arxiv.org/abs/1407.7906 beschriebene Ansatz "Wie Auto-Encoder die Kreditvergabe in Deep Networks über die Zielausbreitung ermöglichen könnten" es realistisch machen, Deep Learning mit SNNs durchzuführen (da es nicht auf Back Propagation beruht) )?
Jason Livesay

5

Die größte mir bekannte Anwendung von SNNs ist Spaun , dessen neuronale Netze mit dem Neural Engineering Framework und dem neuronalen Nengo-Simulator erstellt wurden .

Die Unterscheidung zwischen SNNs und Deep Learning, insbesondere in Spaun, ist eine Grauzone. Spaun verwendet modifizierte Deep-Learning-Techniken in seinem Bildverarbeitungssystem zur Ziffernerkennung. Im Wesentlichen wird eine Spitzenversion eines konstitutionellen neuronalen Netzwerks verwendet.

In jüngerer Zeit wurde die gleiche Technik zur Umwandlung von Deep-Learning-Ansätzen in Spike-Neuronen zur Verwendung in neuromorpher Hardware (wie Spinnaker und Brainstorm für geringere Latenz und höhere Energieeffizienz ) auf Convolutional Neural Networks angewendet .

Die Unterschiede gehen viel tiefer als das, was ich hier erwähnt habe (wie SNNs dynamische Systeme und andere nichtlineare Funktionen ohne Training approximieren können), aber leider gibt es keine einfache Möglichkeit, sie zusammenzufassen. Wenn Sie weitere Informationen wünschen, lesen Sie "Wie man ein Gehirn aufbaut" von Chris Eliasmith, um einen besseren Überblick darüber zu erhalten, wie SNNs zur Erstellung künstlicher Intelligenz verwendet werden.

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.