Зачем вообще понадобились спайковые сети
Отправной точкой для меня была вполне практическая боль: глубокое обучение хочется разворачивать не только на больших серверах, но и на периферийных устройствах — телефонах, часах, роботах. А растущая сложность сетей и объёмы данных предъявляют огромные требования к энергии. Здесь я и захожу со стороны нейроморфных вычислений: мозг решает сложнейшие задачи на единицах ватт, обмениваясь короткими импульсами. Спайковые нейронные сети (СНС) — попытка перенести этот событийный принцип в машинное обучение. Базовая модель, которую я разбираю, — интегрирующий нейрон с утечкой (LIF): он накапливает входные импульсы в мембранном потенциале и выдаёт спайк, как только потенциал переходит порог, после чего сбрасывается.
Как кодируется информация
Отдельную часть работы я посвящаю вопросу, который до сих пор обсуждается в вычислительной нейробиологии: как именно нейрон кодирует информацию. Долго считалось, что всё дело в частоте спайков (rate coding). Но я обращаю внимание на контраргумент: зрительная система человека распознаёт образ менее чем за 100 мс, при том что каждому нейрону нужно около 10 мс на обработку — на таком окне частотное кодирование просто не успевает накопить статистику. Значит, существенная часть информации заключена в точном времени отдельных спайков (temporal coding), и это к тому же экономнее по энергии.
Топологии и методы обучения
Я разделяю топологии на сети с прямой связью, рекуррентные и гибридные, отдельно отмечая динамически эволюционирующие СНС, которые меняют структуру в процессе обучения. Главная же интрига — обучение. Здесь я выделяю два больших пути. Первый — биологически правдоподобное локальное правило STDP (пластичность, зависящая от времени спайка): вес связи растёт, если пресинаптический нейрон сработал прямо перед постсинаптическим, и падает в обратном случае. Оно элегантно и дёшево по железу, но плохо масштабируется вглубь, потому что сигнал ошибки трудно донести до дальних слоёв. Второй путь — спайковые версии обратного распространения: чтобы они заработали, нужна дифференцируемая аппроксимация функции активации спайкового нейрона. Я подробно разбираю подход на основе LIF-нейрона (Lee et al.), который трактует утечку как низкочастотный фильтр и за счёт этого почти закрывает разрыв в точности между классическими и спайковыми сетями на MNIST, SVHN, CIFAR-10. Третий, более прагматичный вариант — конвертация уже обученной обычной сети в спайковую: это даёт хорошую точность, но теряет временную динамику и требует много шагов на инференс.
Железо и софт
Поскольку весь смысл СНС — в энергоэффективности, я отдельно прохожусь по нейроморфному железу: IBM TrueNorth, Intel Loihi, SpiNNaker, BrainScaleS, Tianjic, а также по новым элементам вроде мемристоров и RRAM. Со стороны софта картина скромнее, чем в мире обычного DL: вместо зрелых TensorFlow и PyTorch здесь нишевые инструменты — Nengo, BindsNET, SpykeTorch, PyNN, — и исследователю часто приходится собирать сеть почти с нуля. Этот разрыв в инструментарии я считаю одним из главных тормозов области.
Что я выношу из этой работы
Мой общий вывод: спайковые сети сильны именно там, где данные разрежены во времени и пространстве, зашумлены, а энергобюджет ограничен. Событийная коммуникация и вычисления «в памяти» делают их естественным кандидатом для повсеместного ИИ на краю сети. Для меня же эта статья — фундамент: разобравшись, как устроена временная динамика и обучение нестандартных нейросетей, я позже перешёл к темам надёжности и безопасности современных моделей.