Научно - Информационный портал



  Меню
  


Смотрите также:



 Главная   »  
страница 1 ... страница 11 | страница 12 | страница 13 страница 14

ЛАБОРАТОРНАЯ РАБОТА № 4.

  1. УПРАВЛЕНИЕ ДВИЖЕНИЕМ РОБОТА ПО ЗАДАННОЙ ТРАЕКТОРИИ


Цель работы: создание, обучение и использование нейронных сетей для определения траекторий движения при управлении автономными мобильными объектами.

Одной из областей, где нейронные сети нашли широкое применение, являются робототехнические системы. С их помощью может быть сжата и обработана информация от внешних сенсоров робототехнической системы, получена общая карта местности и определен оптимальный путь для перемещения в заданное место при перевозке грузов или патрулировании заданной зоны. Информация, полученная от видеокамеры, не уступает по своей полноте данным сенсорных датчиков, что позволяет решать и более сложные задачи, как, например, исследование окружающей местности или определение оптимального маршрута движения транспортного средства. Видеоинформация представляется бинарной матрицей заданной размерности. Процесс преобразования изображения отражен на рис. 24.


а б в


Рис. 24. Этапы преобразования изображения траектории от видеокамеры: а – исходное видеоизображение траектории, б – проекция изображения на матрицу размерностью 9Ч9, в – бинарный массив.
В общем случае блок определения направления движения представляет собой многослойную нейронную сеть, задача которой состоит в обеспечении устойчивого управления роботом на всевозможных траекториях движения. Объект должен правильно проходить и те участки траектории, с формой которых он не был знаком на этапе обучения. Для формирования направления движения робота используется двухслойная нейронная сеть с прямыми связями.

Входной слой сети содержит количество нейронов, равное количеству элементов бинарной матрицы. Каждому нейрону выходного слоя можно поставить в соответствие определенное направление движения из интервала при шаге дискретизации (тогда их общее количество равно ). Считается, что поле зрения человека характеризуется углом в , поэтому интервал является наилучшим приближением к реальным возможностям человека. Диапазон обозрения зависит от технических характеристик системы и от предъявляемых к ней требований. Так в работе[12], например, использован угол зрения в интервале с шагом дискретизации . Все нейроны выходного слоя, как правило, имеют логистические функции активации, поэтому для каждого момента времени на выходе сети лишь один нейрон имеет значение, близкое к 1, а остальные – 0. Тот нейрон, выход которого максимальный, и определяет текущее направление движения объекта.

Промежуточный слой нейронной сети состоит из нейронных элементов. Такое количество нейронов скрытого слоя получено в результате анализа работы сети с различным количеством нейронов скрытого слоя студентом кафедры интеллектуальных систем Д. М. Медведевым. Данный слой является важным для нейросетевой модели блока управления роботом, поэтому даже незначительное варьирование количества его элементов отражаются на работе всей сети. Для обучения нейронной сети составлен набор тренировочных пар из матриц входных данных размерностью и соответствующих им векторов выхода размерностью . Данное обучающее множество включает в себя наиболее типичные участки траекторий и рекомендуемые направления робота. Все используемые обучающие наборы можно разделить на два класса. Первый класс представляет собой фрагменты прямых линий, наблюдаемых под различными углами и при различном положении геометрического центра робота относительно траектории. Ко второму классу относятся криволинейные участки траекторий. Количество тренировочных наборов для каждого класса составляет соответственно 70 образов для первого и 50 – для второго.

Нейронная сеть обучается с помощью процедур-функций, встроенных в пакет NNT системы MATLAB. При этом рациональнее всего использовать групповое представление данных с числом шагов по времени, равным единице (статическая сеть). Последовательное представление данных cell array позволяет рассматривать каждую строку массива ячеек как временную последовательность.



Групповое представление данных можно использовать только при адаптации статических сетей. При переходе от последовательного представления данных cell array к формату группового представления double array массив ячеек, содержащий, например, Ni числовых массивов размера RiЧQ преобразуется в единственный числовой массив размера .

Непосредственное обучение можно производить с помощью функции train, которая модифицирует параметры сети только после того, как использовано все обучающее множество, и градиенты, рассчитанные для каждого элемента множества, суммируются при определении приращения настраиваемых параметров. Минимального значения функционала ошибки можно достичь с помощью двух модифицированных методов обратного распространения ошибки: алгоритма градиентного спуска с выбором параметра скорости настройки (функция обучения ‘traingda’) и алгоритма градиентного спуска с возмущением и адаптивной скоростью обучения (функция обучения ‘traingdx’).

