![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Программа оптимизации движения робота
Опишем каждый отдельный нейрон как запись, содержащую все необходимые части: Список весовых коэффициентов для связей между данным нейроном и всеми нейронами предыдущего слоя (или же входными данными, если нейрон находится во входном слое). Весовой коэффициент – величина возбуждения или торможения нейрона. Каждый весовой коэффициент - действительное число: по 1 коэффициенту на нейрон предыдущего слоя. Значение ошибки (sigma) используется только на стадии обучения, данная величина не обязательно должна быть связана с нейроном. Выходной сигнал хранится в поле OutN (активность нейрона). Сам нейрон должен отреагировать на входной сигнал, поступающий по связям, вычислив при этом выходной сигнал. В нашем примере для трансформации входных и выходных данных мы используем в качестве функции сигмоиду. Каждый слой нейронов базируется на выходе предыдущего слоя, за исключением входного – его значения должны быть рассчитаны полностью до вычисления значений скрытого слоя, который, как и остальные, должны быть рассчитаны до значений выходного. Для определения входов и выходов сети следует определить параметры нашего мобильного робота. Для простоты введём три относительных направления: слева, спереди и справа. А также расстояния от препятствия до транспортного средства. Для определения поля зрения робота используем круг. Итак, в программном виде на вход подаётся массив расстояния до препятствия Logic: array of real. Расстояния до ближайшего препятствия слева, в центре и справа от транспортного средства – Logic [0], Logic [1] и Logic [2] соответственно. Как вычислить расстояние? Нужны координаты, радиус окружности, линии для обозначения границ самого робота, так как за обозначения робота мы берём реальную модель. Каждый объект в пределах вышеуказанного круга мы должны проверять на условия для определения места нахождения относительно робота. Расстояние вычисляем и сохраняем в Vision[0]/Vision[1]/ Vision[2], но лишь при условии, что новое значение меньше предыдущего (если таковое имеется). На выходе мы получаем указания по изменению скорости и направления (ускорение, торможение, угол поворота рулевого колеса). Следует, нам нужно 2 выхода – значение ускорения/торможения и указание на изменение направления. В зависимости от того как мы обучаем робота, он может в некоторых случаях «колебаться» и оказываться обездвиженным. Пример обучающей выборки: Вход: 0, 0: Объект почти касается робота 1, 0: Объект на максимальном расстоянии или нет объекта в поле зрения Выход: Ускорение 0, 0: Максимальное отрицательное ускорение 1, 0: Максимальное положительное ускорение Направление 0, 0: Полный поворот влево 0, 5: Прямо 1, 0: Полный поворот вправо Поэтапный план моделирования: - определение местонахождения робота, разграничения в соответствии с его габаритами и препятствия на координатной плоскости - создадим три массива (каждый соответствует тому, в каком из трёх направлений находится объект) - расчёт расстояния до каждого объекта - создание сети (на вход подаются массивы с расстоянием, указание числа скрытых слоёв, скорости обучения, крутизна сигмоиды, коэффициент импульса НС, доступной ошибки нейросети) - корректировка весов - обучение сети на экспериментальной выборке (например, моделирование будет производиться на языке Pascal в среде Delphi7) Заключение: Мы провели обзор нейросети обратного распространения. Описали применение алгоритма обратного распространения ошибки для многослойного перцептрона, смоделировали идеализированную ситуацию передвижения робота. Для развития темы в дальнейшем необходимо перевести алгоритм на машинный язык, обучить систему, проверить модель на реальном прототипе, выявить уже менее очевидные характеристики внешней среды и с их учётом скорректировать поведение данной нейросети.
Список использованной литературы: 1) Васильев И. А. Управление траекторным движением мобильных роботов разных колёсных систем. «Экстремальная робототехника». Сборник докладов международной научно – технической конференции, 22-25 ноября 2011 2) Бурдаков С. Ф., Мирошник И. В., Стельмаков Р. Э. Системы управления движением колёсных роботов. Санкт – Петербург; «Наука», 2001 3) Горбань А. Н. Обучение нейронных сетей. – М.: СП ПараГраф, 1990 4) Сидоркина И. Г. Системы искусственного интеллекта: учебное пособие – М.: КНОРУС, 2015 5) Ф. Уоссермен. Нейрокомпьютерная техника: Теория и практика. – М.: «МИР», 1992
|