Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_17.05..docx
Скачиваний:
9
Добавлен:
04.05.2019
Размер:
3.08 Mб
Скачать

1.1.3 Анализ существующих аналогов

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

Проведем анализ некоторых из них. Достоинства и недостатки всех этих продуктов в общем случае обусловлены алгоритмом, который они реализуют:

  1. JavaSANE и SANE-Cэти два пакета, реализуют такой метод настройки нейронной сети как SANE (Symbiotic Adaptive Neuro-Evolution). Рассматривается развитие двух популяций, в одной из которых особи представляют собой отдельные нейроны, а в другой содержится информация о структурах НС. Недостатком этого метода является ограничение на количество скрытых нейронов и связей;

  2. ESP C++ и ESP JAVA 1.1 – это пакеты, реализованные соответственно на С++ и JAVA, включают в себя код алгоритма Enforced Sub-Populations Method (ESP). Этот алгоритм является развитием алгоритма SANE. Основным его отличием является то, что структура сети фиксирована, и задается априорно. Популяция нейронов разбивается на подпопуляции, в каждой из которых эволюция идет независимо. Благодаря распараллеливанию поиска решения, а также упрощению задачи за счет отказа от эволюции структуры НС, ESP быстрее, чем SANE, иногда на порядок;

  3. NEAT C++, NEAT:ANJIданные пакеты представляют реализацию алгоритма NEAT (Neural Evolution through Augmenting Topologies). Позволяет настраивать структуру сети, причем без ограничений на ее сложность. В алгоритме используется ряд приемов, такие, например, как исторические метки и специализация особей, позволяющих сделать процесс эволюции существенно более эффективным;

  4. SharpNEAT включает в себя реализацию двух методов NEAT и HyperNEAT. Имеет графический интерфейс, а также предоставляет две задачи «Исключающее ИЛИ» и “Хищник-жертва” для экспериментов с настройками нейросетей;

  5. JNEAT приложение с графическим интерфейсом, предоставляет реализацию алгоритма настройки сети NEAT. Включает в себя две задачи для экспериментов «Исключающее ИЛИ» и «3-bit parity»;

  6. NEAT Delphiтоже реализует алгоритм NEAT, имеет графический интерфейс и целых 6 задач для экспериментов с нейронными сетями;

  7. NEAT Matlab – пакет, реализующий алгоритм с помощью Matlab и включающий задачу «Исключающее ИЛИ» для экспериментов.

Характеристики и особенности упомянутых программных средств приведены в сводной таблице 1.3.

Основные критерии для сравнения программ – аналогов:

  1. интерфейс – описывает наличие и удобство интерфейса пользователя;

  2. алгоритм – какой нейроэволюционный метод реализован;

  3. метод кодирования нейронной сети – прямой или косвенный;

  4. настройка - некоторые алгоритмы позволяют настраивать только параметры сети при неизменной топологии, другие только топологию. Есть методы, которые позволяют настраивать и веса, и структуру сети.

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

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

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

  3. для наглядности топология сети отображается в виде графа;

  4. удобный, интуитивно понятный графический интерфейс.