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

УДК 519.95

УНИВЕРСАЛЬНЫЙ СИМУЛЯТОР, БАЗИРУЮЩИЙСЯ НА ТЕХНОЛОГИИ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ, СПОСОБНЫЙ РАБОТАТЬ НА ПАРАЛЛЕЛЬНЫХ МАШИНАХ

© О.В. Крючин, А.А. Арзамасцев, А.Н. Королев, С.И. Горбачев, Н.О. Семенов

Ключевые слова: искусственные нейронные сети (ИНС), распараллеливание процесса обучения ИНС.

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

Описание проблемы. В настоящее время искусственные нейронные сети (ИНС) широко используются для математического моделирования в различных областях науки [1]. Особенно актуально их использование в таких трудноформализуемых областях знания как психология, социальные науки, т. е. в тех случаях, когда необходимо разработать математическую модель объекта, а ее структура не может быть определена существующими в данных областях законами и закономерностями. Другими областями использования ИНС являются задачи распознавания образов, а также анализ и прогнозирование временных рядов [2].

При использовании аппарата ИНС математическая модель объекта строится на основе эмпирических данных за счет выбора количества нейронов, числа скрытых слоев, распределения нейронов в слоях, активационных функций нейронов и коэффициентов синаптических связей. Критерием выбора указанных параметров обычно является функционал вида:

V >=1 ;=1

Здесь сі ,с1 представляют собой выходные значения

1>)

самого объекта (таблица эмпирических данных) и ИНС при одинаковых и заданных входах, N - число строк данных в обучающей выборке, р - размерность вектора выходных координат объекта, ц/ - вектор коэффициентов синаптических (межнейронных) связей.

Вектор мі определяется структурой сети 5, которая, в свою очередь, связана с числом ее входов р , так что имеется однозначное соответствие р И

Задачи обучения ИНС заключаются в численной минимизации функционала (1) с помощью одного из методов нелинейного программирования.

В реальных задачах размерность вектора может быть от нескольких десятков до нескольких тысяч (в зависимости от используемой структуры ИНС, соответствующей сложности моделируемого объекта). На-

пример, при построении модели профессиональной предрасположенности школьников - абитуриентов ТГУ им. Г.Р. Державина пришлось решать задачу минимизации функции более четырехсот переменных [3, 4], а при построении модели личностных качеств студентов - более трехсот [5, 6]. На северной платформе Ме1 с двухъядерным процессором Ме1 Хеоп частой 3,6 ГТц и оперативной памятью 1 ГБ решение этих задач заняло 38 дней.

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

Для решения этой задачи необходимо произвести распараллеливание на трех уровнях:

1) уровень вычисления значения целевой функции,

2) уровень подбора весовых коэффициентов,

3) уровень подбора структуры сети.

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

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

т = — + Г{ + ц/ + у,

и

исходит полный перебор всех возможных комбинаций значений весовых коэффициентов.

Этот способ, с одной стороны, является довольно надежным, а с другой - очень медленным. Количество итераций можно вычислить по формуле

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

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

Распараллеливание на уровне подбора весовых коэффициентов. Распараллеливание на уровне подбора весовых коэффициентов уникально для каждого используемого метода подбора.

Метод полного сканирования. Как известно, алгоритм полного сканирования работает следующим образом: поскольку весовые коэффициенты обычно задаются в ограниченном интервале ; ] (как правило

1д = —1,^ = 1), то вначале происходит инициализация

всех весов минимальным значением, а на следующих итерациях необходимо последовательно изменять веса, чтобы они менялись так, как показано ниже:

и’={и’1и>2и’3....,и’п}

м>к = Що + ^’ к=1,...,п, / = 0,1,2,..,-——+ 1,

5

где ; - количество весовых коэффициентов, £ - ве-

личина приращения весового коэффициента.

Параллельное выполнение этого метода заключается в том, что для каждого процессора первый весовой коэффициент является заданной константой (на первом процессоре м>0 = 10, на втором м/0 = 10 + в и т. д.), а

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

5

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

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

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

IV; = IV; + Ац>1 1 = 0,1,2,.,—-—+ 1,

= яг

где ^ - заданный шаг. То есть происходит полный перебор всех возможных комбинаций весовых коэффициентов.

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

где г - сгенерированное случайным образом число (в диапазоне [0;1]), £ - величина максимального приращения весового коэффициента.

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

щ = щ-Ащ /=0,1,2,..,^—'2- + 1.

5

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

Модификация метода заключается в том, что для каждого веса генерируется не одно, а и случайных чисел г=(г0г1....гп_1), вычисляется Щ ={м>ио,м>и1,...м>1пА) и

а затем выбирается минимальный е(мл), и если это значение меньше предыдущего

значения целевой функции, то соответствующий ему уу. становится новым значением весового коэффициента. Каждый процессор независимо генерирует г, вычисляет щ и е(у\).) и посылает их на ведущий. Ведущий процессор сравнивает е(н>;) их, в зависимости от результата устанавливает новое значение и посылает его на все узлы.

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

Эе

dw

