NEST — это программное обеспечение для моделирования импульсных моделей нейронных сетей , включая крупномасштабные нейронные сети. NEST изначально был разработан Маркусом Дисманном и Марком-Оливером Гевалтигом, а в настоящее время разрабатывается и поддерживается NEST Initiative.
Моделирование NEST пытается следовать логике электрофизиологического эксперимента, который проводится внутри компьютера, с той разницей, что исследуемая нейронная система должна быть определена экспериментатором.
Нейронная система определяется возможно большим количеством нейронов и их связей . В сети NEST могут сосуществовать различные модели нейронов и синапсов. Любые два нейрона могут иметь несколько связей с различными свойствами. Таким образом, связность в общем случае не может быть описана матрицей веса или связности , а скорее списком смежности .
Для манипулирования или наблюдения за динамикой сети экспериментатор может определить так называемые устройства, которые представляют собой различные инструменты (для измерения и стимуляции), обнаруженные в эксперименте. Эти устройства записывают свои данные либо в память , либо в файл.
NEST является расширяемым, и в него можно добавлять новые модели нейронов, синапсов и устройств.
Следующий пример имитирует импульсную активность в разреженной случайной сети с повторяющимся возбуждением и торможением [1]
На рисунке показана спайковая активность 50 нейронов в виде растрового графика. Время увеличивается по горизонтальной оси, идентификатор нейрона увеличивается по вертикальной оси. Каждая точка соответствует спайку соответствующего нейрона в заданное время. Нижняя часть рисунка показывает гистограмму со средней частотой срабатывания нейронов.
импорт гнезда импорт гнезда.raster_plotJ_ex = 0,1 # возбуждающий вес J_in = - 0,5 # ингибирующий вес p_rate = 20000,0 # внешняя скорость Пуассона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 }# Установка параметров нейронов и устройств nest.SetDefaults ( " iaf_psc_delta" , neuron_params ) nest.SetDefaults ( "poisson_generator" , { "rate" : p_rate } ) nest.SetDefaults ( " spike_detector" , { "withtime" : True , " withgid " : True } ) # Создать нейроны и устройства 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" ) # Настройка моделей синапсов nest.CopyModel ( "static_synapse" , "excitatory" , { " weight" : J_ex , "delay" : 1.5 } ) nest.CopyModel ( " static_synapse" , "inhibitory" , { "weight" : J_in , " delay" : 1.5 }) # Подключить случайную сеть и оснастить ее устройствами 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 ( nodes_ex + nodes_in , syn_spec = " excitatory " ) nest.Connect ( nodes_ex [ 1 : 51 ] , espikes ) # Моделировать для 100. мс гнездо . Моделировать ( 100.0 )# Результаты построения графика nest.raster_plot.from_device ( espikes , hist = True ) nest.raster_plot.show ( )
Разработка NEST была начата в 1993 году Маркусом Дисманном и Марком-Оливером Гевалтигом в Рурском университете в Бохуме , Германия , и Институте науки Вейцмана в Реховоте , Израиль . В то время симулятор назывался SYNOD, а симуляции определялись на языке симуляции на основе стека, называемом SLI. [7]
В 2001 году программное обеспечение сменило название с SYNOD на NEST. До 2004 года NEST разрабатывался и использовался исключительно членами-основателями NEST Initiative. Первый публичный релиз появился летом 2004 года. С тех пор NEST выпускался регулярно, примерно один или два раза в год.
С 2007 года NEST поддерживает гибридный параллелизм, используя потоки POSIX и MPI . [5]
В 2008 году стековый язык моделирования SLI был заменен современным интерфейсом Python , однако старый язык моделирования по-прежнему используется внутри компании. [8] В то же время был разработан язык спецификаций, независимый от симулятора PyNN, с поддержкой NEST. [9] В 2012 году инициатива NEST изменила лицензию с проприетарной лицензии NEST на GNU GPL V2 или более позднюю.