Критерием окончания процедуры обучения сети является достижение определенного значения суммарной среднеквадратичной ошибки (sse) сети. Окончание обучения может произойти также при достижении заданного количества циклов (эпох) обучения. Алгоритм traingdx обеспечивает более быструю сходимость, т. к. в нем используются два параметра: возмущение и скорость обучения. Если значение параметра возмущения равно 0, то изменение весов определяется только градиентом, если значение этого параметра равно 1, то текущее приращение совпадает с предшествующим как по величине, так и по направлению. Параметры возмущение и скорость обучения независимы, поэтому существует определенная трудность в подборе их оптимальных значений для обучения сети. В процедуре-функции traingda регулирование скорости сходимости осуществляется только за счет изменения параметра скорости обучения, что обуславливает ее меньшую гибкость.

Созданная сеть после обучения на представленных ей примерах приобретает способность к обобщению. Так, при предъявлении тестовых наборов на выходе сети можно наблюдать результат, отличающийся от желаемого выхода на ±5є, что является допустимой погрешностью. Бинарные матрицы, представляющие входную информацию, могут отражать лишь небольшой участок траектории, поэтому такой подход всегда является вероятностным. Кроме этого следует отметить такое свойство созданной нейронной сети, как возможность прогнозирования продолжения траектории, определяющего дальнейшее направление движения объекта. Структура, алгоритмы обучения или адаптации созданной нейронной сети могут быть перенесены на различные системы, которые должны определять оптимальное направление движения мобильных объектов.

Пример программы, обеспечивающей создание, обучение, тестирование и моделирование нейронной сети прямого распространения сигнала для управления мобильным объектом в системе MATLAB может иметь вид:

% Создание массивов line_trajectories и curve_trajectories входных параметров

% для наборов, содержащих соответственно фрагменты прямых и кривых

% траекторий. line_targets и curve_targets – массивы целей.


[line_trajectories,line_targets] = lineset;

[curve_trajectories,curve_targets] = curveset;


% Определение вспомогательных параметров и количества

%нейронов в выходном слое.


[R,Q] = size(line_trajectories);

[OutputNeurons,Q] = size(line_targets);


% Определение количества нейронов в скрытом слое.
HiddenNeurons = 17;
% Выбор максимальных и минимальных значений среди всех

% тренировочных наборов


for mm1=1:size(line_trajectories)

mm{mm1,1}=min(line_trajectories(:,1));

mm{mm1,2}=max(line_trajectories(:,1));

end;


mmm= [ [mm{:,1}]; [mm{:,2}] ]';

% Проектирование двухслойной нейронной сети с логистическими

% функциями активации и процедурой обучения traingdx.
net = newff(mmm,[HiddenNeurons OutputNeurons],{'logsig' 'logsig'},'traingdx');
clear mm;
% Задание начальных весов и смещений для скрытого слоя.
net.LW{2,1} = net.LW{2,1}*0.01; net.b{2} = net.b{2}*0.01;
% Применение суммарной среднеквадратичной ошибки в качестве оценки

% качества обучения.


net.performFcn = 'sse';
% Критерий прекращения процедуры обучения

net.trainParam.goal = 1e-2;


% Частота вывода на экран результатов обучения.
net.trainParam.show = 50;
% Максимальное количество циклов обучения.
net.trainParam.epochs = 50000;
% Значение импульса или параметра возмущения.
net.trainParam.mc = 0.95;
% Значение параметра скорости обучения.
net.trainParam.lr = 0. 02;
% Отсутствие минимальной границы у градиента функционала ошибки.
net.trainParam.min_grad = NaN;
% Объединение всех имеющихся тренировочных наборов (формирование

% обучающей выборки).


P = [line_trajectories curve_trajectories ];

T = [line_targets curve_targets ];


% Запуск процедуры обучения сети

[net,tr] = train(net,P,T);


% Запуск процедуры, выполняющей проверку работоспособности сети

% на примерах, не входящих в обучающую выборку.


Y = sim(net,P);
% Определение ошибки между выходами сети и целевыми векторами.
EE=T-Y;
% Подсчет среднего арифметического полученных ранее ошибок.
perf=mse(EE);
% Файлы lineset.m и curveset.m должны быть доступны системе MATLAB

