Software package for adaptive training of robot controllers based on neural networks

The article deals with the development of a software solution for the application of neuroevolution algorithms when creating a controller for controlling a robotic arm. The main principles of the neuroevolutionary approach for training neural network controllers in tasks requiring reinforcement lear...

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2023
Автори: Vitiuk, A.Y., Doroshenko, A.Yu.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут програмних систем НАН України 2023
Теми:
Онлайн доступ:https://pp.isofts.kiev.ua/index.php/ojs1/article/view/597
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Problems in programming
Завантажити файл: Pdf

Репозитарії

Problems in programming
id pp_isofts_kiev_ua-article-597
record_format ojs
resource_txt_mv ppisoftskievua/25/204cb9c965a85c6985783a64cf3eba25.pdf
spelling pp_isofts_kiev_ua-article-5972024-04-26T21:18:21Z Software package for adaptive training of robot controllers based on neural networks Програмний пакет для адаптивного навчання контролерів роборуки на основі нейромереж Vitiuk, A.Y. Doroshenko, A.Yu. neural network; neuroevolution; robotic arm; reinforcement learning; NEAT; fitness function UDC 004.89 нейронна мережа; нейроеволюція; роботизована рука; навчання з підкріпленням; NEAT; функція пристосованост УДК 004.89 The article deals with the development of a software solution for the application of neuroevolution algorithms when creating a controller for controlling a robotic arm. The main principles of the neuroevolutionary approach for training neural network controllers in tasks requiring reinforcement learning are considered. In particular, the advantages of the adaptive approach are determined for a wide class of scenarios in which the working limb can work: implementation of stable grasping, positioning, manipulation of objects. It is noted that the final result of neuroevolution is an optimal network topology, which makes the model more resource-efficient and easier to analyze. The paper considers a software system that provides the developer with all the necessary tools for modeling the behavior of a robotic agent in environments of various levels of complexity: both two-dimensional and three-dimensional. In addition, the possibility of specifying the state of the agent not only as a set of data from sensors, but also as an image of the current environment from the camera is considered. According to the results of the experiments, the high efficiency of the search for the best solution using the NEAT algorithm is noted. It has been established that the proposed solution allows productively obtaining an effective policy in the form of a neural network, which has a minimal configuration, which will allow to increase the speed of the controller, which is critical for the operation of a real system.Thus, the use of a software solution for the adaptive development of a neuroevolutionary controller for solving tasks with a robotic limb allows to increase the efficiency of the learning process and obtain an optimal network topology.Prombles in programming 2023; 4: 98-107 В статті досліджено процес розробки програмних засобів із застосуванням алгоритмів нейроеволюції для навчання нейромережевих контролерів у процесі управління роботизованою кінцівкою. Описано основні аспекти нейроеволюційного підходу для навчання нейромережі у задачах, що не мають найкращого рішення та потребують навчання з підкріпленням. Задача позиціонування має такий ландшафт функцій пристосованості, що робить її схильною потрапляти у пастки локального оптимуму, звідки виникає потреба розробки програмного забезпечення для роботи з нейроеволюційними підходами.Розробка оптимальних засобів управління із застосуванням нейроеволюційного підходу може забезпечити не лише високу точність позиціонування, а й мінімальну конфігурацію, що підвищує швидкодію системи. Майбутні дослідження з використанням представленого пакету для вирішення задач маніпулювання та позиціонування становлять особливий інтерес для покращення програмних контролерів управління роботизованими кінцівками в динамічних умовах реального світу.Prombles in programming 2023; 4: 98-107 Інститут програмних систем НАН України 2023-12-18 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/597 10.15407/pp2023.04.098 PROBLEMS IN PROGRAMMING; No 4 (2023); 98-107 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 4 (2023); 98-107 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 4 (2023); 98-107 1727-4907 10.15407/pp2023.04 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/597/647 Copyright (c) 2023 PROBLEMS IN PROGRAMMING
institution Problems in programming
baseUrl_str https://pp.isofts.kiev.ua/index.php/ojs1/oai
datestamp_date 2024-04-26T21:18:21Z
collection OJS
language Ukrainian
topic neural network
neuroevolution
robotic arm
reinforcement learning
NEAT
fitness function
UDC 004.89
spellingShingle neural network
neuroevolution
robotic arm
reinforcement learning
NEAT
fitness function
UDC 004.89
Vitiuk, A.Y.
Doroshenko, A.Yu.
Software package for adaptive training of robot controllers based on neural networks
topic_facet neural network
neuroevolution
robotic arm
reinforcement learning
NEAT
fitness function
UDC 004.89
нейронна мережа
нейроеволюція
роботизована рука
навчання з підкріпленням
NEAT
функція пристосованост
УДК 004.89
format Article
author Vitiuk, A.Y.
Doroshenko, A.Yu.
author_facet Vitiuk, A.Y.
Doroshenko, A.Yu.
author_sort Vitiuk, A.Y.
title Software package for adaptive training of robot controllers based on neural networks
title_short Software package for adaptive training of robot controllers based on neural networks
title_full Software package for adaptive training of robot controllers based on neural networks
title_fullStr Software package for adaptive training of robot controllers based on neural networks
title_full_unstemmed Software package for adaptive training of robot controllers based on neural networks
title_sort software package for adaptive training of robot controllers based on neural networks
title_alt Програмний пакет для адаптивного навчання контролерів роборуки на основі нейромереж
description The article deals with the development of a software solution for the application of neuroevolution algorithms when creating a controller for controlling a robotic arm. The main principles of the neuroevolutionary approach for training neural network controllers in tasks requiring reinforcement learning are considered. In particular, the advantages of the adaptive approach are determined for a wide class of scenarios in which the working limb can work: implementation of stable grasping, positioning, manipulation of objects. It is noted that the final result of neuroevolution is an optimal network topology, which makes the model more resource-efficient and easier to analyze. The paper considers a software system that provides the developer with all the necessary tools for modeling the behavior of a robotic agent in environments of various levels of complexity: both two-dimensional and three-dimensional. In addition, the possibility of specifying the state of the agent not only as a set of data from sensors, but also as an image of the current environment from the camera is considered. According to the results of the experiments, the high efficiency of the search for the best solution using the NEAT algorithm is noted. It has been established that the proposed solution allows productively obtaining an effective policy in the form of a neural network, which has a minimal configuration, which will allow to increase the speed of the controller, which is critical for the operation of a real system.Thus, the use of a software solution for the adaptive development of a neuroevolutionary controller for solving tasks with a robotic limb allows to increase the efficiency of the learning process and obtain an optimal network topology.Prombles in programming 2023; 4: 98-107
publisher Інститут програмних систем НАН України
publishDate 2023
url https://pp.isofts.kiev.ua/index.php/ojs1/article/view/597
work_keys_str_mv AT vitiukay softwarepackageforadaptivetrainingofrobotcontrollersbasedonneuralnetworks
AT doroshenkoayu softwarepackageforadaptivetrainingofrobotcontrollersbasedonneuralnetworks
AT vitiukay programnijpaketdlâadaptivnogonavčannâkontrolerívroborukinaosnovínejromerež
AT doroshenkoayu programnijpaketdlâadaptivnogonavčannâkontrolerívroborukinaosnovínejromerež
first_indexed 2024-09-21T04:05:15Z
last_indexed 2024-09-21T04:05:15Z
_version_ 1818528005544214528
fulltext 98 Інструментальні засоби і середовища програмування © А.Є. Вітюк, А.Ю. Дорошенко, 2023 ISSN 1727-4907. Проблеми програмування. 2023. №4 УДК 004.89 http://doi.org/10.15407/pp2023.04.098 А.Є. Вітюк, А.Ю. Дорошенко ПРОГРАМНИЙ ПАКЕТ ДЛЯ АДАПТИВНОГО НАВЧАННЯ КОНТРОЛЕРІВ РОБОРУКИ НА ОСНОВІ НЕЙРОМЕРЕЖ В статті досліджено процес розробки програмних засобів із застосуванням алгоритмів нейроеволюції для навчання нейромережевих контролерів у процесі управління роботизованою кінцівкою. Описано основні аспекти нейроеволюційного підходу для навчання нейромережі у задачах, що не мають найкращого рі- шення та потребують навчання з підкріпленням. Задача позиціонування має такий ландшафт функцій пристосованості, що робить її схильною потрапляти у пастки локального оптимуму, звідки виникає пот- реба розробки програмного забезпечення для роботи з нейроеволюційними підходами. Розробка оптимальних засобів управління із застосуванням нейроеволюційного підходу може забезпе- чити не лише високу точність позиціонування, а й мінімальну конфігурацію, що підвищує швидкодію системи. Майбутні дослідження з використанням представленого пакету для вирішення задач маніпу- лювання та позиціонування становлять особливий інтерес для покращення програмних контролерів уп- равління роботизованими кінцівками в динамічних умовах реального світу. Ключові слова: нейронна мережа, нейроеволюція, роботизована рука, навчання з підкріпленням, NEAT, функція пристосованості. Вступ Використання контролерів на основі нейронних мереж у роботизованих систе- мах із робочою кінцівкою-маніпулятором вивела розробку програмного забезпечен- ня для управління роботизованих систем на новий рівень. Використання структур адаптивної нейронної мережі в розробці контролерів для задач маніпулювання ру- кою робота відкриває нові можливості для дослідження і розробки таких систем. Ос- новна роль адаптивних контролерів ви- пливає з їхньої здатності вирішувати зада- чі, властиві широкому спектру сценаріїв маніпулювання цільовим об’єктом робо- чою кінцівкою із захватним пристроєм. Задача позиціонування роборуки та маніпулювання цільовим об’єктом харак- теризується своєю складністю, передбачає точний контроль кількох ступенів свободи та взаємодії з динамічним середовищем невідомої конфігурації. Нейронні мережі, з їхньою здатністю навчатися та представля- ти складні залежності від вхідних даних, пропонують автоматизований шлях для вирішення цих проблем. Крім того, адап- тивність структур нейронної мережі дода- тково надає таким системам здатність ди- намічно налаштовувати свою архітектуру відповідно до вимог різноманітних за- вдань, що можуть змінюватися. Важливість автоматизованої розробки підкреслюється потребою в контролерах, які можуть легко адаптуватися до мінливо- го середовища, різних форм об’єктів мані- пулювання і факторів, пов’язаних із сере- довищем. Навчальні можливості нейронних мереж, особливо з адаптивними структура- ми, роблять їх придатними для сценаріїв, де класичне програмування не може забезпе- чити знаходження мінімальної моделі, роз- мір якої є критично важливим для забезпе- чення заданого рівня ефективності. Процес розробки контролерів на основі нейронних мереж для роборуки має ряд складнощів. Починаючи від отримання та анотації різноманітних наборів даних і за- кінчуючи складним балансом між складніс- тю моделі та її налаштуваннями. Дослі- дження еволюційних підходів для навчання адаптивних контролерів дозволить приш- видшити розробку контролерів для широ- кого спектру можливих сценаріїв викорис- тання кінцівки роборуки. Програмне середовище для тренуван- ня агента-маніпулятора з використанням нейроеволюційного підходу має на меті автоматизацію процесу розробки, що є особливо актуальним у сценаріях, де руч- не проєктування та налаштування є не- практичним або забирає багато часу. 99 Інструментальні засоби і середовища програмування 1. Існуючі програмні рішення Активний інтерес до дослідження та розробки систем, що базуються на нав- чанні з підкріпленням, дав поштовх для створення програмних середовищ, які до- зволяють легку інтеграцію засобів для на- вчання моделі та інструментів для роботи з різноманітними агентами та середови- щами. Бібліотека Stable-Baselines3 [1] для навчання з підкріпленням мовою Python забезпечує набір високоякісних реалізацій різних алгоритмів навчання з підкріплен- ням. Вона створена на основі OpenAI Gym, що дозволяє легко використовувати її для тренувань агентів у різних середо- вищах, зокрема, для робототехнічних за- вдань. Бібліотека надає простий і зручний API для роботи з алгоритмами навчання з підкріпленням. Це робить її доступною як для початківців, так і для досвідчених користувачів. Крім того, вона пропонує різноманітні алгоритми навчання з підк- ріпленням, у тому числі такі популярні, як PPO (наближена оптимізація політики), DDPG (глибокі детерміновані градієнти політики) і TRPO (оптимізація політики довірчого регіону). Stable-Baselines3 легко інтегрується з OpenAI Gym, набором інструментів для розробки та порівняння алгоритмів нав- чання з підкріпленням. Це дозволяє корис- тувачам використовувати широкий спектр середовищ, зокрема, для задач маніпуляції з роботизованими робочими кінцівками. Бібліотека забезпечує добре оптимізовану реалізацію різноманітних алгоритмів, що робить її придатною як для досліджень, так і для практичних застосувань. Проте, хоча Stable-Baselines3 підтри- мує низку алгоритмів, деякі з них більш придатні для дискретних просторів дій. Для просторів безперервної дії частіше ви- користовуються такі алгоритми, як PPO та TRPO. Крім того, Stable-Baselines3 розроб- лено для навчання підкріплення з одним агентом. Якщо завдання передбачає муль- тиагентну взаємодію (наприклад, співпра- цю кількох робототехнічних рук для мані- пуляції одним об’єктом), інструментів біб- ліотеки буде недостатньо. Важливою особливістю є підтримка Stable-Baselines3 фізичного симулятора MuJoCo, що широко використовується для проєктування робототехнічних агентів, зо- крема, маніпуляторів та крокуючих роботів. Альтернативою Stable-Baselines3 є біб- ліотека TF-Agents з відкритим кодом, по- будована на TensorFlow та розроблена Google. Вона забезпечує модульну та роз- ширювану структуру для навчання з підк- ріпленням. TF-Agents підтримує сценарії як з одним, так і з кількома агентами та має реалізацію різних алгоритмів. Ray RLlib — ще одна бібліотека для на- вчання з підкріпленням, створена на основі розподіленої обчислювальної системи Ray. Вона підтримує широкий спектр алгоритмів і пропонує такі функції, як розподілене нав- чання та налаштування гіперпараметрів. Для порівняння ефективності навчання контролерів роборуки на основі нейроме- реж доступні й інші бібліотеки, які мають схожий функціонал, але відрізняються на- бором алгоритмів навчання з підкріплен- ням. Серед них Garage, Tianshou, SLM Lab. Порівняння найбільш поширених бібліотек представлено в таблиці 1. Таблиця 1. Програмні бібліотеки для дослідження методів машинного навчання роботизованих агентів Бібліотека Використана бібліотека глибокого навчання Мультиагентна підтримка Зручність використання API Підтримка середовищ OpenAI Gym Підтримка еволюційних алгоритмів Переваги Satble- Baselines3 TensorFlow Обмежена Висока + - Великий вибір алгоритмів RL, інтеграція OpenAI Gym 100 Інструментальні засоби і середовища програмування Бібліотека Використана бібліотека глибокого навчання Мультиагентна підтримка Зручність використання API Підтримка середовищ OpenAI Gym Підтримка еволюційних алгоритмів Переваги TF-Agents TensorFlow + Середня + - Модульність, підтримка сце- наріїв з одним або кількома агентами Ray RLib TensorFlow, PyTorch + Середня + + (Еволю- ційні страте- гії) Розподілене навчання, нала- штування гіперпараметрів, різноманітне API Garage TensorFlow + Середня + + (Генетичні алгоритми, CEM) Розширена підтримка алгоритмів Tianshou PyTorch + Середня + + (CMA-ES) Модульність, широкий вибір алгоритмів SLM Lab TensorFlow + Середня + + (CEM) Модульність Як бачимо, існуючі програмні рішення надають широкий вибір інструментів для дослідження алгоритмів навчання з підкрі- пленням для роботизованих агентів у ви- значеному середовищі. Проте більшість із них не надає підтримки нейроеволюційних підходів, які уможливлюють розробку адаптивних роботизованих систем, що є важливим для дослідження багатофункці- ональної системи, максимально наближе- ної до роботи із задачами реального світу. 2. Застосування нейроеволюційного підходу Генетичні алгоритми — це клас еврис- тик пошуку, натхненних процесом приро- дної еволюції. У природному відборі, клю- човому механізмі біологічної еволюції, особини, які є більш придатними для умов, у яких вони живуть, «відбираються» для продовження роду, оскільки вони мають більшу ймовірність вижити до зрілості та знайти пару, ніж менш придатні особини. Генетичні алгоритми застосовують цю концепцію до простору пошуку, де «інди- віди» є точками в просторі пошуку, що представляють можливі рішення. Алгоритм починається з початкового покоління рішення, яке зазвичай генеру- ється випадково. Функція пристосованості оцінює пристосованість кожного кандида- та, а алгоритм обирає підмножину канди- датів на основі її значень. Ці кандидати поєднуються один з одним шляхом реком- бінації, щоб сформувати нове покоління рішень-кандидатів з вищою середньою пристосованістю. Залежно від конкретного алгоритму, вони також можуть бути зміне- ні (їхні параметри можуть змінюватися випадковим чином), щоб розширити про- цес пошуку на нові горизонти простору пошуку. Процес повторюється, доки не буде досягнуто умови зупинки – залежно від алгоритму це може статися через певну кількість поколінь, або коли досягнуто пе- вного рівня фізичної підготовки. Двома основними елементами потен- ційного рішення є генотип і фенотип. Ге- нотип — це набір параметрів, які визнача- ють це конкретне рішення. Генотип можна закодувати будь-яким способом за умови, що кодування доступні для пошуку - од- ним із найпростіших і найпоширеніших кодувань є рядок бітів. Таке кодування на- зивається фенотипом. Генетичні алгоритми корисні в багатьох галузях, включно із економікою, проєкту- ванняи систем, криптоаналізом, відеоіграми та логістикою. Основна перевага генетичних алгоритмів перед іншими методами машин- ного навчання полягає в тому, що вони не 101 Інструментальні засоби і середовища програмування вимагають попереднього аналізу предметної області, оскільки вони починаються з випа- дкового, неоптимального набору варіантів рішень і використовують еволюційні конце- пції для пошуку оптимального рішення. Це робить їх дуже корисними для вирішення задач із обмеженими знаннями області. Оскільки мутація гарантує, що їх пошук охоплює різні частини простору рішень, во- ни також добре справляються з проблемами, де функція помилок має локальні мінімуми. Нейроеволюція — це еволюційний ме- тод навчання, який поєднує генетичні ал- горитми та нейронні мережі, в якому ней- ронні мережі є фенотипом генетичного ал- горитму, а параметри нейронної мережі, такі як топологія або ваги з’єднань, є гено- типом [9]. Алгоритм шукає нейронну ме- режу, оптимальну для певної задачі. По суті, алгоритм розвиває найкращу струк- туру для даної проблеми. Алгоритм нейроеволюції може знахо- дити топологію мережі, або ваги з’єднань, або те й інше. Якщо він шукає обидва па- раметри, він може розвивати їх окремо один від одного або паралельно. Також може використовуватись пряме кодування, за якого кожен зв’язок і вузол фенотипу вказується в його генотипі, або непряме кодування, коли генотипи просто забезпе- чують правила для побудови фенотипів. Нейроеволюційні алгоритми особливо корисні для класів задач, у яких правильна нейронна мережа була б корисною для ви- рішення проблеми, але важко або немож- ливо визначити правильно розмічені вхідні дані, необхідні для навчання з учителем. Зазвичай їх визначають як тип навчання з підкріпленням [4]. Поширені алгоритми NEAT і HyperNEAT розвивають як топологію ме- режі, так і ваги з’єднань. NEAT використо- вує пряме кодування, а HyperNEAT вико- ристовує схему непрямого кодування [2]. 3. Алгоритм NEAT для управління агентом із роботизованою кінцівкою NEAT (NeuroEvolution of Augmenting Topologies) — це алгоритм нейроеволюції, розроблений Остіні 2002 року [3]. Він ко- дує структуру мережі та ваги з’єднань за допомогою вузлів і використовує біологіч- ні принципи підвищення складності та ви- доутворення. Структура генотипу NEAT містить на- бір генів нейронів і набір генів ланок. Гени нейрона присвоюють нейрону ідентифіка- ційний номер і вказують, чи є він вхідним, вихідним або прихованим вузлом. Гени зв’язку містять інформацію про два ней- рони, до яких вони під’єднані, очікування з’єднання цього зв’язку та прапорці, які вказують, чи є зв’язок активним. Вони та- кож мають номер оновлення, щоб вказати порядок, у якому вони були додані. Щора- зу, коли додається з’єднання, алгоритм пе- ревіряє, чи існувало воно раніше (чи воно там було, але видалене, на відміну від то- го, що воно було повністю новим). Якщо так, йому присвоюється номер поперед- ньої інновації, інакше йому присвоюється наступний доступний. NEAT розвиває дедалі складніші ней- ронні мережі відповідно до складності за- дачі. NEAT розвиває як вагу з’єднання, так і топологію, що приводить до значного підвищення продуктивності. Було показа- но, що NEAT є ефективним для багатьох задач, таких як балансування маятника, керування роботами, управління транспор- тними засобами, настільні й відеоігри. NEAT може формувати різноманітну популяцію мереж шляхом додавання но- вих генів і розумного схрещування. Одні- єю з проблем цього підходу є те, що менші мережі оптимізуються швидше, ніж великі, а додавання нових зв’язків і генів зазвичай спочатку знижує придатність мережі, тому новостворені структури мають менші шан- си вижити. Цю проблему вирішує видоут- ворення, яке поділяє популяцію на окремі підпопуляції. Структура кожної особини динамічно порівнюється з іншими, а ті, що мають подібну структуру, групуються. Особи в межах виду поділяють загальну пристосованість виду та конкурують пере- важно всередині цього виду. Специфікація дозволяє оптимізувати нові інновації, не стикаючись з конкуренцією з боку особин із різними структурами. На рисунку 1 зображено мережу, розро- блену для завдання позиціонування кінців- 102 Інструментальні засоби і середовища програмування ки. Мережа є складною та має багато прихо- ваних шарів для ефективної апроксимації нелінійних зворотних кінематичних рівнянь, необхідних для переміщення кінцівки. Рис. 1. Мережа для позиціонування роботизованої кінцівки 4. Застосування нейро- еволюційного підходу для вхідних даних у форматі зображень Алгоритм NEAT є ефективним для за- дачі управління роботизованою рукою, де вхідні дані представлені набором даних з кількох датчиків, наприклад, двома коор- динатами кожного з’єднання. Якщо ж вхі- дна інформація про стан агента надходить з камери, розміщеної на робочій кінцівці або на основі робота, задача стає на поря- док складнішою. Для такої системи доці- льним є використання алгоритму Hyper- NEAT [3]. HyperNEAT (Hypercube-based Neuro- Evolution of Augmenting Topologies) є роз- ширенням NEAT, яке використовує форму непрямого кодування під назвою компози- ційні шаблони створення мереж (CPPN). Воно було створено як спроба скоротити розрив між результатами, отриманими ал- горитмами нейроеволюції, та масштабом природного мозку. У CPPN вхідні дані є декартовими ко- ординатами в n-вимірному просторі, де n є 103 Інструментальні засоби і середовища програмування кількістю входів, і передаються у функцію f. Значення f, оцінене за кожною коорди- натою, забезпечує наявність, відсутність або інтенсивність вираження точки в n- вимірному просторі, і тому фенотип, отриманий оцінкою f (який можна розгля- дати як генотип), є шаблоном. Різниця між звичайними штучними нейронними мере- жами і CPPN полягає в тому, що штучні нейронні мережі зазвичай містять лише сигмоїдальні функції, тоді як CPPN мо- жуть містити багато різних типів функцій. Хоча CPPN можна розробити за до- помогою генетичних алгоритмів так само, як і штучні нейронні мережі, у HyperNEAT CPPN не розробляються як кінцевий про- дукт, а використовуються для кодування нейромережі. Оскільки CPPN створює просторовий шаблон, а нейромережа є ша- блоном зв’язків, алгоритм потребує відо- браження між просторовим шаблоном і шаблоном зв’язку. Вхідними даними в CPPN є дві точки, а не одна, і дві точки представляють два вузли в нейромережі, а вихід функції CPPN є вагою зв’язку між двома вузлами. Таким чином, модель, створена CPPN, є топологією нейронної мережі. Цей CPPN, що створює топологію, називається з’єднувальним CPPN, на від- міну від просторових CPPN, які створю- ють просторові моделі. З’єднувальний CPPN бере сітку вузлів, яка називається субстратом, і запитує кожне потенційне з’єднання, для визначення, чи дійсно існує з’єднання та яка його вага, беручи поло- ження двох вузлів, і знаходить вагу з’єднання між ними. Це створює шаблон з’єднань між вузлами в просторі, який є похідним від конфігурації субстрату. HyperNEAT розвиває CPPN за допомо- гою стратегії NEAT. CPPN є представлен- нями шаблонів у гіперпросторі, де кожна точка обмежена чотиривимірним гіперку- бом. Отже, шаблон у чотиривимірному гіпе- ркубі можна відобразити на двовимірній нейронній мережі. Першим кроком HyperNEAT є вибір субстрату та зв'язок між входами та виходами. Алгоритм ініціалізує перше покоління мінімальних CPPN з випа- дковими вагами, так само, як NEAT ініціалі- зує перше покоління мінімальних штучних нейронних мереж з випадковими вагами. Потім він запитує кожну CPPN, і створює шаблон зв'язку, подібний до нейромережі. Алгоритм визначає придатність цієї нейро- мережі так само, як це робить NEAT зі свої- ми мережами, і розвиває друге покоління CPPN відповідно до стратегії NEAT. Це по- вторюється, як і будь-який алгоритм нейро- еволюції, доки не буде знайдено рішення. HyperNEAT особливо добре відповідає задачам, де важлива інформація про гео- метричні представлення. За допомогою субстрату він «бачить» координати нейро- нів. Він може «бачити», який піксель по- руч із яким на зображенні, або який квад- рат біля якого на шахівниці, замість того, щоб вивчати їх на прикладах, як це робила б традиційна нейронна мережа. 5. Програмна реалізація пакету для адаптивного навчання контролерів робочої кінцівки Пакет для адаптивного навчання ней- ромережі, що буде використовуватись для окремої задачі маніпулювання має забез- печувати підтримку як середовища для простору дій агента-роборуки, так і мож- ливості використання необхідного нейрое- волюційного алгоритму зі зручним налаш- туванням параметрів та інструментами для аналізу результатів. Для цього розроблений пакет містить набір модулів: - Config: для роботи з параметрами нейроеволюційного алгоритму та його налаштування - Population: для роботи з відповід- ним типом популяції - Reporter: для забезпечення зручно- го представлення результатів кори- стувачеві. Для навчання політики у формі ней- ромережі для управління робочою кінців- кою в середовищі була обрана бібліотека NEAT-Python як реалізація алгоритму NEAT. На її основі працює модуль Popula- tion. Бібліотека NEAT-Python забезпечує реалізацію стандартних методів NEAT для моделювання генетичної еволюції геномів організмів у популяції. Вона містить ути- літи для перетворення генотипу організму в його фенотип (штучну нейронну мережу) 104 Інструментальні засоби і середовища програмування і надає зручні методи для завантаження та збереження конфігурацій геному разом із параметрами NEAT. Крім того, вона надає корисні процедури, які допомагають зби- рати статистичні дані про хід еволюційно- го процесу та зберігати/завантажувати проміжні контрольні точки. Контрольні точки дозволяють нам періодично зберіга- ти стан еволюційного процесу і пізніше відновлювати виконання процесу [1]. Набір середовищ може бути викорис- таний для дослідження завдань роботизо- ваної руки за допомогою наступних наяв- них інтерфейсів. Двовимірний симулятор з дискретним простором дій. Робот складається з двох з’єднань, кожне довжиною 100 пікселів, і мета — досягти червоної крапки, яка ви- падковим чином генерується в кожному епізоді. Простір дій складається з керуван- ня кутами з’єднання маніпулятора робота (7 можливих управляючих подій). Простір спостережень дає інформацію про поточ- ний стан навколишнього середовища, він є безперервним і містить відповідну інфор- мацію про цільове та поточне положення з’єднань (4 можливі стани) [7]. Двовимірний симулятор з неперервним простором дій. Подібно до попереднього агента, робот складається з двох з’єднань, кожне довжиною 100 пікселів, і мета — досягти червоної крапки, яка випадково генерується в кожному епізоді. Але прос- тір дій складається з неперервного сигналу керування кутами з’єднання маніпулятора робота (два значення для з’єднань у про- міжку -1..1). Простір спостережень є без- перервним і містить відповідну інформа- цію про цільове та потоне положення з’єднань (4 можливі стани). Тривимірний симулятор PandaReach. Симулятор роборуки Franka Emika Panda, який має на меті позиціонування робочої кінцівки у цільову точку тривимірного се- редовища. Значення винагороди поверта- ється додатне, якщо цільова позиція дося- гнута. Управляюча дія відповідає перемі- щенню кінцевого елемента роборуки. Тривимірний симулятор KukaCamBulletEnv. Середовище, в якому поточний стан представлений зображен- ням з камери, що розміщена на платформі- основі робота. Керуючими діями є поворо- ти відповідних кутів з’єднання. Вибір відповідної модифікації алгори- тму NEAT може бути здійснений шляхом заповнення конфігураційного файлу, об- робку якого здійснює модуль Config: if is_hyper: config = GymHyperConfig(args) if is_eshyper: config = GymEsHyperConfig(args) else: config = GymNeatConfig(args) Для прискорення процесу навчання бу- ло використано підхід паралелізації обчис- лень функції пристосованості між процесо- рами за допомогою класу ParallelEvaluator: neat.ParallelEvaluator(mp.cpu_count(), con- fig.eval_genome, timeout=20) Розглянемо основний функціонал па- кету на прикладі роботи із середовищем двовимірної роборуки з неперервним про- стором подій. Параметри обраного середовища та максимальну кількість повторень у підході встановлюються у конфігураційному фай- лі, який обробляється модулем Config: environment = gym_robot_arm:robot- arm-v1 episode_reps = 10 Оптимальний набір параметрів відпо- відної модифікації алгоритму NEAT також встановлений за допомогою конфігурацій- ного файлу: [NEAT] compatibility_disjoint_coefficient = 1.1 [DefaultSpeciesSet] compatibility_threshold = 3.0 [DefaultGenome] conn_add_prob = 0.3 conn_delete_prob = 0.2 [DefaultStagnation] species_fitness_func = max max_stagnation = 20 species_elitism = 1 [DefaultReproduction] survival_threshold = 0.2 min_species_size = 2 105 Інструментальні засоби і середовища програмування Після цього обрана функція оцінки може бути встановлена, та запущений процес навчання на кількості поколінь, за- даній користувачем: winner = population.run (paral- lel_evaluator.evaluate, params.ngen, params.maxtime) Структура початкової мережі, струк- тура мережі на найкращому геномі та гра- фік видоутворення будуть збережені для подальшого аналізу. Структура мережі- переможця для тестового випадку пред- ставлена на рисунку 2: Рис. 2. Структура нейромережі-переможця Висновки Розробка програмних засобів для ада- птивного навчання управляючих моделей роборуки на основі нейромереж вимагає комплексного підходу, що має враховува- ти варіативність умов середовища, макси- мально наближених до реального світу. Позиціонування робочої кінцівки має зна- чний простір пошуку, що може бути також ускладнено різним представленням вхід- них даних: як набору значень сенсорів, так і вхідним зображенням. Для умов довіль- ного середовища мають бути використані контролери, що використовують знання, накопичені під час взаємодії з цим середо- вищем. Інтеграція таких методів штучного інтелекту, як машинне навчання, та нав- чання з підкріпленням, дала поштовх роз- витку програмних засобів для моделюван- ня задач позиціонування рук і маніпулю- вання об’єктами. В статті розглянуто основний інстру- ментарій, який має бути представлено у програмному пакеті для ефективного дос- лідження нейроеволюційного підходу до навчання контролерів роборуки. А також представлено розроблений пакет, який за- безпечує доступний інтерфейс для роботи з набором середовищ для виконання задач, які становлять основний інтерес у роботі кінцівки робота. 106 Інструментальні засоби і середовища програмування Залежно від типу вхідних даних та ха- рактеристик агента, пакет надає набір ін- струментів для налаштування як самого агента та його взаємодії з середовищем, так і пареметрів досліджуваного нейроево- люційного алгоритму. Дослідження конфігурацій NEAT та HyperNEAT покращують здатність алгори- тму знаходити інноваційні та ефективні рішення, сприяючи розвитку більш універ- сальних і потужних архітектур нейронних мереж. Розробка оптимальних засобів управ- ління із застосуванням нейроеволюційного підходу може забезпечити не лише високу точність позиціонування, а і мінімальну конфігурацію, що підвищує швидкодію системи. Майбутні дослідження з викорис- танням представленого пакету для вирі- шення задач маніпулювання та позиціону- вання становлять особливий інтерес для покращення програмних контролерів уп- равління роботизованими кінцівками в ди- намічних умовах реального світу. Література 1. Antonin Raffin, et al. Stable-Baselines3: Reliable Reinforcement Learning Imple- mentations, 2021 https://jmlr.org/papers/volume22/20- 1364/20-1364.pdf 2. I. Omelianenko, Hands-On Neuroevolu- tion with Python: Build high-performing artificial neural network architectures us- ing neuroevolution-based algorithms, Packt Publishing, 2019 3. Kenneth O. Stanley and Risto Miikku- lainen, Evolving Neural Networks Through Augmenting Topologies, Evolu- tionary Computation 10 (2): 99-127, 2002. 4. Застосування засобів нейроеволюції в технічних системах автоматизації ке- рування / А.Ю. Дорошенко, І.З. Ашур // Проблеми програмування. — 2021. — № 1. — С. 16-25 5. Альона Вітюк, Анатолій Дорошенко. Програмний пакет для оцінки похибка калібрування стереокамери в системі комп’ютерного зору. Проблеми про- грамування, 2022. № 3-4. С. 469–477. https://doi.org/10.15407/pp2022.03- 04.469 6. Neuroevolution of a Robot Arm Control- ler, 2004. URL: https://www.cs.utexas.edu/ftp/AI- Lab/tech-reports/UT-AI-TR-05-322.pdf 7. OpenAI Gym 2D Robot Arm Environ- ment, URL: https://github.com/ekorudiawan/gym- robot-arm 8. Verbancsics, P., Stanley, K.O., 2010. Evolving static representations for task transfer. Journal of Machine Learning Re- search. Vol. 11. pp 1737-1769 References 1. Antonin Raffin, et al. Stable-Baselines3: Reliable Reinforcement Learning Imple- mentations, 2021 https://jmlr.org/papers/volume22/20- 1364/20-1364.pdf 2. I. Omelianenko, Hands-On Neuroevolu- tion with Python: Build high-performing artificial neural network architectures us- ing neuroevolution-based algorithms, Packt Publishing, 2019 3. Kenneth O. Stanley and Risto Miikku- lainen, Evolving Neural Networks Through Augmenting Topologies, Evolu- tionary Computation 10 (2): 99-127, 2002. 4. Application of neuroevolution tools in technical control automation systems / A.Y. Doroshenko, I.Z. Ashur // Problems of programming. — 2021. — No. 1. — P. 16-25 (in Ukrainian) 5. A. Vitiuk, A. Doroshenko. A software package for estimating stereo camera cal- ibration error in a computer vision sys- tem. Problems of programming, 2022. No. 3-4. P. 469–477. https://doi.org/10.15407/pp2022.03- 04.469 (in Ukrainian) 6. Neuroevolution of a Robot Arm Control- ler, 2004. URL: https://www.cs.utexas.edu/ftp/AI- Lab/tech-reports/UT-AI-TR-05-322.pdf 7. OpenAI Gym 2D Robot Arm Environ- ment, URL: https://github.com/ekorudiawan/gym- robot-arm 8. Verbancsics, P., Stanley, K.O., 2010. Evolving static representations for task transfer. Journal of Machine Learning Re- search. Vol. 11. pp 1737-1769 Одержано: 28.11.2023 107 Інструментальні засоби і середовища програмування Про авторів: Вітюк Альона Євгеніївна, аспірантка НТУУ "КПІ імені Ігоря Сікорського". Кількість наукових публікацій в українських виданнях – 4. https://orcid.org/0000-0002-1445-9598 Дорошенко Анатолій Юхимович, доктор фізико-математичних наук, професор, завідувач відділу теорії комп'ютерних обчислень Інституту програмних систем НАН Укрїни, професор кафедри автоматики і управління в технічних системах НТУУ "КПІ імені Ігоря Сікорського". Кількість наукових публікацій в українських виданнях – понад 200. Кількість наукових публікацій в іноземних виданнях – понад 80. Індекс Гірша – 7. http://orcid.org/0000-0002-8435-1451, Місце роботи авторів: Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», проспект Перемоги 37. Інститут програмних систем НАН України, 03187, м. Київ-187, проспект Академіка Глушкова, 40. e-mail: alyonavityuk@gmail.com, doroshenkoanatoliy2@gmail.com