Обзор нейроcимуляторов для персональных компьютеров и кластерных систем

УДК 519.95

ОБЗОР НЕЙРОЄНМУЛЯТОРОВ ДЛЯ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ

И КЛАСТЕРНЫХ СИСТЕМ

© О.В. Крючин, А.С. Козадаев, А.А. Арзамасцев

Ключевые слова: искусственные нейронные сети; кластерные системы.

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

ВВЕДЕНИЕ

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

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

В мире существует более сотни коммерческих [1] (еще больше некоммерческих) нейросетевых программ, большинство из которых являются универсальными.

Целью данной работы является обзор существующих симуляторов для персональных компьютеров и кластерных систем и анализ возможности их использования.

НЕЙРОСИМУЛЯТОРЫ ДЛЯ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ

BrainMaker - это программа, с которой началась история применения ИНС в России. В этом пакете на профессиональном уровне реализована классическая многослойная ИНС. В последнее время BrainMaker

чаще всего используется не как самостоятельная программа, а как надстройка к программе TradeStation для анализа экономических параметров в режиме реального времени [1-3].

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

NeuroShell имеет модуль рыночных индикаторов, позволяющий использовать более 20 индикаторов технического анализа при работе с нейросетью [1, 4].

Семейство программ NeuroScalp построено по модульному принципу. Базовым модулем является модуль классического технического анализа, в который интегрируются дополнительные модули, реализующие различные методы анализа финансовых рынков. В настоящее время доступны следующие дополнительные модули:

- NeuroScalp Экспертный модуль, российский рынок акций - модуль содержащий готовые нейросети для трех российских акций - РАО Газпром, РАО ЕЭС России, НК Лукойл;

- NeuroScalp Модуль Нейронных сетей - эмулятор классических многослойных нейронных сетей с использованием генетических алгоритмов;

- NeuroScalp Модуль Карты Кохонена - модуль, реализующий карты Кохонена в приложении к финансовым рынкам;

- NeuroScalp Модуль Статистика - модуль статистической обработки финансовой информации и анализа рынка.

NeuroScalp имеет удобный интерфейс и реализует необходимое множество методов, требуемых для реализации различных идей пользователя [1].

Java Neural Network Simulator (JNNS) - эмулятор для искусственных нейронных сетей, разработанный в University Of Wilhelm-Schickard-Institute For Computer Science (WSI) в Tubingen, в Германии. Он основан на Stuttgart Neural Network Simulator (SNNS) ядро 4.2, с новым графическим интерфейсом пользователя [5].

Помимо нового интерфейса пользователя, большое преимущество JavaNNS - его увеличенная независимость платформы. Принимая во внимание, что SNNS был создан прежде всего для рабочих станций Unix, JavaNNS [6] также работает на PC, при условии, что установлена Java-машина.

NeuralWorks Predict - объединенный, современный инструмент для быстрого создания и изучения задач классификации и прогнозирования. Predict комбинирует (объединяет) ИНС-технологию с генетическими алгоритмами, статистикой и нечеткой логикой, чтобы автоматически найти оптимальные или почти оптимальные решения к широкому диапазону проблем. Predict включает годы моделирования и опыта анализа, полученного от работы с широким разнообразием проблем интерпретации и анализа [7].

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

SimBrain - свободный инструмент для формирования, выполнения и анализа ИНС, который был создан с философией непринужденности использования и интуитивного проекта. SimBrain стремится быть удобным в работе насколько это возможно, поэтому большое внимание уделено визуализации. SimBrain разработан на языке Java и работает на операционных системах Windows, Mac OS X, и Linux. SimBrain имеет открытые исходные коды и использует лицензию GNU [8].

Программа NeuroPro является свободно распространяемой бета-версией программного продукта для работы с нейронными сетями и производства знаний из данных с помощью обучаемых ИНС. NeuroPro разработан в институте вычислительного моделирования СО РАН в г. Красноярске Виктором Царегородцевым. Программа позволяет:

- создание нейропроекта;

- подключение к нейропроекту файла (базы) данных;

- редактирование файла данных;

- добавление в нейропроект нейронной сети слоистой архитектуры с числом слоев нейронов от 1 до 10, числом нейронов в слое - до 100 (число нейронов для каждого слоя сети может задаваться отдельно);

- обучение нейронной сети решению задачи предсказания или классификации;

- тестирование нейронной сети на файле данных;

