NEST (программное обеспечение) - NEST (software)

NEST (Инструмент нейронного моделирования)
Nest-logo.png
Оригинальный автор (ы)Маркус Дисманн, Марк-Оливер Гевалтиг, Эбигейл Моррисон, Ханс Эккехард Плессер
Разработчики)Инициатива НЕСТ
изначальный выпуск1 августа 2004 г. (2004-08-01)
Стабильный выпуск
2.20.0 / 31 января 2020 г.; 10 месяцев назад (2020-01-31)
Написано вC ++, Python, Cython
Операционная системакросс-платформенный
Доступно ванглийский
ТипВычислительная неврология
ЛицензияGPLv 2+
Интернет сайтwww.nest-Initiative.org

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

Философия моделирования

ГНЕЗДО симуляция пытается следовать логике электрофизиологический эксперимент, который проводится внутри компьютера с той разницей, что нейронная система подлежащие исследованию должны быть определены экспериментатором.

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

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

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

Пример

Растр NEST

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

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

импорт гнездоимпорт nest.raster_plotJ_ex  = 0.1 # возбуждающая массаJ_in  = -0.5 # тормозящий весp_rate = 20000. # внешний коэффициент Пуассонанейрон_парамс= {"См": 1.0, "тау_м": 20.0, "t_ref": 2.0,                "E_L": 0.0, «В_ресет»: 0.0, «Вім»: 0.0, "V_th": 20.0}# Установить параметры нейронов и устройствгнездо.SetDefaults("iaf_psc_delta", нейрон_парамс)гнездо.SetDefaults("poisson_generator", {"ставка": p_rate})гнездо.SetDefaults("spike_detector", {"со временем": Истинный, "сгид": Истинный})# Создание нейронов и устройствnode_ex=гнездо.Создавать("iaf_psc_delta", 10000) nodes_in=гнездо.Создавать("iaf_psc_delta", 2500)шум=гнездо.Создавать("poisson_generator")шипы=гнездо.Создавать("spike_detector")# Настроить модели синапсовгнездо.CopyModel("static_synapse", "возбуждающий", {"масса":J_ex, "задерживать":1.5})гнездо.CopyModel("static_synapse", «тормозной», {"масса":J_in, "задерживать":1.5})# Подключите случайную сеть и настройте ее на устройствагнездо.Соединять(node_ex, node_ex+nodes_in, {"правило": 'fixed_indegree', "степень": 1000}, "возбуждающий")гнездо.Соединять(node_in, node_ex+node_in, {"правило": 'fixed_indegree', "степень": 250}, «тормозной»)гнездо.Соединять(шум, node_ex+node_in, syn_spec="возбуждающий")гнездо.Соединять(node_ex[1:51], шипы)# Моделировать в течение 100 мсгнездо.Симулировать(100.)# Результаты графикагнездо.raster_plot.from_device(шипы, история=Истинный)гнездо.raster_plot.Показать()

Функции

Модели нейронов

Сетевые модели

Модели синапсов

Модели устройств

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

Точность

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

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

  • Поддержка многопоточного моделирования с использованием OpenMP или же Потоки POSIX.
  • Поддержка гибридного многопоточного и распределенного моделирования.
  • Распараллеливание выполняется в полуавтоматическом режиме ядром моделирования 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, а также БРАЙАН, НЕЙРОН, а также нейроморфное оборудование.
  • NEST также поддерживает собственный язык моделирования. устный переводчик (SLI), который понимает простой Стек-ориентированный язык программирования что под влиянием PostScript.[нужна цитата ]

Смотрите также

Рекомендации

  1. ^ Брюнель, Н. (2000). Динамика слабосвязанных сетей возбуждающих и тормозных нейронов. Журнал вычислительной нейробиологии, 8 (3), 183–208.
  2. ^ Хенкер, С., Парцш, Дж., Шеммель, Дж. (2011). Оценка точности численных методов, используемых в современных симуляторах для нейронных сетей. Журнал вычислительной нейробиологии.
  3. ^ Роттер С., Дисманн М. (1999) Точное цифровое моделирование инвариантных во времени линейных систем с применением нейронного моделирования в биологической кибернетике 81: 381-402
  4. ^ Моррисон А., Штрауб С., Плессер Х. Э., Дисманн М. (2007) Точное подпороговое интегрирование с непрерывным временем всплеска в симуляциях нейронных сетей с дискретным временем Нейронные вычисления 19 (1): 47-79
  5. ^ а б Плессер Х. Э., Эпплер Дж. М., Моррисон А., Дисманн М., Гевалтиг Марк-Оливер (2007) Эффективное параллельное моделирование крупномасштабных нейронных сетей на кластерах многопроцессорных компьютеров В: Proc. параллельной обработки Euro-Par 2007, Springer LNCS 4641:672-681
  6. ^ Микаэль Джурфельдт, Йоханнес Хьорт, Йохен М. Эпплер, Нирадж Дудани, Мориц Хелиас, Тобиас К. Потянс, Упиндер С. Бхалла, Маркус Дисманн, Жанетт Хеллгрен Коталески, Орджан Экеберг (2010) Взаимодействие во время выполнения между симуляторами нейронных сетей на основе MUSIC Framework Нейроинформатика 8 (1): 43-60, DOI 10.1007 / s12021-010-9064-z
  7. ^ Документальный фильм о НЕСТ немецким Сеть Бернштейна
  8. ^ Эпплер, Дж. М., Хелиас, М., Дисманн, М., Мюллер, Э., Гевалтиг, Марк-Оливер (2008). PyNEST: удобный интерфейс к симулятору NEST. Границы в нейроинформатике, 2 (январь), 1–12. DOI: 10.3389 / нейро.11.012.2008
  9. ^ A. Davison, D. Brüderle, J. Eppler, J. Kremkow, E. Muller, D. Pecevski, L. Perrinet и P. Yger, PyNN: общий интерфейс для симуляторов нейронных сетей, Front. Neuroinf. 2:11, 2009 г.

внешняя ссылка