Параллельная нейронная сеть с удаленным доступом на базе распределенного кластера ЭВМ, А.Ю. Довженко, С.А. Крашаков, 2001 Печать

Параллельная нейронная сеть с удаленным доступом на базе распределенного кластера ЭВМ

А.Ю. Довженко, С.А. Крашаков

Тезисы докл. II международн. симп. "Компьютерное обеспечение химических исследований" (Москва, 22-23 мая 2001 г.) и III Всерос. школы-конф. по квантовой и вычисл. химии им. В.А. Фока.  с. 52-53

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

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

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

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

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

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

Программная часть нейросервера

В основу алгоритма обучения нейросети заложен алгоритм обратного распростра­не­ния ошибки (error backpropagation) [2].  Модуль обучения представляет собой программу, которая в качестве входных данных получает набор векторов «известный вход – известный выход», а также ряд управляющих параметров. Важнейшие из них – количество скрытых нейронов, темп обучения, критерий остановки счета и т.д. Также возможен выбор вида алгоритма, при этом необходимо задать значения  дополнительных управляющих параметров. Во время работы модуля через заданное количество итераций или по требованию пользователя происходит передача данных от сервера к клиенту, которые затем представляются пользователю в текстовом и/или графическом виде с помощью Web-интерфейса.

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

Возможность работы уже обученной нейросети на сервере обеспечивает модуль работы, который использует полученную при обучении весовую матрицу.

Нейросервер реализован на языке Фортран 77 с использование компилятора g77 под управлением операционной системы FreeBSD.

Интерфейс удаленного доступа

Вся работа пользователя с нейросервером осуществляется с помощью Web-интерфейса со страницы http://neural.chg.ru/. После этого необходимо осуществить авторизацию – ввод имени входа и пароля. В дальнейшем пользователь получает доступ к своей личной рабочей странице, которая обеспечивает: 1) работу с сохраненными задачами – запуск на счет, просмотр, редактирование, удаление; 2) посылку на сервер файла задачи пользователя; 3) управление работой сервера – остановку, изменение параметров во время работы, завершение, удаление задачи; 4) вывод результатов в текстовом и графическом виде и передачу полученной матрицы весов на компьютер пользователя; 5) сохранение результатов.

Интерфесная часть нейросервера реализована под управлением apache-1.3.6 с использование модулей CGI, написанных на Fortran 77. Perl5, Python-1.5.2. В реализации нейросервера также используются Java-апплеты, но только для редактирования и представления задач, что резко уменьшает объем пересылаемых данных.

Для работы с нейрокомпьютером достаточен любой компьютер с Web-броузером, имеющий подключение к Интернет. На 20 апреля 2001 г. на сервере зарегистрировано 420 пользователей, использующих его для решения своих задач. Нейросервер запускался около 8000 раз за этот период.

Кластерная реализация.

Нейросервер развернут на распределенном вычислительном кластере Института теоретической физики им. Л.Д. Ландау. Кластер представляет собой локальную вычислительную подсеть из машин класса Pentium II/III – 300-800 MHz. Количество машин в кластере – 10, половина из них – 2-х процессорные, суммарная теоретическая производительность – 10 Gflops, скорость передачи данных в сети – 100 Mbps (коммутируемый Fast Ethernet). Операционная система – FreeBSD.

Одной из главных задач работы является распараллеливание нейровычислений на распределенном вычислительном кластере. Подобные подходы в мире стали развиваться только в последние год-два. В качестве примера можно привести реализацию нейросети на кластере Австралийского национального университета [3]. С другой стороны, удаленное управление приложениями через Интернет является бурно развивающейся областью информационных технологий [4-5], но авторам не удалось обнаружить реализаций параллельных нейроалгоритмов.

Можно говорить о двух разных направлениях распараллеливания нейровычислений. Наиболее ресурсоемкими операциями в нейровычислениях вообще и в используемом нами алгоритме обратного распространения ошибок, в частности, являются матричные операции (скалярное умножение, умножение матрицы на вектор и т.п.). Существуют хорошо отработанные методы распараллеливания таких вычислений на распределенных вычислительных системах, что и реализовано нами в алгоритме Parallel error back propagation с использованием библиотеки MPI.

В практике нейровычислений наряду со стандартными Gflops используются такие параметры, как количество умножений с суммированием в секунду (CPS) или количество измененных элементов матрицы весов в секунду (CUPS). Для типичной тестовой задачи (5 входов, 5 выходов, 15 скрытых нейронов на одном промежуточном слое (250 синапсов), 1000 векторов для обучения) производительность обучения нейросети на одиночном процессоре (P-III/450MHz) составила 1.6 MCUPS. Та же задача, выполняющаяся на 2-х процессорах двухпроцессорной машины с использованием MPI, дает производительность 3.0 MCUPS. При использовании всех процессоров кластера ИТФ производительность поднимается до 16-18 MCUPS.

Прикладные результаты

Авторами были разработаны 2 специализированные нейросети.

1.      Нейросеть для восстановления пространственной  структуры в отливках. По известным параметрам металлографического шлифа востанавливается пространственное распределение тугоплавких зерен в матрице [6].

2.      Нейросеть для определения скорости горения в СВС – системах. В процессах СВС – скорость горения зависит от большого количества параметров (плотность, химический состав, пористость, температура и т.д.). Нейросетевой метод позволяет в этом случае с хорошей точностью предсказывать скорость горения.

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

Будущие исследования:

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

Авторы благодарят  Л.Н.Щура за поддержку работы и полезные обсуждения.

Работа выполнена при поддержке РФФИ, грант 99-07-90071.

Литература

1.             Галушкин А.И. «Теория нейронных сетей», М: Издательское предприятие редакции журнала “Радиотехника”, 2000, 415 с.

2.             Уосерман Ф. «Нейрокомпьютерная техника: теория и практика», М.: Мир, 1985, 294 с.

3.             Douglas Aberden, Jonathan Baxter, Robert Edwards.  92c/Mflops, Ultra-large-scale neural-network training on a PIII cluster.  Proc. Supercomputing’2000.

4.             S.S. Kosyakov, S.A. Krashakov, L.N. Shchur.  Distributed tasks management system Topos.  Proc. PDPTA’97, Las Vegas, June 30-July 3, 1997.

5.             Future Generation Computer Systems, Special Issue: Metacomputing: from workstation clusters to Internet computing. Vol.15, No.5-6, 1999.

6.             А.Ю. Довженко,  Использование нейронных сетей в металлографическом анализе. Физика металлов и металловедение (в печати).

7.             Коган А.Б. «Функциональная организация нейронных механизмов мозга». Л.: Медицина, 1979, 224 с.

 
Joomla SEF URLs by Artio