_НАУЧНОЕ ПЕРИОДИЧЕСКОЕ ИЗДАНИЕ «IN SITU» №9/2016 ISSN 2411-7161_
ТЕХНИЧЕСКИЕ НАУКИ
Родзин Сергей Иванович
канд. тех. наук, профессор ЮФУ, г.Таганрог, РФ E-mail: [email protected] Родзина Ольга Николаевна г.Таганрог, РФ E-mail: [email protected]
НЕЙРОЭВОЛЮЦИОННЫЙ АЛГОРИТМ БАЛАНСИРОВАНИЯ ТЕЛЕЖКИ С ДВУМЯ
ФЛАГШТОКАМИ РАЗНОЙ ДЛИНЫ
Аннотация
В статье рассматриваются актуальные вопросы нейроэволюции - перспективного направления в искусственном интеллекте. Вне зависимости от области применения нейронных сетей необходима оптимизация их структуры. С этой целью предлагается новый нейроэволюционный алгоритм. Представлены результаты предварительных экспериментов в задаче балансирования тележки, направленные на сравнение предлагаемого алгоритма с уже существующими. К преимуществам алгоритма относится возможность автоматического поиска подходящей архитектуры нейросети, независимость от вида функций активации нейронов, отсутствие обучающей выборки.
Ключевые слова:
Нейроэволюция, машинное обучение, оптимизация, оператор мутации, фитнесс функция
Введение. Нейроэволюция признается перспективным направлением решения проблемных вопросов машинного обучения нейросетей в областях, где реализация обучения по прецедентам практически невозможна: робототехнике, многоагентных системах, при поиске оптимальных решений в игровых задачах, в прогнозировании и др. [1]. Нейроэволюция относится к категории методов искусственного интеллекта обучения с подкреплением, где роль объектов играют пары <ситуация - принятое решение>, а ответами являются значения целевого критерия, характеризующего правильность принятых решений, в зависимости от реакции среды.
Обучение с подкреплением является промежуточным типом задач между обучением с учителем по прецедентам (регрессионный анализ, классификация) и обучением без учителя, где нужно найти закономерности в данных (кластеризация) - в процессе обучения учитывается взаимодействие со средой.
Нейроэволюционные алгоритмы (НЭА) нацелены на решение таких проблем как сокращение пространства поиска, повышение скорости обучения и качества получаемых решений. Эвристики, применяемые в НЭА, подразделяются на следующие категории: ограничения на структуру нейросетей; выбор операторов изменения нейросетей; способы использования эволюционных операторов; эвристики для целевой функции [2]. В зависимости от решаемых задач различают три типа НЭА: алгоритмы поиска значений весов соединений нейросети при фиксированной структуре; алгоритмы настройки структуры нейросети; алгоритмы настройки параметров функций активации нейронов; алгоритмы, представляющие разные комбинации типов НЭА [3].
В статье разрабатывается и экспериментально исследуется НЭА, с одновременной настройкой весов и топологии нейросети с применением только оператора мутации. В качестве бенчмарки выбрана известная задача балансирования тележки с двумя флагштоками разной длины.
Известные результаты. В настоящее время наиболее значимые результаты в области нейроэволюции получены исследовательскими группами под руководством R. Miikkulainen (http://www.cs.utexas.edu/~risto/), K. Stanley (http://www.cs.ucf.edu/7kstanley), D. Floreano, S. Nolfi, X. Yao (http://www.cs.bham.ac.uk/~xin), Ch. Igel, J. Schmidhuber (http://www.idsia.ch/~juergen/) [1]. В России исследования НЭА ведутся в центре
_НАУЧНОЕ ПЕРИОДИЧЕСКОЕ ИЗДАНИЕ «IN SITU» №9/2016 ISSN 2411-7161_
оптико-нейронных технологий совместно с Институтом прикладной математики им. Келдыша, в Сибирском федеральном университете, в Южном федеральном университете, в Ульяновском государственном техническом университете и Томском политехническом университете.
Разработка НЭА сопряжена с определенными трудностями. Во-первых, это кодирование нейросети в виде генотипа. Во-вторых, это деструктивное влияние оператора кроссинговера. В-третьих, создание начальной популяции нейросетей со случайной топологией не представляется удачным подходом.
В [1] для обозначения нейросетей, в которых производится эволюция, как узлов сети, так и топологических межсоединений, используется термин TWEANNs
(Topology&WeightEvolvingArtificialNeuralNetworks). Используя TWEANNs, удалось решить одну из самых известных задач обучения с подкреплением - балансирования тележки с двумя флагштоками [4]. Нейросеть, не имея информации о скорости, управляет тележкой, с которой через шарниры соединены два флагштока разной длины, находящиеся в состоянии неустойчивого равновесия. TWEANNs не зависит от вида функций активации нейронов, нет необходимости в обучающей выборке, поиск топологии нейросети осуществляется автоматически. К проблемным вопросам TWEANNs относятся трудности с оценкой структуры нейросети; повышенные требования к памяти, сложности с поиском оптимальной топологии нейросети.
Рассмотрим предлагаемый НЭА для TWEANNs. Его отличительная особенность - основным эволюционным оператором является мутация, а оператор кроссинговера не используется вообще.
Нейроэволюционный алгоритм. НЭА начинает свою работу с нейросетей без нейронов скрытого слоя. Синтез нейросети идет в направлении постепенного усложнения ее топологии. Генотип в НЭА представляется множеством смежных нейронов и множеством синаптических весов их соединений. Каждый нейрон кодируется его номером в поколении популяции и типом слоя (входной, скрытый, выходной). Множество синапсов кодируется указателями на смежные нейроны, на значение синаптического веса, на флаг указывающий используется или нет соединение, а также на «историю» соединения в поколениях популяции.
Для генерации нейросетей не используется оператор кроссинговера, поскольку его применение носит деструктивный характер, а потомки нейросетей, как правило, имеет функцию пригодности хуже, нежели у родительских хромосом [5-7].
Популяция рассматривается как центральный объект НЭА, а эволюция нейросети является процессом ее приспособления на поведенческом уровне. Этот уровень абстракции не предусматривает рекомбинации, поэтому оператор кроссинговера отсутствует. Мутация в предлагаемом НЭА является единственным оператором поиска альтернативных решений.
Рассмотрим подробнее кодирование нейросетей с целью поиска надежного способа эволюционной генерации нейросетей, отличающихся лишь небольшими изменениями нейронов и межсоединений. Нейросеть включает подсети, каждая из которых мало зависит от других. Поэтому небольшое эволюционное изменение в подсети будет влиять лишь на ограниченную область.
Для представления подсетей используется биологическое понятие оперона. В биологии оперон - это группа функционально связанных генов, активность которых упорядочена и зависит как от внешних условий, так и от деятельности других генов. Опираясь на это понятие, под опероном будем понимать подсеть из нейронов (узел сети) и соединений между ними.
Генотипическое представление нейросети представляет собой подмножество оперонов следующего
вида:
string = {operon1, operon2,..., operom],
operont= {nodej j e [1: J]], {edge^ k e [1: K]],
где N - максимальное число оперонов (i e [1: N ]); nodej - идентификационный номер j-го нейрона, входящего в множество operon; J - число нейронов, входящих в operon со своими идентификационными номерами; edgek- k-е соединение в operon; K - число соединений в operoni.
Исходная популяция состоит из нейросетей с одним опероном operorn, который содержит только входные и выходные нейроны и соединения между ними. Нейронов скрытого слоя в начальных оперонах нет.
_НАУЧНОЕ ПЕРИОДИЧЕСКОЕ ИЗДАНИЕ «IN SITU» №9/2016 ISSN 2411-7161_
В предлагаемом НЭА используются операторы мутации двух типов: с добавлением нейронов и с добавлением соединений нейросети.
Оператор мутации для добавления нейронов применяется к каждому оперону с постоянным значением вероятности. Для выполнения мутации вначале случайно выбирается для удаления одно из синаптических соединений, а затем вместо него добавляется нейрон скрытого слоя и два связанных с ним синаптических соединения. Если один из концов удаленного синаптического соединения был подключен к operono, то добавленный нейрон скрытого слоя и его соединения образуют новый оперон.
Оператор мутации для добавления соединений также применяется к каждому оперону с постоянным значением вероятности. Случайно выбирается некоторый узел и добавляется соединение с узлом в operon или в operono. Вес нового соединения устанавливается в 0, так что это не изменяет передаваемый сигнал.
Результаты экспериментов для задачи балансирования тележки с двумя флагштоками разной длины.
Бенчмаркинг предлагаемого НЭА производился на известной задаче балансирования тележки с двумя флагштоками разной длины (рис.).
- 6ч
-(о^
Рисунок. Тележка с двумя флагштоками разной длины
Два флагштока соединены с движущейся тележкой с помощью шарниров. Нейросеть управляет тележкой, балансируя флагштоками так долго, насколько это возможно. Состояние системы определяется положением х и скоростью Vx тележки, а также углом yi отклонения от вертикали первого флагштока и его угловой скоростью rai, углом y2 отклонения от вертикали второго флагштока и его угловой скоростью Ю2.
Компьютерное моделирование проводилось с четырьмя различными соотношениями длины низкого и высокого флагштока: 1:10, 1:5, 1:3 и 1:2,5. Известно, что управление балансировкой флагштоков становится более трудным, когда соотношение длин флагштоков приближается к 1. Все остальные детали для компьютерного моделирования были такими же, как и в [4]. Для сравнения использовались данные приведенные в [7] для нейроэволюционного алгоритма NEAT (Neuro-Evolution of Augmenting Topologies). Алгоритм NEAT выбран для сравнения, потому что он решает задачу балансирования флагштока на тележке в 25 раз быстрее, нежели алгоритм, использующий клеточное кодирование [8].
Параметры предлагаемого НЭА и алгоритма NEAT в ходе экспериментов имели следующие значения: размер популяции - 1000; размер турнирной селекции - 20; вес соединения при использовании оператора мутации для добавления нейронов - 1; значения параметров сигмоидальной функции а = 0,5, р = 5.
План предусматривал проведение 10 серий экспериментов. В результате задача с вероятностью близкой к единице успешно решалась сравниваемыми алгоритмами NEAT и НЭА при соотношении длин низкого и высокого флагштока 1:10 и 1:5. При дальнейшем выравнивании длин флагштоков результаты по алгоритму NEAT, становились хуже, а при самом сложном условии (при соотношении длин флагштоков 1:2,5) задача управления балансом успешно решалась по алгоритму NEAT только один раз из десяти экспериментов. При тех же условиях у предлагаемого НЭА вероятность успешного решения составляла 0,8.
Однако алгоритм NEAT при соотношении длин низкого и высокого флагштока 1:10 и 1:5 находил решение примерно в течение 40 поколений. Этот результат существенно лучше, нежели для предлагаемого
_НАУЧНОЕ ПЕРИОДИЧЕСКОЕ ИЗДАНИЕ «IN SITU» №9/2016 ISSN 2411-7161_
НЭА. При соотношении длин низкого и высокого флагштока 1:3 и 1:2,5 NEAT находит решение примерно в течение 200 поколений, а предлагаемый алгоритм - в среднем за 350-400 поколений.
В ходе эволюции по алгоритму NEAT в наиболее успешную нейросеть при соотношении длин низкого и высокого флагштока 1:10 добавлялось 6 узлов и 11 соединений. При том же соотношении длин предлагаемый алгоритм давал сопоставимый результат. Однако при соотношении длин 1:2,5 сложность сетей, получаемых по алгоритму NEAT, быстро росла и достигала размера свыше 50 узлов и свыше 300 соединений. В этом отношении сложность топологии нейросети, генерируемой по НЭА при всех четырех соотношениях длин низкого и высокого флагштока, оставалась практически неизменной - около 10 узлов и 20 соединений. Таким образом, результаты моделирования подтверждают гипотезу о преимуществах генерации нейроструктур по алгоритму НЭА путем небольших мутационных изменений в ограниченной области.
Заключение. Разработанный нейроэволюционный алгоритм синтезирует нейросеть путем машинного обучения с подкреплением. Отличием предлагаемого алгоритма от аналогов является возможность изменения архитектуры нейросети за счет одновременного добавления, как нейронов сети, так и соединений. Эволюция сети происходит небольшими мутационными изменениями в ограниченной области без использования оператора кроссинговера. Алгоритм не зависит от вида функций активации нейронов, нет необходимости в обучающей выборке, поиск топологии нейросети осуществляется автоматически.
Результаты бенчмаркинга алгоритма на трудной тестовой задаче управления тележкой для балансирования укрепленных на ней двух флагштоков разной длины сравнивались с аналогичным алгоритмом NEAT. Разработанный алгоритм превосходит аналог по следующим показателям: в самых сложных условия при соотношении длин флагштоков 1:2,5 задача управления балансом успешно решалась по алгоритму NEAT с вероятностью 0,1, а предлагаемым алгоритмом - с вероятностью 0,8. Аналогично, сложность сетей, получаемых по алгоритму NEAT, быстро растет, а в предлагаемом алгоритме остается практически неизменной.
Предлагаемый нейроэволюционный алгоритм является перспективным для применения в робототехнике, многоагентных системах, при поиске оптимальных решений в игровых задачах, в прогнозировании и других областях, где требуется осуществлять действия в среде, лишь иногда получая обратную связь [9].
Исследование выполнено при финансовой поддержке грантов РФФИ (проекты №№ 16-07-00335, 1607-336) в Южном федеральном университете. Список использованной литературы:
1. Stanley K.O., Miikkulainen, R. Evolving Neural Networks Through Augmenting Topologies // Evolutionary Computation. 2002. № 10(2). P. 99-127.
2. Курейчик В.В., Курейчик В.М., Родзин С.И. Теория эволюционных вычислений. М.: Физматлит, 2012. 260 с.
3. Родзин С.И. Мягкие параллельные вычисления // Новости искусственного интеллекта, 2005, № 4. С.53-58.
4. Stanley K.O.: http://www.cs.ucf.edu/~kstanley/.
5. Rodzin S., Rodzina O.N. Metaheuristics memes and biogeography for trans computational combinatorial optimization problems // Proc. of the 6th IEEE Int. Conf. on Cloud System and Big Data Engineering (Confluence'2016, India). AI and Soft Computing. 2016. P. 1-5.
6. Rodzin S., Rodzina O.N. New Computational Models for Big Data and Optimization // Proc. of the 9th IEEE Int. Conf. Application of Information and Communication Technologies (AICT'2015). - P.3-7.
7. Gomez F., Miikkulainen R. Solving non-Markovian control tasks with neuroevolution // Proc. 7th Int. Joint Conf. on Artificial Intelligence, Morgan Kaufmann, San Francisco, 1999. P. 1356-1361.
8. Moriguchi H., Honiden S. CMA-TWEANN: Efficient Optimization of Neural Networks via Self-Adaptation and Seamless Augmentation // Proc. of the 14th Annual Conf. on Genetic and Evolutionary Computation, 2012. pp. 903910.
_НАУЧНОЕ ПЕРИОДИЧЕСКОЕ ИЗДАНИЕ «IN SITU» №9/2016 ISSN 2411-7161_
9. Rodzin S.I., Rodzina O.N. Effectiveness evaluation of memetics and biogeography algorithms using benchmark and trans computational tasks of combinatorial optimization // Proc. of the First Int. Scientific Conf. "Intelligent Information Technologies for Industry" (IITI'16), vol. 1, Advances in Intelligent Systems and Computing 450, Springer International Publishing Switzerland, 2016. P. 463-475. http://link.springer.com/book/10.1007/978-3-319-33609-1/page/3
© Родзин С.И., Родзина О.Н., 2016