- вычисление показателей значимости каждого из входных сигналов для решения задачи, сохранение вычисленных показателей значимости в файле на диске;

- упрощение нейронной сети;

- генерация и визуализация вербального описания нейронной сети, редактирование и сохранение вербального описания нейронной сети в файле на диске;

- сохранение нейропроекта на диске [9].

Пакет Neuro Office предназначен для проектирования интеллектуальных программных модулей, построенных на основе нейронных сетей с ядерной организацией. Результатом проектирования является обученная нейронная сеть с программным интерфейсом, соответствующим модели многокомпонентных объектов. Нейронные сети могут быть использованы для задач прогнозирования финансовой и социальной политики, для построения экспертных систем, для распознавания образов в задачах цифровой обработки сигналов (включая реализации быстрых алгоритмов спектральных преобразований).

Neural Network Constructor (NNC) - это программа построения, настройки и эксплуатации нейронных сетей. Она написана на языке высокого уровня Delphi и работает под управлением операционной системы Microsoft Windows на TBM-совместимых компьютерах. Автор программы - Владимир Крепец. Управление построением, настройкой и эксплуатацией нейронных сетей с помощью этого конструктора настолько просто, что позволяет даже непосвященному легко работать с программой. Создание нейронной сети может производиться с помощью манипулятора мышь. Можно создавать и удалять нейроны и связи между ними, передвигать нейроны по полю и задавать типы нейронов, от которых зависит функция активации нейрона. На этом этапе никакого контроля не проводится, т. е. можно создавать произвольные нейронные сети. Также предусмотрена возможность сохранения и загрузки ранее созданных нейронных сетей.

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

Neural Network Wizard (NNW) - программная реализация многослойной нейронной сети обратного распространения. Способ распространения - бесплатно для некоммерческого применения [10].

Развитие системы прекращено. Заложенные в ней идеи получили продолжение в аналитической платформе Deductor.

Возможности системы:

- получение данных для обучения из текстового файла;

- различные способы нормирования данных;

- создание многослойных нейронных сетей различной конфигурации;

- настройка параметров обучения нейросистемы;

- возможность сохранить результаты обучения;

- автоматизация обучения системы;

- автоматическое формирование обучающего и тестового множества.

Deductor является аналитической платформой -основой для создания законченных прикладных решений в области анализа данных. Реализованные в Deductor технологии позволяют на базе единой архитектуры пройти все этапы построения аналитической системы от создания хранилища данных до автоматического подбора моделей и визуализации полученных результатов. Deductor состоит из пяти компонентов: аналитического приложения Deductor Studio, многомерного хранилища данных Deductor Warehouse, средства тиражирования знаний Deductor Viewer, аналитического сервера Deductor Server и клиента для доступа к серверу Deductor Client [11].

Deductor Studio Academic 5.1 является некоммерческой реализацией проекта Deductor с 1995-2008 гг., BaseGroup Labs. Он предназначен только и исключительно для образовательных целей. Использование программы в коммерческих целях запрещено.

В состав Deductor Studio Academic 5.1 входят две реализации ИНС - Back Propagation (алгоритм обратного распространения ошибки) и Recilient Propagation (градиентный алгоритм RPROP).

ДОСТОИНСТВА И НЕДОСТАТКИ НЕЙРОСИМУЛЯТОРОВ ДЛЯ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ

Все вышеперечисленные нейростевые симуляторы имеют ряд общих свойств (табл. 1) [12]:

1) большинство ИНС моделей не имеют ограничений (по количеству нейронов, слоев и т. д.);

2) для подбора весовых коэффициентов требуются значительные временные затраты;

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

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

Первый способ проблематичен, т. к. даже наиболее производительные на сегодняшний день машины, такие как вычислительные станции Sun Microsystem (Oracle), не способны значительно сократить временные затраты обучения ИНС, и при нынешней тенденции развития компьютеров они еще долго не смогут сравниться с человеческим мозгом.

Второй способ представляется более реальным. Высокопроизводительные компьютеры, соединенные интеконектом - кластерные системы, в последние годы широко используются во всем мире как дешевая альтернатива суперкомпьютерам. Система требуемой производительности собирается из готовых, серийно выпускаемых компьютеров, объединенных опять же с помощью некоторого серийно выпускаемого коммуникационного оборудования [13]. Однако использование кластерных систем налагает на нейросимуляторы определенные требования, которым не отвечает ни один из перечисленных выше продуктов.

