[PYTHON] Versuchen Sie SNN mit BindsNET

Ich habe im vorherigen Artikel versucht, Brian2 zu verwenden, aber dieses Mal werde ich BindsNET verwenden, eine Software, die SNN implementieren kann.

SNN (Spiking Neural Network) ist der Neurophysiologie näher als das derzeitige Deep Learning, und das Lernen wird mithilfe einer Simulation der neuronalen Aktivität durchgeführt. SNN und BindsNET werden auch in [diesem Artikel] vorgestellt (https://qiita.com/arakiii/items/b076a5c9e57c08c49a9a).

GitHub:https://github.com/BindsNET/bindsnet Papier: https://www.frontiersin.org/articles/10.3389/fninf.2018.00089/full Dokumentation: https://bindsnet-docs.readthedocs.io/

Während NEURON und Brian2 hauptsächlich für Simulatoren verwendet werden, wird BindsNET hauptsächlich als Software für maschinelles Lernen verwendet. BindsNET basiert auf PyTorch und kann auch GPU verwenden. Es scheint, dass BindsNET nicht nur überwachtes und unbeaufsichtigtes Lernen implementieren kann, sondern auch verbessertes Lernen.

Installation

Die Umwelt ist Ubuntu 16.04 CUDA 10 Anaconda Python 3.6 ist.

pip install bindsnet

Sie haben es jetzt installiert. Die Version war 0.2.7.

Wenn dies jedoch unverändert bleibt, tritt beim Ausführen der Demo ein Fehler auf. Die Problemumgehung bestand darin, die Version von Pytorch zu ändern und auf pytorch == 1.2.0 neu zu installieren.

Probieren Sie die Demo aus

Laden Sie es zuerst mit dem Git-Klon herunter.

git clone https://github.com/BindsNET/bindsnet.git

Es gibt verschiedene Demos in bindsnet / examples /. Lassen Sie uns vorerst eine Demo des überwachten Lernens durchführen.

cd examples/mnist/
python supervised_mnist.py

Die Fertigstellung dauerte ungefähr 20 Minuten, aber es funktionierte. Ich konnte die GPU mit der Option --gpu verwenden, aber es wurde nicht schneller. (Eher etwas langsamer.) Ich war auch besorgt, dass das Testergebnis nicht sehr gut war.

Ich werde auch eine Demo des unbeaufsichtigten Lernens durchführen (Diehl & Cook).

python eth_mnist.py

Dies scheint mehrere Stunden zu dauern.

Weitere Demonstrationen umfassten selbstorganisierende Karten (SOM), Reservoir-Computing und erweitertes Lernen.

Implementierungsmethode

Gemäß der Dokumentation ist die Implementierungsmethode (1) Schaffung eines Netzwerks und (2) Definition von Lernregeln Es scheint zwei Dinge zu tun. Beim Erstellen eines Netzwerks werden LIF-Neuronen usw. als Schichten definiert und verbunden. Bei der Definition von Lernregeln legen wir Lernregeln wie das Hebb-Gesetz und das STDP-Gesetz für die Kopplung fest.

Schließlich

BindsNET kann die ODE der Nervendynamik nicht lösen, aber es scheint, dass das Lernen durch SNN leicht durchgeführt werden kann. Das maschinelle Lernen mit SNN wird derzeit noch in verschiedenen Entwicklungsbereichen untersucht, und BindsNET könnte eine wichtige Rolle spielen.

Recommended Posts

Versuchen Sie SNN mit BindsNET
Versuchen Sie es mit Python.
Versuchen Sie eine Regression mit TensorFlow
Versuchen Sie, den Boden durch Rekursion herauszufordern
Versuchen Sie die Funktionsoptimierung mit Optuna
Versuchen Sie es mit TensorFlow
Versuchen Sie, PythonTex mit Texpad zu verwenden.
Versuchen Sie die Kantenerkennung mit OpenCV
Versuchen Sie, RBM mit Chainer zu implementieren.
Versuchen Sie Google Mock mit C.
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie die GUI-Programmierung mit Hy
Versuchen Sie Auto Encoder mit Pytorch
Probieren Sie die Python-Ausgabe mit Haxe 3.2 aus
Versuchen Sie die Matrixoperation mit NumPy
Versuchen Sie, CNN mit ChainerRL auszuführen
Probieren Sie verschiedene Dinge mit PhantomJS aus
Versuchen Sie, Python mit Try Jupyter auszuführen
Versuchen Sie, Parfüm mit Go zu implementieren
Probieren Sie Selenium Grid mit Docker aus
Versuchen Sie die Gesichtserkennung mit Python
Probieren Sie OpenCV mit Google Colaboratory aus
Versuchen Sie es mit Kaggle leicht maschinell
Versuchen Sie TensorFlow MNIST mit RNN
Versuchen Sie, Jupyter Hub mit Docker zu erstellen
Versuchen Sie es mit Folium mit Anakonda
Probieren Sie Deep Learning mit FPGA-Select-Gurken aus
Versuchen Sie es mit Python + Beautiful Soup
Lernen stärken 13 Probieren Sie Mountain_car mit ChainerRL aus.
Versuchen Sie, Facebook mit Python zu betreiben
Versuchen Sie die Singularwertzerlegung mit Python
Versuchen Sie, Pferderennen mit Chainer vorherzusagen
Versuchen Sie, sich mit ONNX Runtime zu profilieren
SVM versucht maschinelles Lernen mit Scikit-Learn
Probieren Sie L Chika mit Himbeerpi
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Versuchen Sie, Jupyter mit VS-Code auszuführen
Versuchen Sie, Bitcoin mit Pythons Hashlib abzubauen
Anfänger RNN (LSTM) | Versuchen Sie es mit Keras
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Versuchen Sie die Frequenzsteuerungssimulation mit Python
Versuchen Sie, das Bild mit opencv2 zu verwischen
Versuchen Sie Common Representation Learning mit Chainer
Versuchen Sie, Audio mit M5 STACK auszugeben
Versuchen Sie Daten parallel zu Distributed TensorFlow
Versuchen Sie, Pythons networkx mit AtCoder zu verwenden
[PyStan] Probieren Sie Graphical Lasso mit Stan aus.
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Versuchen Sie eine Formel mit Σ mit Python
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Versuchen Sie, XOR mit der Keras Functional API zu implementieren
Probieren Sie den Variational-Quantum-Eigensolver (VQE) -Algorithmus mit Blueqat aus
Versuchen Sie, mit matplotlib eine Normalverteilung zu zeichnen
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Probieren Sie die Bitcoin-Preisprognose mit Deep Learning aus
Versuchen Sie es mit Chainer Deep Q Learning - Launch
Versuchen wir es mit gRPC mit Go und Docker
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen