IX Международная научно-практическая Интернет-конференция «НАУКА В ИНФОРМАЦИОННОМ ПРОСТРАНСТВЕ» (10–11 октября 2013 г.)

Плотникова Н. П., к. т. н. Федосин С. А.

Мордовский государственный университет имени Н. П. Огарева, г . Саранск, Российская Федерация

ОРГАНИЗАЦИЯ РАСПРЕДЕЛЕННОЙ АСИНХРОННОЙ СИСТЕМЫ ВЫЧИСЛЕНИЙ С ДИСПЕТЧЕРИЗАЦИЕЙ, РЕАЛИЗУЮЩЕЙ ОБУЧЕНИЕ И ФУНКЦИОНИРОВАНИЕ МНОГОСЛОЙНОГО ПЕРСЕПТРОНА, НА БАЗЕ ERLANG/OTP

Асинхронная модель многослойной нейронной сети, представленная в [1], показала хорошие экспериментальные результаты на системах с общей памятью. Для полноценного тестирования концепции асинхронных облегченных процессов виртуальной машины Erlang в качестве основы для реализации элементарных логических единиц нейронной сети на распределенных системах необходимо провести сравнение данного подхода с традиционным , включающим в себя наличие дополнительных диспетчеров, контролирующих обмен сообщениями между группами нейронов.

Применительно к рассматриваемой архитектуре имеет смысл объединять в группы только нейроны одного слоя, поскольку процесс обучения и функционирования нейронной сети является частично синхронным. Вычисления на текущем слое не завершатся, пока не поступит информация ото всех нейронов предыдущего слоя. Каждая выделенная группа нейронов и ее диспетчер запускаются на определенной Erlang-ноде . Распределение по нодам осуществляется следующим образом. При инициализации сети для каждого слоя запускаются диспетчеры в количестве, соответствующем количеству доступных вычислительных узлов (по одному на каждой ноде ). Затем начинается инициализация нейронов слоя. Каждый нейрон последовательно сопоставляется с диспетчером из списка доступных слою. В итоге все нейроны будут равномерно распределены между диспетчерами.

Обобщенная модель взаимодействия внутри системы с диспетчеризацией изображена на рис. 1.

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

( пунктиром на рисунке обозначены слои нейронной сети)

 

Подобная организация системы требует внесения изменений в спецификацию сообщений, доступных нейронам и диспетчерам для асинхронной обработки. Все описываемые ниже сообщения обрабатываются посредством handle_cast callback – асинхронного обработчика очереди сообщений behavior gen_server платформы Erlang /OTP. Обмен сообщениями осуществляется в двух направлениях.

При непосредственном функционировании сети результаты вычислений состояний отправляются нейронами своим диспетчерам ( send_signal на рисунке 2). Диспетчер ожидает сообщений ото всех своих и нейронов и в итоге отправляет весь накопленный блок состояний другим диспетчерам ( send_forward на рис. 2), под контролем которых находятся нейроны следующего логического слоя. Как только диспетчер получает сообщение send_forward , он рассылает блок состояний по всем своим нейронам через сообщение send_signal .

Рис. 2. Организация прямого обмена сообщениями

(в процессе непосредственного функционирования сети)

между диспетчерами и их нейронами

 

При обучении сети в процессе вычисления градиента осуществляется обмен сообщениями в обратном направлении. Нейроны отправляют сообщение calc_grad со всеми данными, необходимыми нейронам предыдущего слоя для вычисления градиента, своему диспетчеру (рис. 3). Диспетчер собирает сообщения всех нейронов и единым блоком отправляет их соответствующим диспетчерам предыдущего слоя через сообщение send_back . Диспетчер, получив данное сообщение, рассылает содержимое блока всем своим нейронам посредством сообщения calc_grad .

 

Рис. 3. Организация обратного обмена сообщениями

(в процессе вычисления градиента функции ошибки на этапе обучения сети)

между диспетчерами и их нейронами

 

По итогам проделанной работы была создана модификация асинхронной распределенной системы обучения и моделирования многослойных нейронных сетей, позволяющая провести сравнительный анализ концепции диспетчеризации вычислительных блоков в пределах вычислительного узла и концепции «один нейрон – один процесс», реализованной на базе облегченных процессов платформы Erlang /OTP посредством создания чистой логической модели нейронной сети без введения дополнительных сущностей.

 

Список использованных источников:

1. Плотникова Н. П. Построение параллельной модели многослойного персептрона / [ Н. П. Плотникова, В. Г. Казаков, В. В. Тесля , С. А. Федосин ] // ИКТ Т.10 – 2012. – № 3. – С. 8–15.