НЕЙРОСИМУЛЯТОРЫ ДЛЯ КЛАСТЕРНЫХ СИСТЕМ

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

T-Система представляет собой систему параллельного программирования, реализующую концепцию автоматического динамического распараллеливания программ. Это оригинальная российская разработка, которая была начата в Институте программных систем РАН в начале 1980-х гг. С 2000 г. к развитию и реализации Т-Системы подключились новые группы исследователей, в первую очередь, из Московского государственного университета имени М.В. Ломоносова. В последние годы Т-Система развивалась в рамках су-перкомпьютерной Программы СКИФ Союзного государства Российской Федерации и Республики Беларусь и сегодня претерпевает переход из категории экспериментальных в разряд промышленных систем [14].

Таблица 1

Сравнительные характеристики нейростевых симуляторов

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

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

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

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

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

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

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

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

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

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

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

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

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

Исследования, выполняемые в ИПС РАН, показывают, что представляются перспективными попытки использования Т-Системы не только для кластеров, но и для метакластерных установок, и для территориально распределенных неоднородных установок. Имеются предпосылки для того, чтобы использовать Т-Систему в качестве подхода к реализации интеграции вычислительных мощностей в GRID-системах [15, 16].

Нейросимулятор института теоретической физики им. Л.Д. Ландау РАН. В основу алгоритма обучения нейросети заложен алгоритм обратного распространения ошибки (error backpropagation). Модуль обучения представляет собой программу, которая в качестве входных данных получает набор векторов известный вход - известный выход, а также ряд управляющих параметров. Важнейшие из них - количество скрытых нейронов, темп обучения, критерий остановки счета и т. д. Также возможен выбор вида алгоритма, при этом необходимо задать значения дополнительных управляющих параметров. Во время работы модуля через заданное количество итераций или по требованию пользователя происходит передача данных от сервера к клиенту, которые затем представляются пользователю в текстовом и/или графическом виде с помощью веб-интерфейса.

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

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

Вся работа пользователя с нейросервером осуществляется с помощью веб-интерфейса со страницы

http://neural.chg.ru/. После этого необходимо осуществить авторизацию - ввод имени входа и пароля. В дальнейшем пользователь получает доступ к своей личной рабочей странице, которая обеспечивает:

- работу с сохраненными задачами - запуск на счет, просмотр, редактирование, удаление;

- посылку на сервер файла задачи пользователя;

- управление работой сервера - остановку, изменение параметров во время работы, завершение, удаление задачи;

- вывод результатов в текстовом и графическом виде и передачу полученной матрицы весов на компьютер пользователя;

- сохранение результатов.

Интерфесная часть нейросервера реализована под управлением apache-1.3.6 с использованием модулей CGI, написанных на Fortran 77, Perl5, Python-1.5.2. В реализации нейросервера также используются Java-апплеты, но только для редактирования и представления задач, что резко уменьшает объем пересылаемых данных. Для работы с нейрокомпьютером достаточен любой компьютер с веб-браузером, имеющий подключение к Интернету. На 20 апреля 2001 г. на сервере было зарегистрировано 420 пользователей, использующих его для решения своих задач. Нейросервер запускался около 8000 раз за этот период [17].

Nimfa. В лаборатории искусственных нейронных сетей ВНИИТФ разработан программно'-аппаратный комплекс Nimfa, в рамках которого реализован ряд нейросетевых архитектур и различные алгоритмы их обучения [18].

Данный продукт используется только внутри лаборатории и не находится в свободном доступе.

ДОСТОИНСТВА И НЕДОСТАТКИ НЕЙРОСИМУЛЯТОРОВ ДЛЯ КЛАСТЕРНЫХ СИСТЕМ

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

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

ВЫВОДЫ

Таким образом, на сегодняшний день существуют три основных вида реализаций ИНС:

1) продукты, ориентированные на конечного пользователя, имеющие, как правило, графический интерфейс и работающие на персональных компьютерах -NNC, JavaNNS и т. д. [5, 6];

2) компоненты параллелизма, ориентированные на программиста или технического специалиста, не являющиеся полноценными продуктами и требующие каких-либо дополнительных инструментов - T-Система, параллельная реализация университета Ландау и т. д. [14, 17];

3) программно-аппаратные решения - Nimfa и т. д. [18].

ЛИТЕРАТУРА

1. Остроухов И., Панфилов П. Нейросети: работа над ошибками.

