Apropos Neuronensimulator: NEURON der Yale University ist berühmt. Dies ist ein Simulator aus neurowissenschaftlicher Sicht, aber aus technischer Sicht BRIAN und [BindsNET](https: // bindsnet-docs). .readthedocs.io /) und so weiter.
Alle Bibliotheken funktionieren in Python und sind sehr gut gemacht, aber ** Wäre es nicht schön, eine Bibliothek zu haben, die Neuronen einfacher simulieren könnte? Ich dachte **.
Deshalb! Ich machte! !! (Obwohl es möglicherweise nicht viel Nachfrage gibt!)
Alles was Sie (vorerst) brauchen, ist NumPy und Matplotlib. Um ehrlich zu sein, ist es nicht so groß, dass es als Bibliothek bezeichnet wird, aber SPINE kann die folgenden Modelle simulieren.
Im IF / LIF-Modell kann der Spike-Response-Kernel auch als einfach exponentiell oder doppelt exponentiell ausgewählt werden.
SPINE ist weder technisch noch wissenschaftsspezifisch. Wie auch immer, ich mache es mit der Hoffnung, Anfängern in den Neurowissenschaften und spikierenden Neuronen zu helfen, mit dem Lernen zu beginnen. Die Quelle wird am Ende des Artikels veröffentlicht.
Schauen Sie sich an, wie es tatsächlich funktioniert.
** Simulieren Sie die Aktivität von LIF-Neuronen, die Eingaben von 10 vorderen Neuronen erhalten **. Wenn zu diesem Zeitpunkt die Eingabespitzensequenz (Ausgangsspitzensequenz des vorherigen Neurons) die Poisson-Spitzensequenz ist, wird sie wie folgt codiert.
ref: Poisson Spike während der Implementierung in Python --Qiita zu verstehen
from spine import LIF, PoissonSpike
from spine.tools.plotting import plot_spike_scatter
import numpy as np
import matplotlib.pyplot as plt
if __name__ == '__main__':
duration = 500 # [ms]Experimentierzeit
dt = 0.1 # [ms] time step
time = int(duration / dt)
# Input data from Poisson Spike Gen.
#Generieren Sie eine Poisson-Spike-Sequenz, die aus einer Zufallszahl eingegeben werden soll
spikes = PoissonSpike(np.random.random(10),
time=duration,
dt=dt).spikes
#Angemessenes Gewicht
weights = np.random.random(10) + 5.0
#Definieren Sie LIF-Neuronen(Double exp filter)
neu = LIF(duration,
dt,
k='double', # use double exponential filter
)
#Berechnen Sie das Membranpotential, indem Sie die Sequenz und das Gewicht der Eingangsspitzen übergeben
#Gibt das Membranpotential, die Ausgangsspitze und die Zündzeit zurück
v, s, f = neu.calc_v((spikes, weights))
# Plot
t = np.arange(0, duration, dt)
plt.subplot(2, 1, 1)
plot_spike_scatter(spikes, duration, dt, title='input spike trains', xlabel=None)
plt.subplot(2, 1, 2)
plt.plot(t, v)
plt.plot(t, np.full_like(t, neu.th), linestyle='dashed')
plt.ylabel('Membrane Voltage [mV]')
plt.xlabel('time [ms]')
plt.xlim(0, duration)
plt.show()
Es ist so.
Natürlich können Hyperparameter wie die Zündschwelle beim Generieren von LIF als Argumente übergeben werden, sodass detaillierte experimentelle Einstellungen möglich sind.
Für solche Leute ist ein Beispielcode auf Github verfügbar.
$ python if_sample.py #IF-Modell
$ python lif_sample.py #LIF-Modell
$ python hh_sample.py # Hodgkin-Huxley-Modell
$ python fhn_sample.py # FitzHugh-Nagumo-Modell
Ich denke, es ist auch eine Ameise, die notwendigen Teile dieses Inhalts zu ändern und zu simulieren. Das tatsächlich erzeugte Bild wird auf Github veröffentlicht.
Eigentlich gibt es diese Bibliothek schon eine Weile, aber da der Code organisiert und recht einfach zu bedienen ist, habe ich beschlossen, ihn auch auf Qiita einzuführen.
SPINE ist ein Nebenprodukt dessen, was ich gelernt habe. Es ist also ein wirklich einfacher Neuronensimulator, aber wie ich am Anfang hoffe ich persönlich, dass dies ** Neurowissenschaften und SNN-Anfängern beim Lernen hilft **.
Wir werden es von Zeit zu Zeit weiter aktualisieren. Wenn Sie also "Ja" denken, schauen Sie sich bitte die Github-Quelle an. Ich bin froh, wenn du mir einen Stern gibst.
:warning: SPINE geht nicht von einer großflächigen SNN-Konstruktion aus. Es ist ein einfacher Neuronensimulator zur Überprüfung der Operation. BindsNET wird für diejenigen empfohlen, die SNN erstellen und Bildverarbeitung durchführen möchten.
Source HiroshiARAKI/spine: SPINE is a simple Spiking Neuron simulator
Documentation https://spine.hirlab.net/
Recommended Posts