Brian to pakiet Python o otwartym kodzie źródłowym służący do tworzenia symulacji impulsowych sieci neuronowych.

Szczegóły projektu Brian skierowany jest do badaczy opracowujących modele oparte na impulsowych sieciach neuronowych. Projekt ma na celu maksymalizację elastyczności, prostoty i szybkości tworzenia sieci przez użytkownika. Użytkownicy określają modele neuronów, podając swoje równania różniczkowe w standardowej formie matematycznej jako ciągi znaków, tworzą grupy neuronów i łączą je za pomocą synaps. Jest to przeciwieństwo podejścia stosowanego w wielu symulatorach neuronowych, w których użytkownicy wybierają z uprzednio zdefiniowanego zestawu modeli neuronów.

Brian jest napisany w języku Python. Pod względem obliczeniowym opiera się na koncepcji generowania kodu: użytkownicy określają model w Pythonie, ale w tle Brian generuje, kompiluje i uruchamia kod w jednym z kilku języków (w tym Python, Cython i C++). Dodatkowo istnieje tryb „standalone”, w którym Brian generuje całe drzewo kodu źródłowego C++ bez zależności, co pozwala na uruchamianie modeli na platformach, na których Python nie jest dostępny.

Przykład użycia Poniższy kod definiuje, uruchamia i kreśli losowo połączoną sieć wystrzeliwujących neuronów z wykładniczymi prądami hamującymi i pobudzającymi. mały|Przykładowy wykres rastrowy z losowo połączonej sieci neuronów integrujących i pobudzających z wykładniczymi prądami hamującymi i pobudzającymi

from brian2 import *

eqs = """ dv/dt = (ge+gi-(v+49*mV))/(20*ms) : volt dge/dt = -ge/(5*ms) : volt dgi/dt = -gi/(10*ms) : volt """ P = NeuronGroup(4000, eqs, threshold="v>-50*mV", reset="v=-60*mV") P.v = -60 * mV Pe = P[:3200] Pi = P[3200:] Ce = Synapses(Pe, P, on_pre="ge+=1.62*mV") Ce.connect(p=0.02) Ci = Synapses(Pi, P, on_pre="gi-=9*mV") Ci.connect(p=0.02) M = SpikeMonitor(P) run(1 * second) plot(M.t / ms, M.i, ".") show()

Porównanie z innymi symulatorami SNN Brian koncentruje się przede wszystkim na modelach neuronów jednokomorowych. Symulatory skupiające się na modelach wielokomorowych to przykładowo Neuron z 1993 roku i GENESIS z 1994 roku.

Brian koncentruje się na elastyczności i łatwości użytkowania, a także obsługuje symulacje uruchamiane wyłącznie na jednej maszynie. Symulator NEST zawiera funkcje umożliwiające dystrybucję symulacji w klastrze.

Nagrody

Nagroda Open Science Award for Open Source Research Software w kategorii „Dokumentacja” z 2023 roku

Przypisy

Linki zewnętrzne

Oficjalna strona

Kategoria:Biblioteki Pythona Kategoria:Otwarte_oprogramowanie Kategoria:Uczenie_maszynowe