( ( ЛЛ de(w0) 3e(w1) 3fi(w2) d£[\~l

dw

і -1

il_A + i

Эе(ЧАо

e(w,+zlwj-e(wj AW:

і = 0,1,2,.,

-1.

Следовательно, для вычисления ) необходимо

вычислить значение целевой функции при текущем значении весовых коэффициентов, затем при измененном щ = щ + Ащ . После вычисления вектора градиента происходит изменение весовых коэффициентов

,Мщ)

І =0,1,2,.,

к__к

+ 1.

II ~\

дwi ,5

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

фициентов, а уже после этого возвращают результат (новые весовые коэффициенты).

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

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

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

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

Таблица 1

Основные характеристики имеющихся ИНС симуляторов

Название Ограничение ИНС модели (количество слоев и нейронов) Имеет дальнейшее развитие Поддержка кластери- зации Способ распро- странения

BrainMaker нет да нет коммерче- ский

Deductor Academic нет да нет для учебных целей

JavaNNS нет да нет свободный

Neural WorksPredict нет да нет коммерче- ский

Neuro Office нет да нет коммерче- ский

Neuro Pro да да нет демо

Neuro Shell нет нет нет коммерче- ский

NNC да да нет свободный

NNW нет нет нет для учебных целей

Sim Brain нет да нет свободный

Разработанный симулятор реализован на языке C++, что позволило сделать версии для различных операционных систем. Для осуществления межпроцессорной передачи данных используется библиотека MPI (Message Passing Interface), написанная на С. Таким образом, разработанный нейросетевой симулятор может быть использован на любой платформе, поддерживающей стандарт POSIX.

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

т = - + ¥,

п

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

Таким образом, существует некая величина ¥, которая представляет собой разницу между тем временным выигрышем, который можно было бы ожидать (в и раз), и тем, который существует в реальности.

Ч/ = г]+ц/+ю+у,

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

Наличие этих величин обусловлено тем, что параллельные алгоритмы отличаются от последовательных. Поскольку очень редко удается распределить нагрузку на вычислительные узлы полностью равномерно, всегда на некоторых процессорах происходит ожидание окончания выполнения работы какого-либо другого вычислительного узла. Кроме того средство межпроцессорной передачи данных - MPI - передает данные только определенного типа (массивы-указатели), которые отличны от используемых в алгоритмах обучения высокоуровневых типов (контейнеры), и соответственно необходимо конвертирование одного типа в другой, что также занимает определенное время. Кроме того, большое влияние оказывает аппаратная платформа. Средства межпроцессорной коммуникации имеют различную скорость передачи и поэтому выбор такого средства (оптоволокно, витая пара, wifi) также влияет на значение величины ¥.

Таблица 2

Величина эффективности распараллеливания.

Количество Методы

процессоров полного сканирования Монте-Карло градиентный

6 0,99 0,63 0,79

8 0,99 0,61 0,77

16 0,96 0,63 0,64

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

« = Л

ИТ

Эта величина показывает относительный временной выигрыш и для эффективных алгоритмов должна быть в диапазоне (0,5; 1).

Проведенные вычислительные эксперименты на кластере ТГУ им. Г.Р. Державина показали картину, отраженную в табл. 2. Самым эффективным оказалось распараллеливание алгоритма полного сканирования, а самым неэффективным - алгоритма Монте-Карло. Тем не менее коэффициент эффективности распараллеливания всех алгоритмов превышает 0,5, что позволяет считать кластеризацию успешной.

ЛИТЕРАТУРА

1. Горбанъ А.Н. и др. Нейроинформатика. Новосибирск: Наука, 1998.

2. Осовский С. Нейронные сети для обработки информации. М., 2002.

3. Арзамасцев А.А. и др. Личностные качества, профессиональная предрасположенность и социальная активность школьников старших классов. Тамбов, 2004.

4. Арзамасцев А.А., Крючин О.В., Азарова П.А., Зенкова Н.А. Универсальный программный комплекс для компьютерного моделирования на основе искусственной нейронной сети с самоорганизацией структуры // Вестн. Тамб. ун-та. Сер. Естеств. и техн. науки. Тамбов, 2006. Т. 11. Вып. 4. С. 564-570.

5. Арзамасцев А.А., Зенкова Н.А. Социологическое исследование студентов Тамбовского государственного университета имени Г.Р. Державина. Тамбов, 2005.

6. Арзамасцев А.А., Азарова П.А., Зенкова Н.А. Модель профессиональных и личностных качеств студентов университета на основе искусственной нейронной сети с адаптивной структурой // Вестн. Тамб. ун-та. Сер. Естеств. и техн. науки. Тамбов, 2007. Т. 12. Вып. 5. С. 633-639.

Поступила в редакцию 20 сентября 2008 г.

Kryuchin O.V., Arzamastcev А.А., Korolev A.N., Gorbachev S.I., Semenov N.O. The universal simulator based on technology of artificial neural networks, capable to work in parallel cars. The artificial neural networks (ANN) are used in different scientific braches. But they often need much time for their work. Solution of this problem can be found in use of multiprocessing computers. But now there are many ANN realizations for personal computers and no realizations for supercomputers. That is why the aim of this work is to develop ANN for clusters.

Key words: artificial neural networks (ANN), multisequencing of the process of training ANN.

LITERATURE

1. Gorban A.N., etc. Neuroinformatics. Novosibirsk: Nauka, 1998.

2. Osovsky S. Neuron networks for information processing. М., 2002.

3. Arzamastsev A.A., etc. Personal qualities, professional predisposition and social activity of senior schoolchildren. Tambov, 2004.

4. Arzamastsev A.A., Kryuchin О. V., Azarova P.A., Zenkova N.A. Universal program complex for computer modelling on the basis of an artificial neural network with self-organizing structure // Tambov University Review. Series: Natural and Technical Sciences. Tambov, 2006. Vol. 11. Issue. 4. P. 564-570.

5. Arzamastsev A. A., Zenkova N.A. Sociological research of students of the Tambov State University named after G.R. Derzhavin. Tambov, 2005.

6. Arzamastsev A.A., Azarova P.A., Zenkova N.A. Model of professional and personal qualities of university students on the basis of an artificial neural network with adaptive structure // Tambov University Review. Series: Natural and Technical Sciences. Tambov, 2007. Vol. 12. Issue. 5. P. 633-639.