Share to: share facebook share twitter share wa share telegram print page

NEST (programari)

NEST (eina de simulació neuronal)
Modifica el valor a Wikidata
Modifica el valor a Wikidata
Tipusprogramari lliure Modifica el valor a Wikidata
LlicènciaGNU General Public License Modifica el valor a Wikidata
Característiques tècniques
Escrit enC++ Modifica el valor a Wikidata
Més informació
Lloc webnest-initiative.org Modifica el valor a Wikidata

NEST és un programari de simulació per augmentar models de xarxes neuronals, incloses xarxes neuronals a gran escala. NEST va ser desenvolupat inicialment per Markus Diesmann i Marc-Oliver Gewaltig i ara és desenvolupat i mantingut per la Iniciativa NEST.

Filosofia del modelatge

Una simulació NEST intenta seguir la lògica d'un experiment electrofisiològic que es fa dins d'un ordinador amb la diferència, que el sistema neuronal a investigar ha de ser definit per l'experimentador.

El sistema neuronal està definit per un nombre possiblement gran de neurones i les seves connexions. En una xarxa NEST, poden coexistir diferents models de neurones i sinapsis. Dues neurones qualsevol poden tenir múltiples connexions amb propietats diferents. Així, la connectivitat en general no es pot descriure per una matriu de pes o connectivitat, sinó com una llista d'adjacència.

Per manipular o observar la dinàmica de la xarxa, l'experimentador pot definir els anomenats dispositius que representen els diferents instruments (de mesura i estimulació) que es troben en un experiment. Aquests dispositius escriuen les seves dades a la memòria o a l'arxiu.

NEST és extensible i es poden afegir nous models per a neurones, sinapsis i dispositius.

Exemple

Ràster NEST

L'exemple següent simula l'activitat d'encreuament en una xarxa aleatòria escassa amb excitació i inhibició recurrents[1]

La figura mostra l'activitat d'intensificació de 50 neurones com a trama gràfica. El temps augmenta al llarg de l'eix horitzontal, la id de neurona augmenta al llarg de l'eix vertical. Cada punt correspon a un pic de la neurona respectiva en un moment donat. La part inferior de la figura mostra un histograma amb la velocitat mitjana de disparació de les neurones.

import nest
import nest.raster_plot

J_ex = 0.1  # excitatory weight
J_in = -0.5  # inhibitory weight
p_rate = 20000.0  # external Poisson rate

neuron_params= {"C_m": 1.0, "tau_m": 20.0, "t_ref": 2.0,
                "E_L": 0.0, "V_reset": 0.0, "V_m": 0.0, "V_th": 20.0}

# Set parameters of neurons and devices
nest.SetDefaults("iaf_psc_delta", neuron_params)
nest.SetDefaults("poisson_generator", {"rate": p_rate})
nest.SetDefaults("spike_detector", {"withtime": True, "withgid": True})

# Create neurons and devices
nodes_ex = nest.Create("iaf_psc_delta", 10000)
nodes_in = nest.Create("iaf_psc_delta", 2500)
noise = nest.Create("poisson_generator")
espikes = nest.Create("spike_detector")

# Configure synapse models
nest.CopyModel("static_synapse", "excitatory", {"weight": J_ex, "delay": 1.5})
nest.CopyModel("static_synapse", "inhibitory", {"weight": J_in, "delay": 1.5})

# Connect the random net and instrument it with the devices
nest.Connect(nodes_ex, nodes_ex+nodes_in, {"rule": "fixed_indegree", "indegree": 1000}, "excitatory")
nest.Connect(nodes_in, nodes_ex+nodes_in, {"rule": "fixed_indegree", "indegree": 250}, "inhibitory")
nest.Connect(noise, nodes_ex + nodes_in, syn_spec="excitatory")
nest.Connect(nodes_ex[1:51], espikes)

# Simulate for 100. ms
nest.Simulate(100.0)

# Plot results
nest.raster_plot.from_device(espikes, hist=True)
nest.raster_plot.show()

Característiques

Models de neurones

Models de xarxa

Models de sinapsi

Models de dispositius

  • Detector de pics
  • Multímetre per a potencials, corrents, etc.
  • Generadors de corrent altern, corrent continu i pas
  • Generadors de soroll (Poisson, Gauss, Gamma)
  • Generadors de pics per a la reproducció de pics

Precisió

  • NEST té com a objectiu una gran precisió i precisió de les seves simulacions[2]
  • Cada model de neurona té el seu solucionador adequat i molts models tenen proves unitàries.
  • Si és possible, s'utilitza la integració exacta.[3]
  • Per defecte, els pics cauen a la graella, definida pel pas de temps de simulació. Alguns models admeten l'intercanvi de pics en temps continu.[4]

Simulació paral·lela i distribuïda

  • Suport per a la simulació multifils, utilitzant OpenMP o POSIX Threads.
  • Suport per a la simulació híbrida multifil i distribuïda.
  • La paral·lelització es gestiona de manera semiautomàtica pel nucli de simulació de NEST.
  • Escalat de supra-lineal a lineal per a fins a 10.000 nuclis.[5]

Interoperabilitat

  • Interfície al Coordinador Multi Simulator, desenvolupat per l'INCF.[6]
  • Interfície amb el llenguatge de simulació independent del simulador PyNN.

Referències

  1. Brunel, Nicolas Journal of Computational Neuroscience, 8, 3, 2000, pàg. 183–208. DOI: 10.1023/A:1008925309027. PMID: 10809012.
  2. Henker, S.; Partzsch, J.; Schüffny, R. Journal of Computational Neuroscience, 32, 2, 2012, pàg. 309–326. DOI: 10.1007/s10827-011-0353-9. PMID: 21837455.
  3. Rotter, Stefan; Diesmann, Markus Biological Cybernetics, 81, 5–6, 1999, pàg. 381–402. DOI: 10.1007/s004220050570. PMID: 10592015.
  4. Morrison, Abigail; Straube, Sirko; Plesser, Hans Ekkehard; Diesmann, Markus Neural Computation, 19, 1, 2007, pàg. 47–79. DOI: 10.1162/neco.2007.19.1.47. PMID: 17134317.
  5. Plesser, Hans E. «Efficient Parallel Simulation of Large-Scale Neuronal Networks on Clusters of Multiprocessor Computers». A: Euro-Par 2007 Parallel Processing (en anglès). 4641, 2007, p. 672–681 (Lecture Notes in Computer Science). DOI 10.1007/978-3-540-74466-5_71. ISBN 978-3-540-74465-8. 
  6. Djurfeldt, Mikael; Hjorth, Johannes; Eppler, Jochen M.; Dudani, Niraj; Helias, Moritz Neuroinformatics, 8, 1, 2010, pàg. 43–60. DOI: 10.1007/s12021-010-9064-z. PMC: 2846392. PMID: 20195795.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya