Об одном эволюционном алгоритме настройки искусственных нейронных сетей

Автор: Дармаев Тумэн Гомбоцыренович, Хандаров Фдор Владимирович

Журнал: Вестник Бурятского государственного университета. Философия @vestnik-bsu

Рубрика: Математика и информатика

Статья в выпуске: SB, 2012 года.

Бесплатный доступ

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

Эволюционные алгоритмы, искусственные нейронные сети

Короткий адрес: https://sciup.org/148181340

IDR: 148181340

Текст научной статьи Об одном эволюционном алгоритме настройки искусственных нейронных сетей

Эволюционные алгоритмы (ЭА) - область вычислительного интеллекта, базирующаяся на идеях биологической эволюции. Среди ЭА выделяют четыре направления: генетические алгоритмы, эволюционное программирование, эволюционные стратегии, генетическое программирование [16]. Они моделируют процесс естественного отбора в популяциях, состоящих из отдельных агентов (особей) посредством применения генетических операторов отбора, мутации и воспроизводства. Для четырех упомянутых направлений существуют различия в представлении, использовании и конкретизации операторов, настройке параметров и др. [16]. В качестве иллюстрации приведем в общем виде схему генетического алгоритма:

Пусть в пространстве поиска х задана функция приспособленности G^X^), требуется найти х* = argmaxG(x) х* = argminG(x)

  • V Х 7 ИЛИ         хеХ         •

  • 1.    Случайным образом генерируется начальный конечный набор (называемый популяцией) проб-пых решений r (A ’—’Ps )'P,iSEA (называемых особями), где 5* - начальный размер популяции.

  • 2.    Производится оценка приспособленности текущего поколения, т.е. для каждой особи вычисля

  • 3.    Выход, если выполняется критерий останова, иначе - шаг 4.

  • 4.    Производится генерация нового поколения посредством применения операторов селекции ^, скрещивания С и мутации М : М -С • S^k\z^ и переход к пункту 2.

ется значение функции приспособленности:      (A ■•••■A y^i         )

Генетические операторы ^ С и М _ представляют собой упрощенные аналоги биологических процессов селекции, скрещивания и мутации [18].

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

ИНС можно представить в виде упорядоченного множества обрабатывающих элементов (нейронов), соединенных между собой взвешенными связями. Подобная структура может быть описана ориентированным графом, в котором каждой вершине 1 сопоставлена передаточная функция (функ ция активации) У       4 J , где является выходным сигналом вершины /, j -м вхо дом вершины i, wy - весом, приписанным связи между вершинами z и - порогом (смещением) вершины. Функции J1 обычно выбираются нелинейными (гиперболический тангенс, сигмоидальная функция, функция Гаусса и т.д.).

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

A м ->mm, ^е ду - количество примеров в обучающем множестве, ik - желаемый выходной сигнал для ^ -го примера, f^xk,W^ - сигнал, выдаваемый сетью для ^ -го примера, W - матрица весов ИНС.

Применение эволюционных алгоритмов для настройки искусственных нейронных сетей. В работах [3-9, 12-17] показано, что перспективным является применение ЭА к обучению ИНС, данная область в зарубежной литературе обозначается как EDNA (Evolutionary Design of Neural Architectures - эволюционное проектирование нейронных архитектур) [4]. При настройке и обучении ИНС эволюционным путем может не только решаться задача поиска весов связей, но также отыскиваться структура сети, параметры избранного алгоритма обучения, обучающая выборка и др. В последние годы одним из наиболее перспективных подходов признается одновременная эволюция весов и структуры нейронной сети, в зарубежной литературе фигурирующая под аббревиатурой TWEANN (Topology and Weight Evolving Artificial Neural Networks - эволюция топологии и весов искусственных нейронных сетей) [5].

При применении эволюционных алгоритмов для решения задачи TWEANN основной проблемой, которая стоит перед исследователем, является проблема кодирования (представления) ИНС, которое в общем случае определяет дальнейший выбор генетических операторов и от которого в большей степени зависит эффективность разрабатываемых алгоритмов [1, 5 ,9].

Оценивать различные представления можно различными способами; подробный набор критериев для оценки различных представлений ИНС включает следующие характеристики: полнота, замкнутость, компактность, масштабируемость, множественность, приспосабливаемость, модульность, избыточность и сложность [4, 9].

Способы кодирования классифицируются как прямые и непрямые. Непрямое кодирование подразумевает хранение информации, общей для ИНС: число и емкость слоев, плотность связей, типы участков для составных сетей и т.д. Это представление отличается большей компактностью и модульностью [4, 5, 9]. Однако в данном способе практически невозможно проследить, какие изменения в генотипе оказались ключевыми и привели изменениям в фенотипе, иными словами - трудно выявить 212

факторы, которые являются положительными для целевой функции адекватности ИНС. Не менее значимыми недостатками являются множество трудностей с подбором генетических операторов, сходимостью и производительностью. Прямое кодирование представляет ИНС в явном виде с указанием всех нейронов, связей и весов, что лишает данный вид представления модульности и увеличивает объемы хранимой информации, однако придает большую алгоритмизируемость и снижает расходы на кодирование/декодирование [12].

