Программная реализация нейросетевых алгоритмов
Программная реализация нейросетевых алгоритмов с применением стандартных персональных электронно-вычислительных машин и пакета прикладных программ моделирования НС (нейропакеты).
В настоящее время известно большое количество нейропакетов, выпускаемых рядом фирм и отдельными исследователями и позволяющих конструировать, обучать и использовать нейронные сети для решения практических задач.
Рассмотрим несколько нейропакетов, предназначенных для реализации на персональных компьютерах в различных операционных средах, по степени их универсальности, а также с точки зрения простоты использования и наглядности представления информации.
1. Нейропакет BrainMaker Pro.
Одним из самых распространенных программных продуктов является семейство программ BrainMaker фирмы CSS (California ScientificSoftware). Первоначально разработанный фирмой Loral Space Systems no заказу NASA и Johnson Space Center пакет BrainMaker был вскоре адаптирован для коммерческих приложений и сегодня используется несколькими тысячами финансовых и промышленных компаний, а также оборонными ведомствами США для решения задач прогнозирования, оптимизации и моделирования ситуаций.
Назначение пакета BrainMaker — решение задач, для которых пока не найдены формальные методы и алгоритмы, а входные данные неполны, зашумлены и противоречивы. К таким задачам относятся прогнозирование курсов валют и акций на биржах, моделирование кризисных ситуаций, распознавание образов и многие другие. BrainMaker решает поставленную задачу, используя математический аппарат теории нейронных сетей (более конкретно — сеть Хопфилда с обучением по методу обратного распространения ошибки). В оперативной памяти строится модель многослойной нейронной сети, которая обладает свойством обучаться на множестве примеров, оптимизируя свою внутреннюю структуру. При правильном выборе структуры сети после ее обучения на достаточно большом количестве примеров можно добиться высокой достоверности результатов (97% и выше). Существуют версии BrainMaker для MS DOS и MS Windows, а также для Apple Macintosh. Кроме базовой версии пакета в семейство BrainMaker входят следующие дополнения:
BrainMaker Student — версия пакета для университетов. Она особенно популярна у небольших фирм, специализирующихся на создании приложений для не очень сложных задач.
Toolkit Option — набор из трех дополнительных программ, увеличивающих возможности BrainMaker: Binary, которая переводит обучающую информацию в двоичный формат для ускорения обучения; Hypersonic Training, где используется высокоскоростной алгоритм обучения; Plotting, которая отображает факты, статистику и другие данные в графическом виде.
BrainMaker Professional — профессиональная версия пакета BrainMaker с расширенными функциональными возможностями. Включает в себя все опции Toolkit.
Genetic Training Option (для BrainMaker Pro) — программа автоматической оптимизации нейронной сети для решения заданного класса задач, использующая генетические алгоритмы для селекции наилучших решений.
DataMaker Editor — специализированный редактор для автоматизации подготовки данных при настройке и использовании нейронной сети.
Training Financial Data — специализированные наборы данных для настройки нейронной сети на различные виды аналитических, коммерческих и финансовых операций, которые включают реальные значения макроэкономических показателей NYSE, NADDAW, ASE, OEX, DOW и др., индексы инфляции, статистические данные биржевых сводок по различным видам продукции, а также информацию по фьючерсным контрактам и многое другое.
BrainMaker Accelerator Pro — профессиональная многопроцессорная нейронная плата. Она содержит пять сигнальных процессоров TMS320C30 и 32 Мбайт оперативной памяти.
В настоящее время на рынке программных средств имеется большое количество разнообразных пакетов для конструирования нейронных сетей и решения различных задач. Пакет BrainMaker можно назвать ветераном рынка [20].
2.Нейропакет NeuroSolutions.
NeuroSolutions предназначен для моделирования большого набора нейронных сетей. Основное его достоинство состоит в гибкости: помимо традиционных нейросетевых парадигм (полносвязных и многослойных НС, самоорганизующихся карт Кохонена) нейропакет включает в себя мощный редактор визуального проектирования нейронных сетей, позволяющий создавать любые нейронные структуры и алгоритмы их обучения, а также вводить собственные критерии обучения. NeuroSolutions имеет хорошие средства визуализации структур, процессов и результатов обучения и функционирования нейронных сетей. Это ставит данный нейропакет на уровень CAD-систем (систем автоматизированного проектирования) проектирования и моделирования НС.
Пакет предназначен для работы Windows. Помимо средств взаимодействия с операционной системой, нейропакет снабжен генератором исходного кода и позволяет использовать внешние модули при создании и обучении нейронной сети. Пакет поддерживает программы, написанные на языке C++ для компиляторов Microsoft Visual C++ и Borland C++, а также в виде DLL-кода. Таким образом, NeuroSolutions является гибкой открытой системой, которую можно при необходимости дополнять и модифицировать. Пакет содержит встроенный макроязык, позволяющий производить практически любую настройку под конкретную задачу.
В пакете реализуется большой перечень нейронов, включая взвешенный сумматор (нейрон первого порядка), нейроны высших порядков (с перемножением входов), а также непрерывный интегрирующий нейрон. Функция активации нейрона может быть выбрана из пяти стандартных (кусочно-линейная, функция знака и три типа сигмоидальных) функций, а также задана пользователем. Связи между нейронами задаются произвольно на этапе проектирования и могут быть изменены в процессе работы. Поддерживаются все, типы связей: прямые, перекрестные и обратные. При этом хорошо реализована схема организации связей: можно задать одну векторную связь с заданной весовой матрицей, а не набор скалярных связей с весовыми коэффициентами.
Нейропакет NeuroSolutions содержит мощные средства для организации обучающих выборок. Встроенные конверторы данных поддерживают графические изображения в формате BMP, текстовые файлы с числовыми или символьными данными, а также функции непрерывного аргумента (например, времени), заданные в аналитическом виде или в виде выборки значений. Нейропакет позволяет использовать любые внешние конверторы данных.
На этапе обучения может быть использован широкий круг критериев обучения, как дискретных, так и непрерывных. Помимо этого можно вводить собственные критерии. Можно использовать как встроенный алгоритм обучения типа back-propagation или дельта-правила, так и использовать собственный. Система визуализации процесса обучения позволяет проводить анализ изменения весов непосредственно в процессе обучения и вносить коррективы. Может быть введена шумовая характеристика как при тестировании, так и при обучении нейронной сети. Можно задать аддитивный белый шум, шум произвольной природы, а также любой заданный тип шума (например, белый мультипликативный). Neurosolutions содержит генератор (мастер) стандартных нейросетевых архитектор (Neural Wizard, с помощью которого быстро задается архитектура, подбираете" обучающая выборка, критерии и методы обучения нейронной сети [20].
3. Нейропакет NeuralWorks Professional II/Plus.
NeuralWorks Professional является мощным средством для моделирования нейронных сетей. В нем реализованы 28 нейронных парадигм, а также большое количество алгоритмов обучения. Дополнительный модуль UDND (User Define Neural Dynamics) позволяет создавать собственные нейронные структуры.
Как и NeuroSolutions, NeuralWorks Professional имеет хорошую систему визуализации данных: структуры нейронной сети, изменения ошибки обучения, изменения весов и их корреляции в процессе обучения. Последнее является уникальным свойством пакета и полезна при анализе поведения сети.
В NeuralWorks Professional можно интегрировать внешние программные модули. Он имеет встроенный генератор кода, поддерживающий компилятор Microsoft Visual C++.
Способ представления информации незначительно отличается от NeuroSolutions [20].
4. Нейропакет Process Advisor.
Process Advisor предназначен для решения задач управления динамическими процессами (в частности, технологическими процессами). Однако он может считаться универсальным нейропа-кетом. В нем реализована только многослойная нейронная сеть прямого распространения, обучаемая с помощью модифицированного алгоритма обратного распространения ошибки. В пакет введена возможность работы с входными сигналами как с функциями времени, а не дискретным набором точек. Такой возможностью помимо Process Advisor обладает только NeuroSolutions. Кроме того, нейропакет Process Advisor позволяет осуществлять управление внешними аппаратными контроллерами, подключаемыми к компьютеру. Именно эти две особенности делают нейропакет Process Advisor примечательным [20].
5. Нейропакет NeuroShell 2.
NeuroShell 2 является одной из трех программ, входящих в состав пакета The Al Trilogy и представляет собой универсальный нейропакет для моделирования нескольких наиболее известных нейронных парадигм: многослойных сетей, сетей Кохонена и т. д.
NeuroShell 2 сильно проигрывает по сравнению с NeuroSolutions и NeuralWorks. Он имеет много мелких недостатков, существенно замедляющих подготовку и работу в среде нейропакета. Кроме недостаточно продуманного интерфейса нейропакет NeuroShell имеет и усложненную систему визуализации данных. Из-за отсутствия единого интегрального контроля данных в процессе обучения или работы нейронной сети часто приходится переключаться из одного режима в другой, что неудобно в использовании.
Для NeuroShell характерна жесткая последовательность действий при работе с нейронной сетью. Это удобно для начинающих пользователей. Однако, для того, чтобы внести небольшое изменение приходится выполнять заново всю последовательность действий.
NeuroShell предоставляет хорошие средства обмена данными с другими приложениями. Он обеспечивает обмен данными, представленными в текстовом бинарном виде, а также в наиболее популярных финансовых форматах MataStock и DowJones. Нейропакет имеет генератор исходного кода на языках Visual С и Visual Basic [20].