Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

Исследование эффективности реализации методов виртуальных частиц и команды экспертов на кластерной архитектуре

#2 февраль 2007

 

Фомин Ю.Н.
Сиротинина Н.Ю.

 

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

Предложены следующие варианты реализации ИНС на кластерной ПВС:

• команда экспертов

• метод виртуальных частиц

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

Эксперименты проводились на кластере КГТУ, который является типичным примером кластера, собираемого пользователем, созданного на базе учебных классов, объединенных в локальную вычислительную сеть. Структура системы кластера представлена на рисунке 1.

Рис.1 Структура кластера КГТУ

Программное обеспечение строится на базе свободно распространяемой ОС Linux Red Hat 9.0 и пакетов MPICH и MOSIX. Сервер выполняет функции сервера удалённой загрузки и содержит общую базу паролей и каталоги пользователей. Рабочие станции используются для загрузки заданий и имеют следующие характеристики: процессор Celeron 1.7 и ОЗУ 512 Мб.

ИНС были ориентирована на решение задачи распознавания (классификации) изображений, которые имели вид матриц из нулей и единиц. Размерность матриц: 10 на 10 символов. Распознавались пять классов изображений, которыми были буквы и символы: «А», «В», «С», «Х» и «+».

Характеристики ИНС:

- полносвязная многослойная ИНС обучаемая методом обратного распространения ошибки (пример двухслойной сети представлен на рис. 2.)

- параметр сигмоиды: 0.5

- начальный шаг при обучении: 0.1

- точность обучения: 0.01

- количество слоёв: 4

- количество нейронов в слое: 5

- для метода виртуальных частиц радиус облака: 0.01

Рис. 2 Двухслойная ИНС

Вершины-круги слева служат для распределения входных сиг­налов. Они не выполняют каких-либо вычислений, и по­этому не будут считаться слоем. Каждый элемент из множества входов Х отдельным весом соединен с каждым искусственным нейроном. А каждый нейрон выдает взвешен­ную сумму входов в сеть. Далее полученная сумма, как правило, преобразуется активационной функцией F и дает выходной нейронный сигнал, который поступает на следующий слой ИНС. После прохождения всех слоёв, на выходе ИНС получается выходной сигнал .

В качестве активационной функции была выбрана гладкая функция - сигмоида:

,

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

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

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

,

где I и J размерности матрицы входных сигналов, x - начальный входной сигнал, - сигнал после коррелятора сдвига, , , где AI&ltI и AJ&ltJ размерности матрицы входных сигналов с коррелятором сдвигом. В данном случае I=J=10 и AI=AJ=6.

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

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

На графике 1 представлены зависимости времени обработки тестовой выборки от количества узлов кластера для команд, состоящих из 5, 10, 15 и 20 экспертов. При обмене данными между процессами применялись следующие функции: MPI_Send() – передача данных; MPI_Resv() – приём данных. Эти функции организуют процесс обмена данными по типу «точка-точка».

График 1.

На графике 2 представлены зависимости времени обработки тестовой выборки от количества узлов для команд, состоящих из 5, 10, 15 и 20 экспертов. В этом эксперименте применялась функция коллективного обмена MPI_Gather().

График 2.

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

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

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

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

Таблица 1

Количество частиц

Количество узлов

Количество итераций

1

2

3

4

5

Время, с.

1

0,66

X

X

X

X

4046

2

1,594

1,169

X

X

X

2682

3

9,391

8,269

5,842

X

X

9531

4

8,084

6,511

4,605

3,59

X

5217

5

9,938

8,245

6,589

4,746

4,183

5088

6

11,954

10,263

6,922

6,338

5,109

4923

7

16,056

13,966

8,701

8,264

7,927

5379

8

21,864

18,919

12,637

10,243

9,081

5581

9

28,543

24,163

15

13,811

10,112

4363

10

30,569

26,654

16,902

14,946

10,637

4630

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

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

5,895/9531=0,000619.

Таблица 2

Количество частиц

Количество узлов

1

2

3

4

5

Время одной итерации, с.

1

0,000163

X

X

X

X

2

0,000594

0,000436

X

X

X

3

0,000985

0,000868

0,000613

X

X

4

0,00155

0,001248

0,000883

0,000688

X

5

0,001953

0,00162

0,001295

0,000933

0,000822

6

0,002428

0,002085

0,001406

0,001287

0,001038

7

0,002985

0,002596

0,001618

0,001536

0,001474

8

0,003918

0,00339

0,002264

0,001835

0,001627

9

0,006542

0,005538

0,003438

0,003165

0,002318

10

0,006602

0,005757

0,003651

0,003228

0,002297

Для удобства, зависимости из таблицы 2 представлены на графике 3 для 3, 5, 8 и 10 узлов.

График 3.

Как и ожидалось, время, затраченное на выполнение одной итерации обучения, с ростом числа частиц увеличивается. Причем нельзя сказать, что это время растёт пропорционально числу частиц.

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

ЛИТЕРАТУРА.

1. Миркес Е.М. Учебное пособие по курсу нейроинформатика. Красноярск, 2002.

2. Горбань А.Н., Россиев Д. Нейронные сети на персональном компьютере. Новосибирск: Наука, 1996.

3. Короткий С. Нейронные сети: алгоритм обратного распространения.

4. Гилев С.Е., Горбань А.Н., Миркес Е.М. Малые эксперты и внутренние конфликты в обучаемых нейронных сетях // Доклады Академии Наук СССР.- 1991.

5. Воеводин Вл.В. Технологии параллельного программирования. Message Passing Interface (MPI).

6. Евсеев И. MPI для начинающих. Учебное пособие + примеры.

7. Фильчаков А. Кластеры и кластеризация. КомпьютерПресс 10’2000.

8. Корнеев В.В. Параллельные вычислительные системы. Москва, 1999

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2020 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)