Найти в Дзене
radiophysics

Спайковые нейронные сети

В настоящее время широко известны и используются для самых разных задач искусственные нейронные сети. Работают искусственные нейронные сети как универсальные аппроскиматоры и могут в этом смысле обучаться. Можно считать, что обучение нейронной сети произошло упешно только в том случае, если после процедуры обучения она правильно реагирует на тестовых примерах, которые она ранее не видела. При всей своей практической применимости нейронные сети очень мало общего имеют с биологическими нейронными сетями, поведение которых куда сложнее поведения искусственных нейронных сетей. Сравнительно молодым (количество статей в этой области значительно возросло в последние 5 лет) направлением в науке является исследование поведения спайковых нейронных сетей (некоторые их называют осцилляторными нейронными сетями). Такие сети являются в полном смысле динамической системой, поведение которой задается, например, системой обыкновенных дифференциальных уравнений. В этом смысле они намного более близки к биологическим нейронным сетям.

Photo from PxHere.
Photo from PxHere.

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

Про эту процедуру обучения без учителя на википедии почему-то лучше всего написано на французском, оттуда возьмем формулы. Рассмотрим сеть из 100 нейронов ФитцХью-Нагумо с нелокальными связями с задержкой, зависящей от расстояния. На эту сеть пусть подается внешний сигнал в виде периодических испульсов с частотой, соответствующей интенсивности пикселя на входе. На каждый нейрон подается отдельный сигнал, так что на входе получается изображение 10*10 пикселей. Мы попробуем обучить нашу сеть из 100 нейронов по алгоритму STDP, при этом не в многослойной сети, а в однослойной сети со внутренними связями, у которых задержка зависит от расстояния. Задержка в связях помогает определить причинно-следственную связь между спайками в нейронах.

Связи выбираются отрицательными (положительные связи приводят к реализации тривиальных режимов), параметры силы связей генерируются в начале процесса с коэффициентами связи от 0.0001 до 0.0009 и задержками, зависящими от расстояния с небольшой случайной добавкой. Из параметров связи в процессе обучения меняется только коэффициент связи (новые связи не создаются и задержка у существующих связей не изменяется). Параметр возбуждения a (во втором уравнении в модели ФитцХью-Нагумо) также задается случайным образом в диапазоне от 1.2 до 1.3. В процессе обучения параметр a в каждом нейроне уменьшается каждый раз, когда нейрон не выдает спайков больше 10 единиц безразмерного времени (близко к периоду колебаний внешнего сигнала). Значение параметра возбуждения a так приближается к точке возникновения автоколебаний, поэтому устанавливается ограничение и параметр a не может стать меньше 1. С другой стороны, каждый раз, когда нейрон спайкует, параметр a увеличивается, приближаясь к значению 1.5 (по достижении этого значения параметр a больше не увеличивается).

На вход сети будем подавать черно-белые (двухцветные) изображения в виде вертикальных и горизонтальных линий по очереди. При этом есть 10 вариантов каждого изображения: 10 горизонтальный линий и 10 вертикальных. Вариант выбирается случайным образом. Картинки на входе будем менять каждые 100 единиц безразмерного времени. За 2000 единиц безразмерного времени в среднем будет происходить перебор всех вариантов, так что пусть 2000 - время одной эпохи.

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

Рисунок 1. Спайковая активность связанных в слое нейронов в начале процесса обучения.
Рисунок 1. Спайковая активность связанных в слое нейронов в начале процесса обучения.

На рисунке 1 приведена иллюстрация спайковой активности нейронов в начале процесса обучения. В целом в каждом окне в 100 единиц времени наблюдается неточное повторение сигналов на входе. Пока о классификации сигналов по типу говорить рано. Кроме того, довольно много нейронов демонстрируют очень высокую спайковую активность (на собственной частоте), частота спайков выше частоты колебаний сигнала на входе. Такие колебания через некоторое время после возникновения будут устраняться алгоритмом за счет увеличения параметра возбудимости нейрона ФитцХью-Нагумо, демонстрирующего повышенную спайковую активность.

Рисунок 2. Спайковая активность связанных в слое нейронов в начале 20-й эпохи обучения.
Рисунок 2. Спайковая активность связанных в слое нейронов в начале 20-й эпохи обучения.

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

Рисунок 3. Чередующиеся значения средней частоты спайков, происходящие в начале процесса обучения.
Рисунок 3. Чередующиеся значения средней частоты спайков, происходящие в начале процесса обучения.

Рисунок 4. Чередующиеся значения средней частоты спайков, происходящие во время 10-й эпохи обучения.
Рисунок 4. Чередующиеся значения средней частоты спайков, происходящие во время 10-й эпохи обучения.

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

p. s. Чтобы сразу увидеть новый материал в моем блоге в своей ленте, подписывайтесь! Буду рад комментариям, вопросам, предложениям.