EN / RU
ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ.

 

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

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

Генетические алгоритмы имеют ряд особенностей, отличающих их от традиционных методов:

 

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

2.      Для поиска генетический алгоритм использует несколько точек поискового пространства одновременно (распараллеливание), а не переходит от точки к точке, как это делается в традиционных методах. То есть генетические алгоритмы оперируют одновременно со всей совокупностью допустимых решений.

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

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

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

 

 

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

 

Экземпляр кодовой последовательности называют хромосомой, особью или индивидуумом. Хромосомы могут кодироваться либо в двоичном формате, либо в формате с плавающей запятой. Представление в двоичном формате признается более удобным, в этом случае для кодирования каждого параметра выделяется n-бит, число n в общем случае может быть разным. Если параметр может изменяться между минимальным (min) и максимальным (max) значениями, можно использовать формулы преобразования.

 

 

 

Где g – значение параметра в двоичном формате, r – значение параметра в формате с плавающей запятой.

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

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

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

 

 

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

Инверсия представляет собой циклическую перестановку бит в хромосоме случайное число раз. Пример инверсии:

 

 

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

 

1.      Сформировано заданное число поколений.

2.      Популяция достигла заданного уровня качества.

3.      Достигнут некоторый уровень сходимости, при котором улучшение популяции не происходит.

 

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

В общем случае процесс обучения нейронной сети заключается в подаче на вход и выход сети пары обучающих векторов, вида (X,Y), где X = (x1, x2, .. xn), а

 Y = (y1, y2, .. yn), и использование различного рода алгоритмов для подстройки таких базовых характеристик сети, как:

-         количество скрытых слоев,

-         количество нейронов в каждом скрытом слое,

-         отдельных элементов матрицы коэффициентов сети,

-         функций активации нейронов.

 

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

-         количество входных и выходных нейронов;

-         набор обучающих примеров;

 

В результате мы должны получить возможно более точные оценки:

-         количество скрытых слоев;

-         количество нейронов в каждом скрытом слое;

-         значение весов в матрице коэффициентов;

-         вид функции активации для каждого нейрона.

 

 

Рис. Общая структура генетического алгоритма.

 

Целью оптимизации структуры нейронной сети является получение таких её харектеристик, при которых подача любого входного вектора из набора обучающих примеров будет приводить к появлению на выходе вектора, который будет отличаться от эталонного выходного вектора на величину не большую некоторого наперед заданного малого значения  δmax → 0;

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

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

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

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

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

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

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

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

Данный недостаток успешно преодолевается в сетях, построенных на моделях с нечеткой логикой. Очевидными преимуществами такого подхода является прозрачность логического вывода и возможность описания условий решения задачи на языке, близком к естественному. Как следствие этого – более высокая эффективность в решении определенного круга задач, которые допускают успешную формализацию средствами математического аппарата нечеткой логики. При использовании механизма нечеткого вывода для обобщенной трехслойной нейронной сети, 1-й слой нейронов выполняет функцию введения нечеткости на заданных функциях принадлежности входов; 2-й слой отображает совокупность нечетких правил; 3-й слой выполняет функцию приведения к четкости. Каждый из этих слоев характеризуется набором параметров функций принадлежности, нечетких решающих правил, активационных функций и весовых коэффициентов, настройка которых производится так же, как и для обычных нейронных сетей.

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

 

ЛИТЕРАТУРА

 

1.      В.В. Круглов, М.И. Дли. Р.Ю. Голунов.  «Нечеткая логика и искусственные нейронные сети» М.Физматлит. 2001г.

2.      А.В.Назаров, А.И.Лоскутов. Нейросетевые алгоритмы прогнозирования и оптимизации систем. НиТ, СПб. 2003г.

 

 

 




Комментарии пользователей:

Mujahid2012-04-10 04:14:50
Never would have thunk I would find this so indispnesbale.



Добавить комментарий:

Имя:   
Текст:




Внимание! При перепечатке эта ссылка обязательна!