Порядок выполнения работы:

  1. Изучить M – программу создания, обучения и моделирования нейронной сети для управления мобильным объектом, движущимся по некоторой траектории. Используя систему CaptureTV и встроенную функцию bmpread (‘name’) системы MATLAB (name – имя файла) получить несколько модельных фрагментов траекторий, изображений размером 9Ч9.

  2. Построить нейронную сеть прямой передачи сигнала для распознавания изображений, фрагментов траекторий движения автономного мобильного объекта и определения угла его поворота на следующем шаге перемещения.

  3. Обучить сеть, используя файлы lineset.m и curveset.m. Проверить работу сети на контрольном множестве и полученных фрагментах траекторий.

Форма отчета:

  1. Описание исходной задачи.

  2. Описание архитектуры сети с указанием параметров.

  3. Листинг программы с комментариями.

  4. Результаты обучения и обоснование правильности выбора параметров сети и полученных направлений движения.


  1. ЛИТЕРАТУРА


  1. Корнеев В. В. Параллельные вычислительные системы. М.: Нолидж, 1999.

  2. Головко В. А. Нейроинтеллект: теория и применение. Кн. 1, 2. Брест, 1999.

  3. Горбань А. Н., Россиев Д. А. Нейронные сети на персональном компьютере. Новосибирск: Наука, 1996.

  4. Нейрокомпьютеры и интеллектуальные роботы / Под ред. Н. М. Амосова Киев: Наукова думка, 1991.

  5. Уоссермен Ф. Нейрокомпьютерная техника. Теория и практика. М.: Мир, 1992.

  6. Прикладная статистика. Классификация и снижение размерности / Под ред. С. А. Айвазяна М.: Финансы и статистика, 1989. С. 536 – 553.

  7. Потемкин В. Г. MATLAB. Справочное пособие. М.: Диалог-МИФИ, 1997.

  8. Нейронные сети Statistica Neural Networks. М.: Телеком, 2000.

  9. Шахнович И. Отечественный процессор цифровой обработки сигналов NM6403 – чудо свершилось. Электроника: Наука, технология, бизнес. № 2. 1999. С. 30 – 33.

  10. Калацкая Л. В., Евдасева Г. Ф. Методические указания и задания по спецкурсу «Специальное программное обеспечение автоматизированных систем научных исследований». Мн., ротапринт БГУ. 1983. С. 64 – 76.

  11. Медведев В. С., Потемкин В. Г. Нейронные сети. MATLAB 6. М.: Диалог-МИФИ, 2002. 496 с.

  12. Головко В. А., Игнатюк О. Н. Использование НС технологий для автономного управления мобильным роботом // Вестн. Брестского ГТУ. 2000. № 4. С. 64 – 68.



  1. СОДЕРЖАНИЕ

ВВЕДЕНИЕ31. ИСКУСТВЕННЫЕ НЕЙРОННЫЕ СЕТИ51.1. Нейронный элемент51.2. Функции активации нейронных элементов71.3. Однослойные нейронные сети131.4. Классификация нейронных сетей182. АЛГОРИТМЫ ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ212.1. Правила обучения Хебба232.2. Правила обучения персептрона262.3. Правило обучения Видроу – Хоффа272.4. Метод обратного распространения ошибки282.5. Многослойные сети с обратным распространением информации312.6. Обобщенное правило обучения Хебба352.7. Радиальные базисные сети и их обучение363. ПАКЕТ NNT СИСТЕМЫ MATLAB

И РЕШЕНИЕ ПРИКЛАДНЫХ ЗАДАЧ

С ПРИМЕНЕНИЕМ НЕЙРОННЫХ СЕТЕЙ393.1. Характеристика пакета NNT393.2. Вычислительная модель нейронной сети413.3. Лабораторная работа 1.

Распознавание символов

473.4. Лабораторная работа 2.

Прогнозирование результатов выборов

(Задача классификации)553.5. Лабораторная работа 3.

Аппроксимация экспериментальных данных

с использованием РБФ-сети573.6. Лабораторная работа 4.

Управление движением робота



по заданной траектории67ЛИТЕРАТУРА74



страница 1 ... страница 11 | страница 12 | страница 13 страница 14

Смотрите также: