[PYTHON] Simulieren wir das Izhikevich-Neuronenmodell im Web!

Einführung

Ich bin kein Spezialist für Neurowissenschaften, aber solange ich mich mit spikierenden neuronalen Netzen beschäftige, ist die Neurowissenschaft ein untrennbares Gebiet.

Das tiefe neuronale Netzwerk, das auf den Straßen berühmt ist, ist auch eine Sammlung mathematischer Modelle von Nervenzellen, die als ** formale Neuronenmodelle ** bezeichnet werden. Formale Neuronen haben keine Zeitreihendaten und sind ein ziemlich altes Modell, das 1943 als Nervenzellmodell vorgeschlagen wurde, aber sie werden immer noch verwendet, weil sie heute mit Deep Learning kompatibel sind. ..

Auf dem Gebiet der Neurowissenschaften wurden jedoch natürlich viele weitere biologisch anspruchsvolle mathematische Modelle von Nervenzellen geboren. Diese haben normalerweise Konzepte wie "Membranpotential" und "Spikes", und solche Modelle werden als "Spiking Neuron Models" (SNM) bezeichnet. Wenn es in das Netzwerk aufgenommen wird, heißt es außerdem ** Spiking Neural Network (SNN) **. Lesen Sie für SNN mein altes Buch What is the Spiking Neural Network.

Izhikevich Neuron Model (2003) Das Thema dieser Zeit ist übrigens ** Izhikevich Neuron Model **, das unter den Spiking Neuron Models bekannt ist. Das LIF-Modell wird häufig in der technischen Forschung verwendet, aber dieses Izhikevich-Modell wird häufig (glaube ich) in der medizinisch orientierten Forschung verwendet.

Der Grund ist, dass das Izhikevich-Modell die Aktivitäten verschiedener Neuronen einfach durch Ändern der Parameter nachahmen kann. Darüber hinaus weist es nicht die Komplexität des Hodgkin-Huxley-Modells auf und hat den großen Vorteil, das detaillierte Verhalten von Nervenzellen effizient simulieren zu können. (Ref. Versuchen Sie, das Hodgkin-Huxley-Neuronenmodell zu implementieren)

Das Izhikevich-Modell besteht aus den folgenden zwei Differentialgleichungen. $\frac{dv}{dt}=0.04v^{2} + 5v + 140 -u + I$ $\frac{du}{dt}=a(bv-u)$ ${\rm if}\ \ v\geq30,\ \ {\rm then}\ \ v\leftarrow c,\ u\leftarrow u+d$

Zu diesem Zeitpunkt ist $ v $ das Membranpotential [mV], $ t $ ist die Zeit [ms], $ u $ ist die Variable, die als Wiederherstellungsvariable bezeichnet wird, und $ I $ ist der Eingangsstrom von der Außenwelt. Außerdem ist $ (a, b, c, d) $ ein Hyperparameter. $ a $ ist eine Konstante (Zeitkonstante), die steuert, wie stark $ u $ im Laufe der Zeit gedämpft wird, $ b $ ist die Empfindlichkeit von $ u $ gegenüber $ v $, $ c $ ist das Ruhepotential des Films und $ d $ ist Es ist eine Konstante, die die Zeit beeinflusst, die das Membranpotential benötigt, um sich nach dem Entzünden von $ v $ zu erholen.

Nun, ich glaube nicht, dass ich verstehen kann, selbst wenn so etwas geschrieben ist, also lasst es uns tatsächlich verschieben.

Izhikevich Neuron Simulator Ich habe einen Simulator erstellt, der im Web funktioniert.

Izhikevich Neuron Simulator - Ein Neuronensimulator, der im Web ausgeführt wird-

Das Backend ist Python (Flask / NumPy) und die Grafikzeichnung ist Javascript.

Eine ähnliche Modellerklärung und ein Beispiel für die Parametereinstellung sind ebenfalls geschrieben. Spielen Sie daher bitte entsprechend. Sie können es auf Ihrem Smartphone verwenden, aber es wird die Zeichnung zerstören, daher ** PC oder Tablet empfohlen **. Bei einem Smartphone ist es möglicherweise besser, es seitlich zu halten.

Wenn Sie beispielsweise die Standardeinstellungen beibehalten und $ I_ {DC} $ aktivieren und simulieren. izh_simu.png $⬇️$ rs.png

Auf diese Weise werden das Membranpotential $ v $ und die Wiederherstellungsvariable $ u $ gezogen, die gemäß dem bestimmten Eingangsstrom berechnet wurden.

Da die Zeitauflösung zum Zeitpunkt der Berechnung im Detail auf $ dt = 2 ^ {-5} $ eingestellt ist, kann das Chaos vorerst bestätigt werden. chaos.png (Ist das Chaos? Bitte lassen Sie mich wissen, wenn Sie damit vertraut sind.)

abschließend

Dieser Artikel war ein Einführungsartikel zu Webanwendungen. (Persönlich würde ich mich freuen, wenn Sie es für Anfänger in den Neurowissenschaften oder als kleine Anleitung verwenden könnten ...)

Es ist in Ordnung, nur zu spielen, also hoffe ich, dass sich mehr Menschen für Neurowissenschaften interessieren, wenn sie es benutzen! Wenn Sie Probleme haben, kommentieren Sie diesen Artikel bitte.

Referenz

  1. Lassen Sie uns die neuronale Aktivität mit einer Differentialgleichung ausdrücken, Yuji Ikeya
  2. Simple Model of Spiking Neurons, M. Izhikevich, 2003

Recommended Posts

Simulieren wir das Izhikevich-Neuronenmodell im Web!
Lassen Sie uns die Hyperparameter des Modells mit scikit-learn abstimmen!
Laden Sie mit Python Dateien im Web herunter
Veröffentlichen Sie das aktuelle Verzeichnis auf dem Webserver
Lassen Sie Pandas die Zip-Datei im Web lesen
Passen Sie die Modellseite des Django-Verwaltungsbildschirms an
Bis die Webanwendung mit Sakura VPS veröffentlicht wird
Überwachen Sie das Trainingsmodell mit TensorBord auf Jupyter Notebook
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
Machen Sie das Modell zu einer Zeichenfolge in der Django-HTML-Vorlage
Führen Sie einen Befehl auf dem Webserver aus und zeigen Sie das Ergebnis an