Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

NEST - это программное обеспечение для моделирования нейронных сетей , включая крупномасштабные нейронные сети. Первоначально NEST был разработан Маркусом Дисманном и Марком-Оливером Гевалтигом, а в настоящее время разрабатывается и поддерживается инициативой NEST.

Философия моделирования [ править ]

Моделирование NEST пытается следовать логике электрофизиологического эксперимента, который проводится внутри компьютера, с той разницей, что исследуемая нейронная система должна быть определена экспериментатором.

Нейронная система определяется возможно большим количеством нейронов и их связей . В сети NEST могут сосуществовать разные модели нейронов и синапсов. Любые два нейрона могут иметь несколько соединений с разными свойствами. Таким образом, связность, как правило, может быть описана не матрицей весов или связности, а скорее списком смежности .

Чтобы управлять динамикой сети или наблюдать за ней, экспериментатор может определить так называемые устройства, которые представляют собой различные инструменты (для измерения и стимуляции), обнаруженные в эксперименте. Эти устройства записывают свои данные либо в память, либо в файл.

NEST является расширяемым, и в него можно добавлять новые модели нейронов, синапсов и устройств.

Пример [ править ]

Растр NEST

В следующем примере имитируется пиковая активность в разреженной случайной сети с повторяющимся возбуждением и торможением [1]

На рисунке показана пиковая активность 50 нейронов в виде растрового графика . Время увеличивается по горизонтальной оси, ID нейрона по вертикальной оси. Каждая точка соответствует спайку соответствующего нейрона в данный момент времени. В нижней части рисунка представлена гистограмма со средней частотой срабатывания нейронов.

import  nest import  nest.raster_plotJ_ex  =  0,1  # возбуждающий вес J_in  =  - 0,5  # тормозной вес p_rate  =  20000.  # внешний коэффициент Пуассонанейрон_парамс =  { "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 }# Установить параметры гнезда нейронов и устройств . SetDefaults ( "iaf_psc_delta" ,  нейрон_парамс ) гнездо . SetDefaults ( "poisson_generator" ,  { "rate" :  p_rate }) гнездо . SetDefaults ( "spike_detector" ,  { "withtime" :  True ,  "withgid" :  True })# Создать нейроны и устройства nodes_ex = nest . Создать ( "iaf_psc_delta" ,  10000 )  nodes_in = nest . Создать ( "iaf_psc_delta" ,  2500 ) noise = nest . Создать ( "poisson_generator" ) espikes = nest . Создать ( "spike_detector" )# Настроить гнездо моделей синапсов . CopyModel ( "static_synapse" ,  "возбуждающий" ,  { "вес" : J_ex ,  "delay" : 1.5 }) гнездо . CopyModel ( "static_synapse" ,  "тормозящий" ,  { "weight" : J_in ,  "delay" : 1.5 })# Подключите случайную сеть и подключите ее к гнезду устройств . Соединить ( nodes_ex ,  nodes_ex + nodes_in ,  { "rule" :  'fixed_indegree' ,  "indegree" :  1000 },  "excitatory" ) гнездо . Соединить ( nodes_in ,  nodes_ex + nodes_in ,  { "rule" :  'fixed_indegree' ,  "indegree" :  250 },  "ингибирующий" ) гнездо .Соединять( шум ,  nodes_ex + nodes_in ,  syn_spec = "возбуждающий" ) гнездо . Подключить ( nodes_ex [ 1 : 51 ],  espikes )# Смоделировать для 100 мс гнезд . Моделировать ( 100. )# Построить гнездо результатов . raster_plot . from_device ( espikes ,  hist = True ) гнездо . raster_plot . показать ()

Особенности [ править ]

Модели нейронов [ править ]

  • Интегрируйте модели с различными типами синаптических токов или потенциалов.
  • Интегрируйте и запускайте модели с синапсами на основе проводимости
  • Однокамерные модели Ходжкина – Хаксли
  • Адаптивная экспоненциальная интеграция и нейрон огня (AdEx)
  • Модель нейрона MAT2

Сетевые модели [ править ]

  • Случайная нейронная сеть
  • Топологические сети
  • Сетевые модели, управляемые данными

Модели синапсов [ править ]

  • Статические синапсы с однородным или неоднородным весом и задержкой.
  • Пластичность, зависящая от времени всплеска
  • Кратковременная пластичность (синапсы Цодыкс и Маркрам)
  • Нейромодулированные синапсы с использованием дофамина .

Модели устройств [ править ]

  • Детектор спайков
  • Мультиметр для потенциалов, токов и т. Д.
  • Генераторы переменного, постоянного и шагового тока
  • Генераторы шума (Пуассон, Гаусс, Гамма)
  • Генераторы шипов для воспроизведения шипов

Точность [ править ]

  • NEST стремится к высокой точности моделирования [2]
  • Каждая модель нейрона имеет соответствующий решатель, а многие модели имеют модульные тесты.
  • Если возможно, используется точное интегрирование [3] .
  • По умолчанию всплески падают на сетку, определяемую временным шагом моделирования. Некоторые модели поддерживают обмен импульсами в непрерывном режиме. [4]

