Об одном эволюционном алгоритме настройки искусственных нейронных сетей
Автор: Дармаев Тумэн Гомбоцыренович, Хандаров Фдор Владимирович
Журнал: Вестник Бурятского государственного университета. Философия @vestnik-bsu
Рубрика: Математика и информатика
Статья в выпуске: SB, 2012 года.
Бесплатный доступ
В статье рассматриваются вопросы эволюционной настройки искусственных нейронных сетей. Приводится аналитический обзор существующих подходов, выделяются требования к алгоритмам подобного рода. Приводится описание и результаты тестирования нового алгоритма одновременной настройки весов и структуры нейросети.
Эволюционные алгоритмы, искусственные нейронные сети
Короткий адрес: https://sciup.org/148181340
IDR: 148181340 | УДК: 004.8:
On evolutionary algorithm of artificial neural networks adjustment
The article deals with the issues of evolutionary adjustment of artificial neural networks. The analytical review of existing approaches is given, the requirements for such algorithms are highlighted. The description and the results of testing a new TWEANN-algorithm of simultaneous adjustment between weights and artificial neural networks are described.
Текст научной статьи Об одном эволюционном алгоритме настройки искусственных нейронных сетей
Эволюционные алгоритмы (ЭА) - область вычислительного интеллекта, базирующаяся на идеях биологической эволюции. Среди ЭА выделяют четыре направления: генетические алгоритмы, эволюционное программирование, эволюционные стратегии, генетическое программирование [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 не подбирает структуру сети, решая более простую задачу.
Таким образом, можно утверждать, что разрабатываемый алгоритм, уже при минимальной настройке параметров показывающий значительный рост производительности и результат, сравнимый с лучшими существующими алгоритмами, имеет хорошие перспективы развития за счет своих возможностей по более тонкой настройке параметров.
Дальнейшие исследования разработанного алгоритма следует сконцентрировать как на первоначальном подборе, так и на адаптации параметров М^^^’Р и размера популяции.
Заключение. В работе представлен нейроэволюционный алгоритм, использующий прямое кодирование нейронной сети списками вершин и связей, основным репродуктивным оператором алгоритма является адаптивный оператор мутации. Информация, необходимая для адаптивного подбора параметров мутации хранится отдельно для каждой особи. Приведены результаты тестирования разрабатываемого алгоритма на модельной задаче о балансировании шестов.
Показана перспективность исследований нейроэволюционных алгоритмов без кроссовера в области хранения параметров мутации индивидуально для каждой особи.