- •Содержание
- •Введение
- •1 Программное обеспечение реализации генетического алгоритма в составе системы выращивания топологии нейронной сети
- •1.1 Анализ требований
- •1.1.1 Постановка задачи
- •1.1.2 Анализ предметной области
- •1.1.2.1 Независимое применение генетических алгоритмов и нейронных сетей
- •1.1.2.2 Нейронные сети для поддержки генетических алгоритмов
- •1.1.2.3 Генетические алгоритмы для поддержки нейронных сетей
- •1.1.2.4 Применение генетических алгоритмов для обучения нейронных сетей
- •1.1.2.5 Генетические алгоритмы для выбора топологии нейронных сетей
- •1.1.2.6 Адаптивные взаимодействующие системы
- •1.1.2.7 Нейроэволюционные методы
- •1.1.3 Анализ существующих аналогов
- •1.1.4 Методы и средства решения поставленной задачи
- •1.1.4.1 Методы решения задачи и варианты использования разрабатываемого программного обеспечения
- •1.1.4.2 Технологические средства разработки
- •1.2 Математическая модель предметной области
- •1.3 Проектирование
- •1.2.1 Проектирование структур данных
- •1.3.2 Проектирование структуры программного обеспечения и алгоритмов
- •1.3.3 Проектирование пользовательского интерфейса
- •1.4 Описание программного обеспечения
- •1.5 Результаты тестирования
- •2 Технико-экономическое обоснование разработки по для реализации генетического алгоритма в составе системы выращивания топологии нейронной сети
- •2.1 Расчет затрат на разработку программы
- •2.2 Расчет цены разработанной программы
- •2.3 Расчет капитальных вложений
- •2.4 Расчет эксплуатационных расходов
- •2.5 Расчет денежного годового экономического эффекта
- •2.6 Определение показателей эффективности инвестиций
- •2.7 Вывод по разделу
- •3 Оптимизация зрительных условий труда пользователя пэвм
- •3.1 Условия работы пользователя пэвм
- •3.2 Требования к визуальным параметрам изображения
- •3.3 Требования к освещению помещений и рабочих мест с вдт и пэвм
- •Заключение
- •Список использованных источников
- •Листинг программы Приложение а
1.1.2.1 Независимое применение генетических алгоритмов и нейронных сетей
Генетические алгоритмы и нейронные сети могут независимо применяться для решения одной и той же задачи. Этот подход иллюстрируется на рисунке 1.1.
Например, описаны независимые применения нейронных сетей, генетических алгоритмов и алгоритма KNN «ближайший сосед» (К - means nearest neighbour) для решения задач классификации. В работе [3] проведено сравнение трехслойной однонаправленной нейронной сети с обучением по методу обратного распространения ошибки (обучение с учителем), сети Кохонена с самоорганизацией (обучение без учителя), системы классификации, основанной на генетическом алгоритме, а также алгоритма KNN «ближайший сосед».
Рисунок 1.1 – Генетический алгоритм и нейронная сеть независимо
применяются для решения одной и той же задачи
Авторы работы [2] считают независимое применение этих методов для решения задачи автоматической классификации результатов ЭМГ (электромиография - регистрация электрической активности мышц) вспомогательным объединением.
Известны и другие работы, в которых сравниваются возможности применения различных методов (в частности, генетических алгоритмов и нейронных сетей) для решения одних и тех же задач [4]. Примером задачи, которую можно решить с помощью как нейронной сети, так и генетического алгоритма, может служить задача о коммивояжере [5,6,7].
1.1.2.2 Нейронные сети для поддержки генетических алгоритмов
Большинство исследователей изучали возможности применения генетических алгоритмов для обеспечения работы нейронных сетей. К немногочисленным обратным случаям относится гибридная система, предназначенная для решения задачи трассировки [8, 9], которая классифицируется в [2] как пример вспомогательного объединения нейронных сетей и генетических алгоритмов. В этой системе генетический алгоритм используется в качестве оптимизационной процедуры, предназначенной для нахождения кратчайшего пути. Нейронная сеть применяется при формировании исходной популяции для генетического алгоритма. Этот подход схематически иллюстрируется на рисунке 1.2.
Рисунок 1.2 – Вспомогательное объединение нейронной сети с генетическим
алгоритмом
1.1.2.3 Генетические алгоритмы для поддержки нейронных сетей
Подход, основанный на использовании генетического алгоритма для обеспечения работы нейронной сети, схематически представлен на рисунке 1.3. Известно множество работ, посвященных подобному объединению рассматриваемых методов. Можно выделить три области проблем [2]:
применение генетического алгоритма для подбора параметров либо преобразования пространства параметров, используемых нейронной сетью для классификации;
применение генетического алгоритма для подбора правила обучения либо параметров, управляющих обучением нейронной сети;
применение генетического алгоритма для анализа нейронной сети.
Рисунок 1.3 – Вспомогательное объединение генетического алгоритма с
нейронной сетью
1.1.2.4 Применение генетических алгоритмов для обучения нейронных сетей
Мысль о том, что нейронные сети могут обучаться с помощью генетического алгоритма, высказывалась различными исследователями. Первые работы на эту тему касались применения генетического алгоритма в качестве метода обучения небольших однонаправленных нейронных сетей [10], но в последующем было реализовано применение этого алгоритма для сетей с большей размерностью [2].
Как правило, задача заключается в оптимизации весов нейронной сети, имеющей априори заданную топологию. Веса кодируются в виде двоичных последовательностей (хромосом). Каждая особь популяции характеризуется полным множеством весов нейронной сети. Оценка приспособленности особей определяется функцией приспособленности, задаваемой в виде суммы квадратов погрешностей, т.е. разностей между ожидаемыми (эталонными) и фактически получаемыми значениями на выходе сети для различных входных данных.
Приведем два важнейших аргумента в пользу применения генетических алгоритмов для оптимизации весов нейронной сети. Прежде всего, генетические алгоритмы обеспечивают глобальный просмотр пространства весов и позволяют избегать локальные минимумы. Кроме того, они могут использоваться в задачах, для которых информацию о градиентах получить очень сложно либо она оказывается слишком дорогостоящей.