В целом можно отметить то, что работы в направлении разработки методик прямого и косвенного кодирования отмечаются как весьма перспективные, и исследования данной предметной области находятся сейчас в самом разгаре [3, 9, 12].

В нашей работе мы станем придерживаться прямого способа кодирования ИНС.

Начальная популяция, как правило, формируется случайным образом. В работах [5, 19] показано, что последовательное усложнение структуры в общем случае эффективней, чем последовательное упрощение, в силу минимизации размерности пространства поиска, поэтому начальная популяция особей должна формироваться из сетей без скрытых нейронов.

В различных работах поднимается вопрос о разрушающем эффекте оператора кроссовера (скрещивания) [1, 5, 14, 15]. Вопрос о характере задач, для которых оператор кроссовера эффективен, остается открытым. Показано, что кроссовер при использовании представления особей в виде битовых строк приводит к рекомбинации коротких подстрок (т.н. строительных блоков - building blocks [6]), и оценка для строки, получаемой в результате подобной операции, оказывается выше средней оценки родителей [14, 15]. Таким образом, кроссовер, как правило, более эффективен в пространствах поиска, где приспособленность особи хорошо соотносится с ее представлением. В случае искусственных нейронных сетей показано [15, 20, 21], что подобное соотношение нарушается в связи с характером самого пространства поиска. Также следует отметить повышение вычислительной трудоемкости для операций кодирования/декодирования. Данная проблема решается различными способами [14].

Алгоритм одновременной настройки весов и структуры нейросети. Будем использовать ЭА для обучения ИНС прямого распространения (без обратных связей). В качестве единственного репродуктивного оператора будем использовать адаптивный оператор мутации, тогда эффективность разрабатываемого алгоритма в основном будет обусловлена представлением особей (способом кодирования ИНС) и механизмами адаптации оператора мутации. Количество входных и выходных нейронов будем считать фиксированным и равным соответственно N, и No .

В качестве модели представления будем использовать следующую: каждая ИНС может быть однозначно охарактеризована списком своих связей (с указанием смежных нейронов и значением весового коэффициента) и списком узлов (с указанием входящих и исходящих связей). Отметим, что список узлов, отчасти дублирующий информацию, содержащуюся в списке связей, увеличивает объем памяти, требуемый для хранения информации о каждой ИНС, однако подобная избыточность по памяти доставляет небольшой выигрыш в вычислении выходного сигнала сети и позволяет отслеживать некоторые исторические изменения для каждой сети. Помимо кодирования собственно ИНС, в генотипе каждой особи будем хранить два параметра, характеризующие направление развития особи: direction G {0,1} (направление развития сети: при каждом усложнении принимает значение 1, при упрощении - 0) и age > 0 - возраст сети (количество итераций без структурных изменений).

Ближайшими аналогами подобного представления являются модели, используемые в алгоритмах NEAT [5] и NEvA [17]. В первом случае отличия проявляются в отсутствии исторических меток и наличии информации о связях, во втором - в наличии списка узлов. В обоих случаях также отсутствуют адаптационные характеристики.

Генотипическое представление

Список связей _______________________ ________________ Список узлов

Nt

1

2

3

4

5

6

7

8

Входящ. нейроны

1

2

2

3

3

6

7

7

Исходя щ. нейрины

6

6

7

7

5

7

4

5

Вес

0.18

0.47

0.45

0.79

0.12

0.92

0.64

0.34

Ne

1

2

3

4

5

6

7

Входящ. связи

-

-

-

7

5,8

1,2

3,4, 6

Исходящ. связи

1

2, 3

4.

5

-

-

6

7, 8

Адаптационные характеристики: age, ^Fitness

Фенотипическое представление

Рис. 1. Представление искусственной нейронной сети в качестве особи для разрабатываемого эволюционного алгоритма

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

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

  • 2.    Добавление связи. Для двух случайно выбранных нейронов образуется новая связь.

  • 3.    Изменение весов. Для всех связей ИНС с вероятностью применяется оператор Гауссовой мутации - к весам прибавляется случайно выбранное число, полученное с помощью нормального распределения с заданными параметрами.

Для дальнейших выкладок нам потребуются некоторые специфические характеристики ИНС:

  • •    Связность С = Ь/Ь^у; , где L - количество связей сети, Ь^щ = Nj * (N4 1 ,NO). + NH * No t ((NH* Nh ) ^ Nh ) / 2 - максимальное количество связей, Nb NH. No - количество входных, скрытых и выходных нейронов соответственно;

  • •    Структурный возраст age = 8ИегаНо,/Рiteration - отношение количества итераций без структурных изменений данной особи к общему возрасту популяции;

  • •    ^Fitness _ приращение фитнесс-функции относительно родительской особи.

Мутации 1-2 относятся к усложняющим структурным мутациям. Очевидно, что вероятность усложнения структуры pSM должна увеличиваться пропорционально в случаях, если структура особи не изменялась продолжительное время Я^' ^ "^ °° и при этом приращение приспособленности относи-„   , ДА —> О „ тельно родительской особи мало: 1    . Во всех остальных случаях - должны изменяться веса особи. При этом ti^' > ^ с количеством итераций, что отражает необходимость тонкой настройки

