BC/NW 2017 № 1 (30):10.3

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА В НЕЙРОННЫХ СЕТЯХ

Курников Д.М., Петров С.А.

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

1.           создание начальной популяции;

2.           выполнение операций скрещивания (селекция);

3.           мутация и формирование новой, следующей популяции.

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

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

При решении практических задач с использованием генетического алгоритма обычно выполняют четыре предварительных этапа:

·   выбор способа представления решения;

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

·   определение способов «выживания» решений;

·   создание начальной популяции альтернативных решений.

При работе с генетическими алгоритмами выполняются следующие действия:

1.           генерируем начальную популяцию из N хромосом;

2.           измеряем для каждой хромосомы ее пригодность;

3.           отбираем пару хромосом-родителей с помощью способов отбора;

4.           совершаем рекомбинацию двух родителей, производя двух потомков;

5.           проводим мутацию потомков;

6.           повторяем шаги 3-5, пока не будет сгенерировано новое поколение популяции, содержащее N хромосом;

7.           Повторяем шаги 2-6 до окончания процесса.

 

Схема выполнения этапов генетического алгоритма приведена на рисунке 1.

http://www.intuit.ru/EDI/26_09_16_2/1474842043-31192/tutorial/20/objects/25/files/25_02.gif

Рисунок 1. Схема выполнения генетического алгоритма

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

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

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

У генетических алгоритмов имеются следующие особенности:

·          данные алгоритмы оперируют множеством параметров в закодированной форме;

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

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

·          в данных алгоритмах правила принятия решения носят вероятностный, а не детерминированный характер.

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

В плане использования можно выделить следующие достоинства:

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

-       генетические алгоритмы могут комбинироваться с другими видами алгоритмов – возможно сочетание как эволюционных, так и неэволюционных алгоритмов;

-       генетические алгоритмы просты в реализации при поиске в пространстве решений большой размерности и независимы от его структуры;

-       генетические алгоритмы инвариантны относительно вида целевой функции (функции приспособленности).

Из недостатков можно выделить следующие:

-       ввиду эвристичности генетических алгоритмов нет гарантии наличия критериев оптимальности полученного решения;

-       относительно высокая вычислительная трудоемкость. Она обуславливается оценкой как перспектив, так и ретроспектив для процесса моделирования эволюции;

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

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

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

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

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

Зададим топологию сети. В топологии нейронных сетей некоторые связи между нейронами различных слоев могут отсутствовать или существовать перекрестные связи между нейронами в слоях, не являющихся соседними (рисунок 2).

Рисунок 2. Вид популяции из нейронных сетей

Как видно из рисунка 2, для фиксированной топологии нейронной сети генетическая информация полностью содержится в значениях синаптических (от сл. «синапс») весов (W) и смещений (B). Таким образом, вектор (W, B) рассматривается как хромосома. Блок-схема применения генетического алгоритма при обучении сети приведена на рисунке 3.

 

Рисунок 3. Схема применения генетического алгоритма к обучению нейронной сети

 

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

Генетический алгоритм заложен в основу некоторых программных решений, реализующих нейронные сети. Например, эволюционная модификация данного алгоритма является частью самообучающейся системы IBM Watson. Широкого распространения и применения в прикладных задачах с использованием нейронных сетей генетический алгоритм ещё не получил, т.к. является достаточно сложным для реализации и адаптации в определённых областях.

Стоит отметить, что генетический алгоритм является эвристическим, т.е. он не является гарантированно точным или оптимальным. Однако применение данного алгоритма считается достаточным для решения определённых задач. В основе генетического алгоритма лежит практический подход, поэтому он часто подвергается критике. Так известный исследователь алгоритмов Стивен С. Скиена, профессор кафедры вычислительной техники университета Стоуни—Брук и лауреат премии института IEEE, писал, что не находил такой задачи, для решения которой генетические алгоритмы были бы самым подходящим и оптимальным средством.

 

Список использованной литературы

1.                Хайкин С. Нейронные сети: полный курс, 2¬e издание.:Пер. с анrл. – М. Издательский дом "Вильямс", 2006.

2.                Курейчик В.М. Генетические алгоритмы. Обзор и состояние // Новости искусственного интеллекта. — 1998.

3.                Стивен С. Скиена Алгоритмы. Руководство по разработке – СПб: БХВ-Петербург, 2011