Электрон. дан. URL: http://www.toracentre.ru/library/nscalp/

spekulant02.htm, свободный. Загл. с экрана.

2. BrainMaker for Windows and Macintosh. Электрон. дан. URL: http://www.calsci.com/BrainMaker.html, свободный. Загл. с экрана.

3. TradeStation Securities. Электрон. дан. URL: http://www.tradesta-tion.com, свободный. Загл. с экрана.

4. Advanced Neural Network Software for Financial Forecasting and Stock Prediction. Электрон. дан. URL: http://www.neuroshell.com, свободный. Загл. с экрана.

5. University of Tubingen: JavaNNS. Электрон. дан. URL:

http://www.ra.cs. unituebingen. de/s oftware/JavaNN S, с вободный. Загл. с экрана.

6. SNNS - Stuttgart Neural Network Simulator. Электрон. дан. URL: http://www.ra.cs.unituebingen.de/SNNS, свободный. Загл. с экрана.

7. NeuralWare | Products | NeuralWorks Predict. Электрон. дан. URL: http://www.neuralware.com/products.jsp, свободный. Загл. с экрана.

8. Simbrain. Электрон. дан. URL: http://www.simbrain.net, свободный. Загл. с экрана.

9. NeuroPro - нейронные сети, анализ данных, прогнозирование и классификация. Электрон. дан. URL: http://www.neuropro.ru, свободный. Загл. с экрана.

10. BaseGroup.ru: Neural Network Wizard. Электрон. дан. URL: http://www.basegroup.ru/download/demoprg/nnw, свободный. Загл. с экрана.

11. BaseGroup.ru. Deductor. Электрон. дан. URL: http://www.base-group.ru/ deductor, свободный. Загл. с экрана.

12. Крючин О.В., Арзамасцев А.А., Королев А.Н., Горбачев С.И., Семенов Н.О. Универсальный симулятор, базирующийся на технологии искусственных нейронных сетей, способный работать на параллельных машинах // Вестник Тамбовского университета. Серия Естественные и технические науки. Тамбов, 2008. Т. 13. Вып. 5. С. 372-375.

13. Букатов А.А., Дацюк В.Н., Жегуло А.И. Программирование многопроцессорных вычислительных систем. Ростов н/Д: Изд-во ООО ЦВВР, 2003. 208 с.

14. Суперкомпьютерная программа Скиф Союзного государства.

Электрон. дан. URL: http://skif.pereslavl.ru/skif/index.cgi7module-

=chap&action=getpage&data=publications%5Cpub2005%5CGRID-technology%5CGRID-technology.doc, свободный. Загл. с экрана.

15. Абрамов С.М., Адамович А.И., Коваленко М.Р. Т-система - среда программистрования с поддержкой автоматического динамического распараллеливания программ. Пример реализации алгоритма построения изображений методом трассировки лучей // Программирование. 1999. Т. 25 (2). С. 100-107; 1999. № 25 (2).

16. Абрамов С.М., Адамович А.И., Московский А.А., Шевчук Е.В., Шевчук Ю.В. Т-Система с открытой архитектурой // Труды Международной научной конференции «Суперкомпьютерные системы и их применение. SSA’2004», 26-28 окт. 2004 г. Минск, ОИПИ НАН Беларуси, 2004. С. 18-22.

17. Довженко А.Ю., Крашаков С.А. Параллельная нейронная сеть с удаленным доступом на базе распределенного кластера ЭВМ. URL: http://www.comphys.ru/Articles/cacr2001.htm. Загл. с экрана.

18. Федорова Н.Н., Терехов С.А. Параллельная реализация алгоритмов обучения нейронных сетей прямого распространения с использованием стандарта MPI. URL: // http://www.aconts.com/pub/archive/ ijcnn99_p423_rus.pdf Загл. с экрана.

19. Нейросимуляция // Компьютерра. 2002. 24 мая. URL:

http://online.computerra.ru/2002/445/18040/. Загл. с экрана.

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

Kryuchin O.V, Kozadayev A.S., Arzamastsev A.A. REVIEW OF NEURO-SIMULATORS FOR PERSONAL COMPUTERS AND CLUSTER SYSTEMS

The article considers the existing nowadays simulators of artificial neuron networks. The analysis of what kind of simulators can be used at personal computers and at cluster systems is conducted. Also on what category of rates every instrument is oriented is analyzed.

Key words: artificial neuron networks; cluster systems.