Актуальность проблемы
С начала вхождения в индустриальную эпоху, прогресс общества стал напрямую зависеть от научно технических прорывов. Главным катализатором активной работы учёных и инженеров стала нужда общества в автоматизации многих аспектов жизнедеятельности и нужда самих исследователей и изобретателей в автоматизации своей деятельности. Данная тенденция активно наблюдается и на сегодняшний день.
Большинство исследований и разработок направлены на упрощение процессов производства, изучения, социальных взаимодействий, и других аспектов жизни человека. Одним из таких аспектов является транспортировка.
На данный момент, большинство «Гигантов» промышленной автоиндустрии работают над созданием и внедрением интеллектуальной системы пилотирования в свою продукцию.
В первые автопилот создала и использовала компания « Sperry Corporation » в 1912 году при создании военного самолёта. Система получала данные от гирокомпаса и высотометра регулируя на их основе курс и крен самолёта. В 1947 году впервые был совершён трансатлантический полёт полностью под управлением автопилота [1].
К сожалению, для наземного транспорта, создание автопилота является намного более сложной задачей. Основное различие в ведении наземного и воздушного транспорта это отсутствие препятствий на пути у последнего. Работа пилота пассажирского лайнера в основном заключалась в анализе данных с датчиков и приеме команд от диспетчера радиолокационной вышки. Конечно есть и внештатные ситуации, но их количество не велико. Поэтому их все описали в системе автопилота.
При управлении наземным транспортом возникает намного больше внештатных ситуаций в основном из-за присутствия на дороге огромного количества других водителей. Человеческий фактор довольно трудно описать с помощью нынешних систем автоматизации. Поэтому человечество придумало новый инструмент для анализа и принятия решений – нейронные сети.
На данный момент нейронные сети являются главным объектом многих исследований и разработок. С их помощью решаются многие проблемы автоматизации процессов. Они позволяют внедрить в машинный код человеческий фактор что сильно упростит работу над интеллектуальными системами, в том числе и над системой интеллектуального пилотирования.
Анализ существующих исследований
В первую очередь стоит взглянуть на уже рабочие автопилоты от крупных компаний. Компания «TESLA» стоит в авангарде таких исследований. В 2019 году компания выложила пример работы их нейронной сети и машинного зрения «Autopilot 3.0». В работе системы участвовали сорок восемь нейронных сетей, на обучение которых ушло около 70 000 часов [2]. В видеоролике было показано как система анализирует препятствия, дорожные знаки и разметку, погодные условия. Компания решила не объединять всё в кучу и реализовать свою сеть под каждую задачу отдельно. Таким образом они повисели точность отдельных предсказаний, но увеличили время на обучение сети. По заявлению компании, главными проблемами при обучении является нехватка обучающих множеств и переобучение сети.
Рисунок 1 Скриншот с визуализацией работы системы Tesla Autopilot 3.0.
В отечественном сегменте тоже присутствуют компании выпускающие свои автопилоты. Беспилотные автомобили компании «Яндекс» тестируются с 2017 года. Сейчас компания активно развивает беспилотное такси и ботов доставки. В процессе создания своей системы они также встретились с нехваткой данных для обучения и переобучением сети.
У обеих систем есть общая черта. Они разделены на 2 подсистемы, система принятия решений и система машинного зрения. Система машинного зрения отвечает за контроль внешнего пространства вокруг транспортного средства. Обычно она самая массивная требует больших вычислительных мощностей и хороших обученных нейросетей. Так как внешнюю среду мы будем моделировать то необходимость в машинном зрении отпадает, а все данные можно отправлять напрямую в систему принятия решений. Поэтому стоит больше внимания уделить аспектам построения нейронных сетей для интеллектуальных систем.
Построение начинается с определения структуры нейронной сети [3]. От количества нейронов и способа их размещения зависят обучаемость сети, скорость обучения, корректность предсказаний, склонность к переобучению и много других важных аспектов.
Подбирать и разрабатывать конструктивную схему можно и вручную [3], но практика показывает, что данный метод наименее эффективный и работает только при полной осознанности действий инженером разрабатываемой сети. Поэтому существует два основных метода: с помощью генетического алгоритма (тот же случайный поиск, но более формализованный) и с помощью конструктивных алгоритмов синтеза нейронных сетей.
В статье «Конструктивный алгоритм синтеза структуры многослойного персептрона» [4] описан алгоритм нахождения оптимальной структуры слоёв и нейронов в обучаемой с учителем сети. Автор, на основе нахождения локального минимума критериев Бартлетта [5] и Мураты-Амари [6], оценивающих обобщающие свойства нейронных сетей, меняет структуру изначально сгенерированной сети с помощью удаления наименее информативных критериев и добавления нейронов в сеть. Суть алгоритма добавления новых нейронов немного схоже с генетическим алгоритмом. При добавлении нового нейрона генерируются новые сети в количестве равном количеству внутренних слоёв. В каждой сети к одному из слоев добавляется нейрон, затем сети обучают и сравниваю по обобщающим свойствам и выбирают добавление к какому слою нейронов наиболее эффективно. Так же автор при обучении для сравнения добавляет новые синтезируемые независимые признаки, скомбинированные из значений подмножеств исходных признаков задачи. На создание такого метода автора с подвигло сильная переобучаймость сети созданной с помощью двух ранее описанных методов.
Рисунок 2 Графики результатов работы алгоритма для задачи Satellite.
Рисунок 3 Графики результатов работы алгоритма для задачи OptDigits
В процессе определения оптимальной архитектуры сети появляется понимание того какие данные будут использованы для анализа и предсказания. Для решения поставленной задачи в работе требуется сымитировать показания датчиков дальности до объектов. В связи с этим иметься понимание о тех данных которые мы отправляем в систему. Скорее всего это будет набор дискретных величин. В статье «Оптимизация предобработки признаков выборки данных: критерии оптимальности» [7] описаны методы предобработки качественных признаков выборки. Автор использует константу Липшица по выборке для определения уровня оптимальности обработки, и пытается убрать данные которые слишком сильно расширяют диапазон исходных значений выборки. Применимо к нашей задачи данный алгоритм позволит определить оптимальное расстояние, на котором начнёт срабатывать датчик приближения объекта и начнёт передавать данные в сеть.
На данную тему существует множества исследований, по мимо перечисленных в этой статье. Это ещё раз доказывает необходимость изучения данного вопроса, ведь представить уровень потенциала данных технологий пока не представляется) возможным.
Список литературы
- Щипанов Г.В. Основы теории автоматического пилотирования и автопилоты Книга по Требованию, 2012г.
- https://habr.com/ru/news/t/486600/ Tesla показала, как видит нейронная сеть Autopilot 3.0 / Хабр (habr.com)
- Николенко С. Кадурин А. Архангельская Е. Глубокое Обучение 2020г.
- Царегородцев В.Г. КОНСТРУКТИВНЫЙ АЛГОРИТМ СИНТЕЗА СТРУКТУРЫ МНОГОСЛОЙНОГО ПЕРСЕПТРОНА 2008г.
- Bartlett P.L. For valid generalization, the size of the weights is more important than the size of the network / Advances in Neural Information Processing Systems 9 (1996). MIT Press, 1997
- Wynne-Jones M. Node splitting: A constructive algorithm for feed-forward neural networks / Neural Computing & Application, 1993.
- Царегородцев В.Г. Оптимизация предобработки признаков выборки данных: критерии оптимальности 2005г.