Использование нейронной сети для стабилизации положения подвижных элементов в среде OpenAI
Особенности использования нейронной сети для стабилизации положения подвижных элементов в среде OpenAI. Знакомство с решением задачи стабилизации положения подвижных элементов в технических системах. Рассмотрение этапов проектирования нейронной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 19.02.2019 |
Размер файла | 994,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Использование нейронной сети для стабилизации положения подвижных элементов в среде OpenAI
В статье описано решение задачи стабилизации положения подвижных элементов в технических системах. Реализована нейронная сеть с различными вариантами персептрона средствами языка Python, библиотеки tensorflow [1] и её расширения tflearn. Проведена имитация процесса стабилизации положения подвижного элемента технической системы в среде OpenAI средствами библиотеки gym [2]. Сформированы наборы данных для обучения нейронной сети, проведено обучение и тестирование нейронной сети средствами языка Python и библиотеки gym. В результате тестирования даны рекомендации по выбору архитектуры нейронной сети для разработки систем стабилизации подвижных объектов.
Данная работа выполнена в рамках курсового проекта по дисциплине «Machine learning. Обучающиеся технические системы», научный руководитель - д.ф.-м.н., профессор Л.И. Воронова [3].
Постановка задачи
Разработчикам современных мобильных роботов, инженерам на некоторых предприятиях и др. необходимо решать задачу стабилизации положения и автоматического удерживания равновесия разрабатываемых систем [4]. При решении данной задачи используются современные методы принятия решений и интеллектуального анализа данных.
Разработка системы управления (СУ) таким объектом возможна как на аппаратном, так и на программном уровне. Классическим примером является замкнутая система автоматического регулирования, воздействующая на объект на основе информации о состоянии объекта, получаемой по контуру обратной связи.
Современный уровень робототехники характеризуется разработкой цифровых СУ, в том числе и для систем стабилизации подвижных объектов. Такие СУ могут иметь гибкую структуру, являются кроссплатформенными, лёгкими в разработке и настройке по сравнению с аналоговыми СУ. Программное обеспечение таких СУ позволяет реализовать методы машинного обучения: дерево решений, случайный лес, нейронные сети, кластеризация и др.
Разрабатываемый алгоритм может быть использован в подсистеме для промышленных фрезерных станков с числовым программным управлением (ЧПУ) для стабилизации резца, что поможет повысить качество изделия [5].
Инструментарий Gym
Gym - это инструментарий для разработки и сравнения алгоритмов обучения. Его библиотека gym представляет собой набор тестовых задач -- сред, которые можно использовать для разработки алгоритмов обучения. Эти среды имеют общий интерфейс, позволяющий писать общие алгоритмы[2].
Инструментарий gym предоставляет собой имитацию более 2,5 тысяч вариантов окружающей среды, каждая из которых может использоваться для разработки алгоритма обучения.
В библиотеке Gym есть среда CartPole-v1 (рис. 1), представляющая собой тележку, на которой балансирует шест. Управление тележкой происходит при помощи функции step(), которая имеет единственный входной аргумент: 0 или 1, что соответствует передвижению тележки влево или вправо соответственно.
Рисунок 1. Окно среды CartPole-v1 [2]
Функция step()возвращает три значения:
• Наблюдение (observation): специфичный для окружающей среды объект - в данном случае - положение тележки.
• Награда (reward): вознаграждение, полученное в результате предыдущего действия. Масштаб варьируется в зависимости от среды, но цель всегда состоит в том, чтобы увеличить награду. Программа увеличивает количество очков на 25 единиц за каждую секунду незавершенной игры.
• Завершение (done): информация о том, нужно ли перезапускать среду. Критическое отклонение шеста от нормального положения (больше 15 градусов) [2].
В начальный момент времени, когда шест находится в исходном состоянии, система принимает решение, в какую сторону подвинуть тележку. После этого система получает данные о передвижении тележки на предыдущем шаге и принимает решение о следующем действии (рис.2).
Рисунок 2. Пример принятия решения
нейронный стабилизация сеть
Если шест не отклонен от нормального положения в сторону более чем на 15 градусов, возвращаемая булева переменная done принимает значение false и работа алгоритма продолжается. Как только переменная done возвращает значение true, игра заканчивается (рис.3).
Рисунок 3. Пример завершения игры
Генерация обучающего набора данных
Для обучения нейронной сети необходимо подготовить обучающий набор данных. Созданная функция random_starts() запускает среду и в случайном порядке смещает тележку влево или вправо, пока работа алгоритма не будет завершена значением переменной done.
Создаются массивы training_data и accepted_scores. В массив training_data записывается информация обо всех передвижениях тележки во время генерации тренировочных данных. Однако если записывать абсолютно все перемещения тележки, то туда попадут и данные, непригодные для обучения. Например, если при старте среды шест сразу отклонился от нормали более чем на 15 градусов и завершил работу алгоритма (рис.3).
Для решения проблемы создан массив accepted_scores. Эмпирическим путем установлено, что набор данных можно считать подходящим для обучения, если перемещения тележки позволили получить награду в 50 очков и более.
При генерации обучающего набора данных, в среде проводится 10 тысяч тренировочных запусков, в результате которых в массив training_data записываются только запуски, набравшие более 50 очков.
Проектирование нейронной сети для автоматического удержания равновесия объекта
Как правило, нейронные сети могут иметь различную архитектуру: сверточные, рекуррентные нейронные сети и персептрон. Для решения задачи принятия решения на основе изменяющихся входных данных можно использовать персептрон.
Для реализации нейронной сети используются язык программирования Python, библиотека tensorflow и её расширение tflearn [1]. Tensorflow - одна из наиболее распространенных библиотек для машинного обучения. Tensorflow обладает обширной документацией, что существенно упрощает процесс обучения нейронной сети и её дальнейшее использование. Tflearn - модульная библиотека глубокого обучения, построенная поверх tensorflow, которая содержит все базовые учебные функции.
Библиотека tensorflow позволяет разработчику упростить построение нейронной сети, благодаря встроенным функциям.
Подбор оптимальной модели персептрона возможен эмпирическим путем, поэтому в качестве исходной модели использован персептрон с одним скрытым слоем (рис.4).
В качестве входных данных выступают положение шеста, предыдущее положение шеста и положение тележки. В качестве выходных данных - решение, в какую сторону сдвинуть тележку.
Рисунок 4. Персептрон с одним скрытым слоем
Для оценки эффективности модели персептрона, создан массив Score, в котором хранятся все полученные в ходе тестирования очки. После тестирования находится среднее арифметическое значение элементов массива Score, которое и будет рассматриваться как эффективность.
Далее происходит обучение нейронной сети в 5 эпох при помощи функции train_model(), показанной на рисунке 5.
Рисунок 5. Функция обучения нейронной сети
В ходе тестирования персептрона с одним скрытым слоем был получен график зависимости среднего результата от количества нейронов в скрытом слое, показанный на рисунке 5.
Рисунок 6. График зависимости среднего результата
Как видно из графика, добавление нейронов на скрытый слой после 100 не изменяет результат. Для увеличения показателей принято решение изменить структуру персептрона, добавив больше скрытых слоёв. Протестировано много видов многослойного персептрона и самые показательные результаты показаны в Табл.1.
Таблица 1. Варианты моделей персептрона
нейронный стабилизация сеть
где:
• Средний результат - среднее количество очков набранных за время тестирования
• L1..L5 - количество скрытых слоёв;
• число на пересечении - количество нейронов на каждом скрытом слое.
При использовании трёх скрытых слоёв с количеством нейронов L1/L2/L3 получен самый низкий средний результат - 10 очков.
При увеличении количества нейронов, результат заметно улучшился, но наиболее эффективным оказался способ, в котором происходит увеличение количества скрытых слоёв и нейронов.
В результате была сформирована модель из 5 скрытых слоёв, с количеством нейронов 128/128/128/128/128. Однако такая модель не позволяла получить более 326 очков.
Модель персептрона с 5 скрытыми слоями и количеством нейронов
128/256/512/256/128 показала наиболее эффективный результат. Итоговая модель показана на рисунке 6.
Рисунок 7. Итоговая модель многослойного персептрона
Заключение
нейронный стабилизация сеть
В статье была решена актуальная проблема контроля равновесия элементов мобильных и человекоподобных роботов. Проблема решена при помощи технологий машинного обучения, а именно использования одного из видов нейронных сетей - персептрона. Для реализации персептрона была использована библиотека tensorflow и её расширение tflearn. Обучение сети проводилось в среде OpenAI с использованием библиотеки Gym.
В ходе тестирования различных вариантов персептрона наилучший результат был достигнут при использовании многослойного персептрона с 5 скрытыми слоями.
Разработанная нейронная сеть может быть использована в реальных системах для стабилизации подвижных частей, гашения вибрации объектов с помощью подвижных механизмов.
Список источников и литературы
1.Открытая библиотека машинного обучения TensorFlow [Электронный ресурс]. - Режим доступа: https://www.tensorflow.org/(дата обращения: 09.12.2018)
2.Открытая библиотека машинного обучения Gym.OpenAI [Электронный
ресурс]. - Режим доступа: http://gym.openai.com/ (дата обращения: 09.12.2018)
3.Воронова Л.И., Воронов В.И. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие - МТУСИ, 2017 - 81 с.
4.Юревич Е.И. Основы робототехники. - 4 изд. - СПб.: БХВ-Петербург, 2018.
5.Гаранин В.Н., Гришкевич А.А. Способ подвижного взаимодействия фрезерного инструмента с приводом механизма резания станка // Древообрабатывающая промышленность. - 2015. - С. 155-156.
6.Воронов В.И., Воронова Л.И., Генчель К.В. Применение параллельных алгоритмов в нейронной сети для распознавания жестового языка // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2018). VII Международная научнотехническая и научно-методическая конференция. Сборник научных статей. В 4-х томах. Под редакцией С.В. Бачевского. - СПб.: СПбГУТИ им. проф. М.А. Бонч-Бруевича, 2018. - С. 207212.
Размещено на Allbest.ru
...Подобные документы
Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Принцип построения и описание прибора. Назначение и область применения спектрометра космических излучений на алмазных детекторах. Аппроксимация степенным многочленом. Математическая модель нейронной сети. Описание интерфейса программного комплекса.
дипломная работа [591,1 K], добавлен 03.09.2017Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Преимущества и недостатки нейронных сетей с радиальными базисными функциями (РБФ). Функции newrbe и newrb для построения РБФ общего вида и автоматической настройки весов и смещений. Пример построения нейронной сети с РБФ в математической среде Matlab.
лабораторная работа [238,7 K], добавлен 05.10.2010Этапы решения задачи классификации цифр арабского алфавита на основе нейронных сетей: выбор класса, структуры и пакета нейронной сети, ее обучение, требования к информационной и программной совместимости, составу и параметрам технических средств.
реферат [111,6 K], добавлен 19.10.2010Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010