Параллельное и распределенное моделирование [ править ]

  • Поддержка многопоточного моделирования с использованием OpenMP или POSIX Threads .
  • Поддержка гибридного многопоточного и распределенного моделирования.
  • Распараллеливание выполняется в полуавтоматическом режиме ядром моделирования NEST.
  • Масштабирование от супралинейного до линейного до 10000 ядер . [5]

Совместимость [ править ]

  • Интерфейс к координатору мульти-симулятора, разработанный INCF . [6]
  • Интерфейс к симулятору независимый язык моделирования PyNN .

История [ править ]

Разработка NEST была начата в 1993 году Маркусом Дисманном и Марком-Оливером Гевалтигом в Рурском университете Бохума , Бохум , Германия, и Научном институте Вейцмана в Реховоте , Израиль . В то время симулятор назывался SYNOD, а моделирование определялось на языке моделирования на основе стека, называемом SLI. [7]

В 2001 году программа изменила свое название с SYNOD на NEST. До 2004 года NEST разрабатывался и использовался исключительно членами-основателями инициативы NEST. Первый публичный релиз появился летом 2004 года. С тех пор NEST выпускался регулярно, примерно один или два раза в год.

С 2007 года NEST поддерживает гибридный параллелизм с использованием потоков POSIX и MPI . [5]

В 2008 году язык моделирования на основе стека SLI был заменен современным интерфейсом Python , однако старый язык моделирования все еще используется внутри компании. [8] В то же время, независимый от симулятора язык спецификации PyNN был разработан с поддержкой NEST. [9] В 2012 году инициатива NEST изменила лицензию с частной лицензии NEST на GNU GPL V2 или более поздней версии.

Пользовательские интерфейсы [ править ]

  • Основным пользовательским интерфейсом NEST является PyNEST, пакет Python , который управляет ядром моделирования NEST. PyNEST стремится к простоте использования и беспрепятственному взаимодействию с Python и его библиотеками.
  • PyNN - это независимый от симулятора язык для нейронного моделирования, который поддерживает NEST, а также BRIAN , NEURON , а также нейроморфное оборудование.
  • NEST также поддерживает свой собственный интерпретатор языка моделирования (SLI), который понимает простой стек-ориентированный язык программирования, на который влияет PostScript . [ необходима цитата ]

См. Также [ править ]

  • Брайан (программное обеспечение)
  • Neuron (программное обеспечение)
  • GENESIS (программное обеспечение)
  • Вычислительная неврология

Ссылки [ править ]

  1. Перейти ↑ Brunel, N. (2000). Динамика слабосвязанных сетей возбуждающих и тормозных нейронов. Журнал вычислительной нейробиологии, 8 (3), 183–208.
  2. ^ Henker, S., Partzsch, J., Schemmel, J. (2011). Оценка точности численных методов, используемых в современных симуляторах для пиков нейронных сетей. Журнал вычислительной нейробиологии.
  3. ^ Роттер С., Дисманн М. (1999) Точное цифровое моделирование инвариантных во времени линейных систем с приложениями к нейронному моделированию биологической кибернетики 81: 381-402
  4. ^ Моррисон А., Штраубе С., Плессер HE, Дисманн М. (2007) Точное подпороговое интегрирование с непрерывным временем всплеска в симуляциях нейронной сети с дискретным временем Neural Comput 19 (1): 47-79
  5. ^ a b Plesser HE, Eppler JM, Morrison A., Diesmann M., Gewaltig Marc-Oliver (2007) Эффективное параллельное моделирование крупномасштабных нейронных сетей на кластерах многопроцессорных компьютеров В: Proc. параллельной обработки Euro-Par 2007, Springer LNCS 4641: 672-681
  6. ^ Микаэль Джурфельдт, Йоханнес Хьорт, Йохен М. Эпплер, Нирадж Дудани, Мориц Хелиас, Тобиас С. Потянс, Упиндер С. Бхалла, Маркус Дисманн, Жанетт Хеллгрен Коталески, Орджан Экеберг (2010) Взаимодействие во время выполнения между симуляторами нейронной сети MUSIC Framework Neuroinformatics 8 (1): 43-60, DOI 10.1007 / s12021-010-9064-z
  7. ^ Документальный фильм о НЕСТ немецкой сети Бернштейна
  8. ^ Эпплер, JM, Helias, М., Diesmann, М., Мюллер Е., Gewaltig, Марк-Оливер (2008). PyNEST: удобный интерфейс к симулятору NEST. Границы в нейроинформатике, 2 (январь), 1–12. DOI: 10.3389 / нейро.11.012.2008
  9. ^ А. Дэвисон, Д. Брюдерло, Дж Эпплер, Дж Kremkow, Э. Мюллер, Д. Pecevski, Л. П. Perrinet и Yger, PyNN: общий интерфейс для нейрональных сетевых тренажеров, спереди. Neuroinf. 2:11, 2009 г.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Список пакетов моделирования
  • Симулятор гнезда