Применение нейронных сетей для обеспечения автономной навигации мобильного робота
Рассмотрение и характеристика сущности процесса реализации нейронной сети для автономной навигации мобильного робота, используя данные, собранные с ультразвуковых датчиков, которые установлены на его корпусе. Ознакомление с архитектурой нейронной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 19.02.2019 |
Размер файла | 437,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Московский Технический Университет Связи и Информатики
Moscow Technical University of Communications and Informatics
Применение нейронных сетей для обеспечения автономной навигации мобильного робота
Application of neural network for supporting autonomous navigation of mobile robot
Вовик А.Г., Воронов В.И.
Vovik A.G., Voronov V.I.
Москва, Россия
Moscow, Russia
Аннотация
В статье описан процесс реализации нейронной сети для автономной навигации мобильного робота, используя данные, собранные с ультразвуковых датчиков, которые установлены на его корпусе.
Данная работа выполнена в рамках курсового проекта по дисциплине «Методы интеллектуального анализа данных», научный руководитель - д.ф.м.н., профессор Воронова Л.И [3].
Введение
В настоящее время мобильные робототехнические системы находят все более широкое применение в самых различных областях. Создаются автономные мобильные роботы для работы на современных производственных технологических линиях, в области логистики, в сферах обеспечения безопасности и обслуживания. Так же автономные мобильные роботы необходимы для работы в агрессивных средах и другой обстановке, опасной для человека.
На сегодняшний день, одной из главных проблем мобильных роботов является обеспечение автономной навигации. Таким образом, рассмотренная в статье задача обеспечения автономной навигации мобильных роботов с помощью нейронной сети прямого распространения является актуальной.
Для решения этой задачи авторами создано приложение на языке Python [7], содержащее нейронную сеть прямого распространения. Разработка приложение произведена в соответствии со следующими этапами:
1. Формируется исходный набор данных (обучающий набор), содержащий показания ультразвуковых датчиков, установленных на корпусе робота.
2. Производится «случайная инициализация» весов нейронной сети для входного и скрытых слоев.
3. Выбирается условие остановки обучения, в приведенном в статье примере будет взято 15000 итераций методом обратного распространения ошибки.
4. Исходный набор данных разбивается на тренировочный, содержащий 72% от исходного набора, и тестовый наборы, содержащий оставшиеся 28%.
5. С использованием тренировочного набора получают значения весов, обеспечивающих наилучшую точность алгоритма.
6. Для проверки полученных весов, на вход нейронной сети подается тестовый набор.
7. Делаются выводы о точности нейронной сети.
1. Описание исходного набора данных
Исходный набор данных, зарегистрированный с показаний датчиков, установленных на роботе SCITOS G5, был взят с сайта www.kaggle.com[6]в виде файла с расширением csv. Данные были собраны, когда SCITOS G5 проходил по комнате вдоль стены по часовой стрелке. Часть исходных данных изображена на рисунке 1.
Рисунок 1а Набор данных до обработки
Первые 4 колонки отображают минимальное показание ультразвуковых датчиков в пределах 60-градусной дуги, расположенных в передней, левой, правой и задней частях робота. Последняя колонка показывает направление движения робота.
Поскольку нейронные сети оперируют только числовыми данными, то последняя колонка, показывающая направление движения робота, была разбита на четыре дополнительные, где стоят нули, а единица в той колонке, порядковый номер которой соответствует предыдущему значению этого показателя (робот двигался вперед, незначительно поворачивал налево или направо, или резко поворачивал направо). То есть первые четыре колонки с показаниями датчиков являются признаками, а колонки 5, 6, 7 и 8 - это прогнозируемая величина. Часть набора данных после обработки изображена на рисунке 1б
Рисунок1б Набор данных после обработки
Считывание данных из файла реализуется с использованием готовой библиотеки для Python -«pandas» [2]. После считывания данные разбиваются на две части. Первая часть используется для обучения нейронной сети и содержит 72% данных от исходного набора, а вторая часть необходима для тестирования полученной нейронной сети, туда входят оставшиеся 28%.
2. Архитектура нейронной сети
Для решения задачи навигации был выбран персептрон с 4 нейронами на входе, 4 на выходе и 4 скрытыми слоями с 16, 12, 8 и 6 нейронами в каждом соответственно.
Далее создаются матрицы весов, заполненные случайными числами, которые необходимо умножить на входные данные для перехода к следующему слою нейронной сети. Выходные данные из скрытого слоя передаются через нелинейную функцию (функцию активации), для получения выходного значения.
Применение методов прямого и обратного распространения для обучения нейронной сети
Следующим этапом описываются методы прямого и обратного распространения. Для этого создается сигмоидная функция от входящего параметра. Функция принимает массив и возвращает его, преобразовав входящие данные с помощью сигмоиды. При написании функции для метода прямого распространения использовалась библиотека для Python - «numpy» [1]. Программная реализация метода прямого распространения представлена на рисунке 2.
Рисунок 2 Метод прямого распространения
Выходные данные из скрытого слоя передаются через нелинейную функцию (функцию активации), для получения выхода сети.
Программная реализация метода обратного распространения представлена на рисунке 3.
Рисунок 3 Метод обратного распространения
Суммарная ошибка (o_error) вычисляется как разность между ожидаемым значением «y» (из обучающего набора) и полученным значением «о» (посчитанное на этапе прямого распространения), проходящих через функцию потерь (cost function). Затем эти дифференциалы умножаются на число, называемое скорость обучения или learning rate (lr).Полученный результат затем вычитается из соответствующих весов. В результате получатся обновленные весаW1, W2, W3,W4 и W5. Переменная lr необходима для того, чтобы по мере обучения сети функция двигалась к глобальному минимуму. мобильный робот нейронный
Для обучения нейронной сети исходные данные разделяются на входные и данные на выходе. Входные данные - минимальные показание ультразвуковых датчиков в пределах 60-градусной дуги, расположенных в передней, левой, правой и задней частях робота, на основе которых мы должны получить наше выходное значение, а данные на выходе - непосредственно сам выходной ответ. Если выходное значение не соответствует требуемому, тогда мы изменяем значение весов и повторяем это изменение заданное количество раз. Наилучшая точность была достигнута при коэффициенте обучения равным 0.01 и количестве итераций 15000.
3. Тестирование нейронной сети
После обучения производится тестированию нейронной сети с использованием второй части исходных данных.
Вторая часть исходных данных составляет 28% и представляет собой 1455 наблюдений. Если выходное значение не соответствует требуемому, тогда прогноз определяется как неправильный.
После обработки тестируемых данных вычисляется точность и процент ошибок нейронной сети.
На рисунке 4 представлен пример тестирования на последней итерации и вывод точности нейронной сети.
Рисунок 4Вывод точности нейронной сети
Полученный в результате тестирования нейронной сети процент верных предсказаний направления движения мобильного робота составил 71%.
Заключение
Авторами разработано приложение на языке Python[7]с применением нейронной сети прямого распространения, решающее задачу автономной навигации мобильного робота, используя данные, собранные с ультразвуковых датчиков, установленных на корпусе мобильного робота.
Обученная нейронная сеть предсказывает направление движения мобильного робота, основываясь на данные, взятые с установленных на нем ультразвуковых датчиков, с точностью 71%.
Список источников и литературы
1. NumPy (NumericPython). Открытая библиотека для работы большими массивами и матрицами [Электронный ресурс]. - Режим доступа: http://www.numpy.org/
2. Pandas. Открытая библиотека для анализа и обработки данных. [Электронный ресурс]. - Режим доступа: http://pandas.pydata.org/
3. Л.И. Воронова, В.И. Воронов. Machine Learning: Регрессионные методы интеллектуального анализа данных: учебное пособие - МТУСИ, 2018 - 81 с.
4. Воронов В.И., Воронова Л.И. О повышении результативности магистерских программ в условиях инновационной экономики Инновационные подходы в науке и образовании: теория, методология, практика. - Изд-во: "Наука и Просвещение, 2017, с.35-44
5. Andrew Ng Machine Learning - обучающий курс по дисциплине Machine Learning от Stanford University [Электронный ресурс]. - Режим доступа: https :// www . coursera . org / learn / machinelearning
6. «Kaggle». Sensor readings from a wall-following robot. [Электронный ресурс]. - Режим доступа: https :// www . kaggle . com / uciml / wall - following robot
7. Python. Высокоуровневый язык программирования [Электронный ресурс]. - Режим доступа: https://www.python.org/
Размещено на Allbest.ru
...Подобные документы
История возникновения и развития современной робототехники, применение технологий искусственного интеллекта. Разработка структурной схемы системы навигации мобильного робота, коррекция траектории его движения, методы управления локальными перемещениями.
дипломная работа [1,1 M], добавлен 18.05.2011Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Обзор схемы конструкции автоматизированного мобильного робота. Выбор компонентов конструкции. Общая классификация роботов; виды двигателей. Выбор типа микроконтроллера. Осуществление программирования на основе расчётов по математической модели робота.
курсовая работа [1,2 M], добавлен 20.05.2015Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.
реферат [1,2 M], добавлен 24.05.2015Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013Сущность, структура, алгоритм функционирования самообучающихся карт. Начальная инициализация и обучение карты. Сущность и задачи кластеризации. Создание нейронной сети со слоем Кохонена при помощи встроенной в среды Matlab. Отличия сети Кохонена от SOM.
лабораторная работа [36,1 K], добавлен 05.10.2010Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015