Главная > Нейронные сети, генетические алгоритмы и нечеткие системы
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

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

4.12.7.1. Эволюция весов связей

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

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

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

2) Расчет общей среднеквадратичной погрешности между фактическими и заданными значениями на всех выходах сети при подаче на ее входы обучающих образов. Эта погрешность определяет приспособленность особи (сконструированной сети); в зависимости от вида сети функция приспособленности может быть задана и другим образом.

3) Репродукция особей с вероятностью, соответствующей их приспособленности, либо согласно их рангу (в зависимости от способа селекции - например, по методу рулетки или ранговому методу).

4) Применение генетических операторов - таких как скрещивание, мутация и/или инверсия для получения нового поколения.

Блок-схема, иллюстрирующая эволюцию весов, представлена на рис. 4.119. В соответствии с этой схемой были рассчитаны веса для нейронной сети, реализующей систему XOR с помощью программы Evolver (примеры 4.23 - 4.27) и с помощью программы FlexTool (пример 4.20). В соответствии с первым этапом типового цикла эволюции априорно задаются и остаются неизменными архитектура сети, определяющая количество слоев, число нейронов в каждом слое и топологию межнейронных связей, а также правило обучения сети. Приспособленность каждой особи (генотипа) оценивается значением среднеквадратичной погрешности, рассчитанной по соответствующей этой особи нейронной сети (фенотипу).

252.jpg

Рис. 4.119. Блок-схема генетического алгоритма поиска наилучшего набора весов нейронной сети (случай эволюции весов).

В представленном процессе эволюционного обучения реализуется режим так называемого пакетного обучения (batch training mode), при котором значения весов изменяются только после предъявления сети всех обучающих образов. Такой прием отличается от применяемого в большинстве последовательных алгоритмов обучения - например, в методе обратного распространения ошибки веса уточняются после предъявления сети каждой обучающей выборки.

Рассмотрим более подробно первый этап эволюционного подхода к обучению, связанный с фиксацией схемы представления весов. Как уже отмечалось, необходимо выбрать между бинарным представлением и кодированием весов действительными числами. Помимо традиционного двоичного кода, может применяться код Грея, логарифмическое кодирование (см. п. 4.8.4) либо другие более сложные формы записи данных [3]. В роли ограничителя выступает требуемая точность представления значений весов. Если для записи каждого веса используется слишком мало битов, то обучение может продолжаться слишком долго и не принести никакого эффекта, поскольку точность аппроксимации отдельных комбинаций действительных значений весов дискретными значениями часто оказывается недостаточной. С другой стороны, если используется слишком много битов, то двоичные последовательности, представляющие нейронные сети большой размерности, оказываются очень длинными, что сильно удлиняет процесс эволюции и делает эволюционный подход к обучению нерациональным с практической точки зрения. Вопрос оптимизации количества битов для представления конкретных весов все еще остается открытым [47].

Для устранения недостатков схемы двоичного представления данных было предложено задавать значения весов действительными числами, точнее - каждый вес описывать отдельным действительным числом [2, 12, 35]. Такой способ кодирования реализован, в частности, в программе Evolver [49]. Он использовался при решении примеров 4.23 - 4.27.

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

 

Categories

1
Оглавление
email@scask.ru