Psm В а е особей на поздних этапах эволюции:         а^ек               где Psm _ вероятность структур ной мутации, Pwm - вероятность мутации весов свяей, ( ’ ) _ параметры, подбираемые экспериментально. В случае, если структурная мутация происходит, требуется выбрать ее конкретный вид, т.е. решить: добавлять связь или добавлять нейрон. Решение зависит от показателя связности особи, если особь сильно связана - вероятность добавления нейрона будет выше, если особь слабо связана - выше будет вероятность добавления связи: РлсШоЗе 1 Разлей* ’ Разз!** В ^к+Р, где //,77 G (0,1)

Схема разработанного алгоритма, таким образом, имеет вид:

  • 1.    Генерация начальной популяции Ро из уникальных особей a, (i=l,..,N) - сетей без скрытых слоев с различными множествами W(i) связей.

  • 2.    Оценка приспособленности текущей популяции fitness(P1), если выполняются условия выхода (средняя приспособленность не изменяется в течение определенного количества итераций или достигнуто максимальное количество итераций) - шаг 7, иначе - шаг 3.

  • 3.    Выбор оператора мутации М( ).

  • 4.    Применение выбранного оператора мутации с одновременной оценкой полученных особей.

  • 5.    Формирование новой популяции Рщ.

  • 6.    Переход на шаг 1.

  • 7.    Выход.

В ходе шага 4 для каждой особи применяется выбранный для нее оператор мутации, в ходе шага 5 - особь с наилучшей приспособленностью из предыдущей популяции заменяет особь с наихудшей приспособленностью в новой популяции, т.е. реализуется стратегия элитизма [22].

Разработанный алгоритм реализован в виде библиотеки классов на языке C++.

Задача о балансировании шестов. Для тестирования алгоритма станем использовать известную в области адаптивного нейроуправления задачу о балансировании шестов [23], которая применяется для тестирования нейроэволюционных алгоритмов. Существуют различные разновидности рассматриваемой задачи в зависимости от количества шестов, характера воздействия на тележку, пространства движения тележки, наличия данных об угловых скоростях [24]. В работе будем рассматривать следующую постановку задачи: тележка перемещается в одном измерении, несет на борту два шеста различной длины, сила воздействия - непрерывна. Результаты работы разработанного алгоритма будут сравниваться с результатами работы алгоритмов NeVA [17], SANE [23], ESP [23], CMA-ES [25], NEAT[5], Число запусков алгоритма составит 100 с параметрами, указанными в таблице 1.

Таблица 1

______ Некоторые параметры разрабатываемого алгоритма на задаче с двумя маятниками ______

Параметр

Значение

Размер популяции

Случайный в диапазоне от 10 до 200

ВЛ1,а,Р

Случайные для каждого запуска из диапазона (0,1), на протяжении запуска - фиксированы.

Из таблицы 2 видно, что разрабатываемый алгоритм показал себя хуже CMA-ES и NEvA, опередив SANE, ESP и NEAT при чисто случайном подборе параметров Р’ П^-.Р и размера популяции.

Таблица 2

Результаты сравнения разрабатываемого алгоритма на задаче с двумя маятниками

Алгоритм

Среднее количество попыток

Размер популяции

Число неудач

SANE

12600

200

0

ESP

3800

200

0

NEAT

3578

150

0

Разраб, алгоритм

2651

85,7

0

NeVA

1448,55

18-200

0

CMA-ES

895

3

0

Сосредоточим наши дальнейшие исследования на подборе параметров ^ т1’а’Р и размера популяции. Установим Vй — *-*.5,7/— 0 п0 преющему будем подбирать а случайным образом, но по правилу а < Р

Таблица 3

Результаты сравнения разрабатываемого алгоритма на задаче с двумя маятниками при первоначальной фиксации параметров Zz 0 ^, /? 0, и размера популяции=50

Алгоритм

Среднее количество попыток

Размер популяции

Число неудач

SANE

12600

200

0

ESP

3800

200

0

NEAT

3578

150

0

Разраб, алгоритм

1722

50

0

NeVA

1448,55

18-200

0

CMA-ES

895

3

0

Устанавливая параметры ^ ' ’^ а <  Р , мы придаем большее значение связности и возрасту особи (важно на первоначальном этапе), а фиксируя размер популяции - искусственно ограничиваем количество вычислений целевой функции. Полученный результат подтверждает гипотезу о важности факторов, однако пока не позволяет улучшить показатели по сравнению с алгоритмом NeVA. Следует отметить также, что:

  • -    в среднем вычисление целевой функции в алгоритме NeVA «дешевле» в силу возможностей этого алгоритма по снижению размерности особей, поскольку структурно особи разрабатываемого алгоритма в среднем сложнее особей алгоритма NeVA;

  • -    CMA-ES не подбирает структуру сети, решая более простую задачу.

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

Дальнейшие исследования разработанного алгоритма следует сконцентрировать как на первоначальном подборе, так и на адаптации параметров М^^^’Р и размера популяции.

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

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

Статья научная