к.т.н., доцент Зартенова Л. Г.; Скочедубова А. С.; Чернов С. С.

Карагандинский Государственный Технический Университет

 

Разработка блока управления интеллектуального робота на основе нейронной сети

 

Темпы развития робототехники связаны с успехами в области совершенствования вычислительных машин.

Часто цитируемые статистические данные в отношении их сводятся к следующему. Если бы автомобилестроение развивалось так же быстро, как вычислительная техника, то тридцатилетней давности автомашина «Роллс Ройс» стоила бы сейчас 2 фунта стерлингов. Этот пример в какой-то степени показывает, как быстро сейчас движется вперед робототехника.

Применение современных промышленных роботов увеличивает производительность оборудования и выпуск продукции, улучшает качество продукции, заменяет человека на монотонных и тяжелых работах, помогает экономить материалы и энергию.

В производстве и быту растет потребность в универсальных роботах, способных ориентироваться в быстро изменяющемся окружающем мире.

Однако, роботы еще не обладают в достаточной степени многими важнейшими качествами, присущими человеку, например не способны к разумному реагированию на непредвиденную обстановку и изменение рабочей среды, к самообучению на основе собственного опыта.

Развитие этих навыков требует поиска новых алгоритмов для использования в блоке управления робота.

Сложность этой проблемы заключается в необходимости учета множества различных параметров, в частности сигналов многочисленных датчиков.

Многочисленные публикации последних лет в области систем управления роботами посвящены общей теме - интеллектуализации систем управления за счет применения искусственных нейронных сетей, способных обучаться в реальном времени. И в каждой из них, так или иначе, прослеживается одна и та же мысль, что в будущем классические системы будут, вероятно, полностью заменены нейронными.

Область применения нейронных сетей чрезвычайно широка. На сегодняшний день они уже нашли себе применение во многих областях.

Банки и страховые компании: автоматическое считывание чеков и финансовых документов; проверка достоверности подписей; прогнозирование изменений экономических показателей.

Нефтяная и химическая промышленность: идентификация неисправностей оборудования; разведка залежей минералов по данным аэрофотосъемок; анализ составов примесей; управление процессами.

Биомедицинская промышленность: анализ рентгенограмм; обнаружение отклонений в ЭКГ.

Обработка огромных объемов информации осуществляется мозгом очень быстро, за доли секунды, несмотря на то, что нейрон является медленнодействующим элементом со временем реакции не менее нескольких миллисекунд.

Нервные клетки, или нейроны, представляют собой особый вид клеток в живых организмах, обладающих электрической активностью, основное назначение которых заключается в оперативном управлении организмом. Все процессы передачи раздражений от нашей кожи, ушей и глаз к мозгу, процессы мышления и управления действиями - все это реализовано в живом организме как передача электрических импульсов между нейронами.

Нейрон имеет тело, дерево входов (дендриты) и выходов (аксон и его окончания). Тело, как правило, имеет поперечный размер в несколько десятков микрон. Длина дендритов может достигать 1 мм, дендриты сильно ветвятся, пронизывая сравнительно большое пространство в окрестности нейрона. Длина аксона может достигать сотен миллиметров. Аксон контактирует с дендритами других нейронов через специальные образования - синапсы. Поперечные размеры синапса, как правило, не превышают нескольких микрон. Структура биологического нейрона представлена на рисунке 1.

Рисунок 1- Структура биологического нейрона

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

На рисунке 2 изображена математическая модель нейрона с тремя входами (дендритами), причем синапсы этих дендритов имеют веса w1, w2, w3.

Рисунок 2 – Математическая модель нейрона

К синапсам поступают импульсы силы x1, x2, x3 соответственно, тогда после прохождения синапсов и дендритов к нейрону поступают импульсы w1x1, w2x2, w3x3. Нейрон преобразует полученный суммарный импульс x=w1x1 + w2x2 + w3x3 в соответствии с некоторой передаточной функцией f(x). Сила выходного импульса равна y=f(x)=f(w1x1+ w2x2+ w3x3). Таким образом, нейрон полностью описывается своими весами wk и передаточной функцией f(x). Получив набор чисел (вектор) xk в качестве входов, нейрон выдает некоторое число y на выходе.

Нейроподобная сеть — это параллельная связная сеть простых адаптивных элементов, которая взаимодействует с объектами реального мира аналогично биологической нервной системе.     С инженерной точки зрения такая сеть представляет собой сильно распараллеленную динамическую систему с топологией направленного графа, которая может выполнять переработку информации посредством изменения своего состояния в ответ на постоянный или импульсный входной сигнал.

Искусственная нейронная сеть - это набор нейронов, соединенных между собой. Как правило, передаточные функции всех нейронов в нейронной сети фиксированы, а веса являются параметрами нейронной сети и могут изменяться.

Прежде всего искусственные реализации нейронных сетей делятся на программные и аппаратные. Аппаратные реализации слишком дороги и не так универсальны как программные, поэтому все наши исследования посвящены программной реализации.

Так же существует несколько десятков различных нейросетевых архитектур. Наиболее популярные и изученные архитектуры - это многослойный перцептрон, нейронная сеть с общей регрессией, нейронные сети Кохонена и другие.

Мы использовали многослойный персептрон с прямым распространением, в котором нейроны объединены в слои, а выходы нейронов одного слоя подсоединены ко входам нейронов следующего слоя. На рисунке 3 представлена структурная схема m-слойного перцептрона.

Рисунок 3 - Структурная схема m-слойного перцептрона

Роботы имеют различное строение и количество датчиков, а значит и разное количество параметров, передаваемых в блок управления.

Разработанная нами программа является универсальной и позволяет строить различные модели нейронных сетей, меняя количество входных и выходных параметров, количество слоев в сети, количество нейронов в слое и множество других параметров. Созданная сеть может быть сохранена для последующего использования. Это значит что разработка может быть использована в любой не только существующей модели робота но и в перспективе.

Для обучения нейронной сети используется алгоритм обратного распространения ошибки. Сеть обучается путем предъявления каждого входного набора данных из обучающей выборки и последующего распространения ошибки. Этот цикл повторяется много раз пока сеть не обучится.

На выходе нейронной сети мы получаем управляющие сигналы, которые и могут быть использованы для управления движением робота.

Для программной реализации нейрона в соответствии с принципами объектно-ориентированного программирования на языке C# описан класс.

Экземпляр класса содержит все параметры нейрона, включая его связи со всеми нейронами предыдущего слоя и их веса. Нейронная сеть представляет собой массив экземпляров класса.