Найти в Дзене
ПсихоВлад Комм

PyNN: общий интерфейс для симуляторов нейронных сетей

Вычислительная нейронаука произвела разнообразие программного обеспечения для моделирования импульсных нейросетей, как с отрицательными, так и с положительными последствиями. С одной стороны, каждый симулятор использует свой собственный язык программирования или настройки, что приводит к значительным трудностям при переносе моделей с одного симулятора на другой. Это затрудняет общение между исследователями и затрудняет воспроизведение и построение на работе других. С другой стороны, результаты моделирования могут быть перепроверены между различными тренажерами, что дает большую уверенность в их правильности, и каждый тренажер имеет различные оптимизации, так что наиболее подходящий тренажер может быть выбран для конкретной задачи моделирования. Общий программный интерфейс к нескольким тренажерам уменьшит или устранит проблемы разнообразия тренажера, сохраняя при этом преимущества. Введение PyNN является таким интерфейсом, что позволяет написать сценарий моделирования один раз, использу

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

С одной стороны, каждый симулятор использует свой собственный язык программирования или настройки, что приводит к значительным трудностям при переносе моделей с одного симулятора на другой. Это затрудняет общение между исследователями и затрудняет воспроизведение и построение на работе других.

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

https://unsplash.com/photos/9SoCnyQmkzI
https://unsplash.com/photos/9SoCnyQmkzI

Введение

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

PyNN повышает производительность моделирования нейронных сетей, обеспечивая высокий уровень абстракции, способствуя обмену и повторному использованию кода, а также закладывая основу для симуляторов-диагностического анализа, визуализации и инструментов управления данными.

PyNN повышает надежность моделирования, значительно облегчая проверку результатов на нескольких симуляторах. PyNN является программным обеспечением с открытым исходным кодом.

Наука опирается на три столпа — открытую коммуникацию, воспроизводимость результатов и развитие того, что было раньше.

В этих отношениях, вычислительной нейронауки должны быть в хорошем положении, так как компьютеры по дизайну преуспеть в повторении одной и той же задачи без изменений, столько раз, сколько хотелось бы: воспроизводимость результатов вычислений должна быть тривиальной задачей. Аналогичным образом, Интернет позволяет практически мгновенно передавать материалы исследований, т.е. исходный код, между лабораториями.

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

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

  • Один из них заключается в том, что исходные тексты могут быстро устаревать по мере развития компьютерных архитектур, стандартов компиляторов и симуляторов.
  • Другой заключается в том, что модельный исходный код часто не пишется с учетом повторного использования и расширения, и поэтому необходимо значительное переписывание для разбиения кода на модули.

Наверное, самым важным барьером является то, что код, написанный для одного симулятора, не совместим ни с каким другим симулятором.
Хотя многие вычислительные модели в неврологии написаны с нуля на языке программирования общего назначения, таком как C++ или Fortran, вероятно, большинство используют симулятор специального назначения, который позволяет моделям быть выраженными в терминах неврологии конкретных понятий, таких как нейроны, ионные каналы, синапсы; симулятор заботится о преобразовании этих понятий в систему уравнений и численного решения уравнений. Большое количество таких симуляторов доступно, в основном в виде программного обеспечения с открытым исходным кодом, и каждый из них имеет свой собственный язык программирования, синтаксис конфигурации и/или графический интерфейс, что создает значительные трудности при переводе моделей с одного симулятора на другой, или даже при понимании чужого кода, с очевидными негативными последствиями для связи между исследователями, воспроизводимости чужих моделей и построении на основе существующих моделей. Тем не менее, разнообразие симуляторов также имеет ряд положительных последствий:

  1. Оно позволяет проводить перекрестную проверку — вероятность того, что два разных тренажера имеют одни и те же ошибки или скрытые допущения, очень мала
  2. Каждый тренажер имеет разный баланс между:
  • эффективностью (насколько быстро проводятся симуляции)
  • гибкостью (насколько легко добавлять новые функциональные возможности; диапазон моделей, которые могут быть смоделированы)
  • масштабируемостью (для параллельных, распределенных вычислений на кластерах или суперкомпьютерах)
  • простотой использования

Продолжение следует...