Автомобиль с глубоким обучением научился самостоятельному вождению: Автомобиль с глубоким обучением научился самостоятельному вождению за 20 минут

Содержание

Автомобиль с глубоким обучением научился самостоятельному вождению за 20 минут

Источник: Новости высоких технологий

Группа исследователей английского стартапа Wayve разработала способ применения сети глубокого обучения к автономному вождению.

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

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

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

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

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

Команда Wayve считает, что более разумный подход заключается в использовании алгоритмов обучения с подкреплением, вроде того, что задействует DeepMind — позволить компьютеру обучаться подобно людям, на практике.

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

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

Чтобы продемонстрировать, насколько хорошо мог бы сработать такой подход, команда Wayve оснастила Renault Twizy одной камерой, управлением газом, тормозом и рулем, и подключила его к графическому процессору и компьютеру с алгоритмами обучения с подкреплением.

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

Затем они добавили водителя и поместили автомобиль на проселочную дорогу. Компьютер научил автомобиль ехать, не съезжая с дороги, за 20 минут.


Группа исследователей английского стартапа Wayve разработала способ применения сети абсолютного обучения к автономному вождению. Не настолько давненько представители компании  продемонстрировали, будто работает их технология, и предложили вывести взаправдашний автомобиль на настоящую дорогу и научить его… самостоятельному вождению за 20 минут.
Девало в том, что большинство самоуправляемых автомобилей использует набор камер и датчиков, а также инструменты для составления карт и компьютерного программирования. Однако подобный подход, по их мнению, упирается в потолок. Автономные автомобили, запрограммированные таковскими бражками, будто Google, добились точки, когда они важнецки, однако недостаточно важнецки для повсеместного использования. Это связано с тем, что автомобили доколе недостаточно умны, чтобы справляться с силом обстоятельств, существующих на обыкновенной стезе. По мнению ученых, автомобилю надобен более башковитый компьютер, а не необычные датчики или программирование.

Команда Wayve считает, что более благоразумный подход заключается в использовании алгоритмов обучения с подкреплением, вроде того, что задействует DeepMind — позволить компьютеру обучаться подобно людам, на практике. Алгоритмы обучения с подкреплением лежат в основе сетей абсолютного обучения — они обучаются, повторяя и повторяя задачу, с всяким разом улучшая собственный результат. В случае автономного управления транспортным оружием это означало бы вождение автомобиля до тех пор, доколе он не научится делать это верно.

Чтобы продемонстрировать, как важнецки мог бы сработать подобный подход, команда Wayve оснастила Renault Twizy одной камерой, управлением газом, тормозом и рулем, и подключила его к графическому процессору и компьютеру с алгоритмами обучения с подкреплением. Компьютеру «сказали», что оптимальным итогом будет автомобиль, какой передвигается по стезе, не покидая дорогу. Чем длиннее он это делает, тем важнее. Затем они добавили водителя и примостили автомобиль на проселочную дорогу.

Компьютер научил автомобиль ехать, не съезжая с стези, за 20 минут.

Самостоятельное вождение автомобилей с использованием Deep Learning

Дата публикации Sep 4, 2018

Самостоятельное вождение автомобиля, без сомнения, станет стандартным способом передвижения в будущем. Крупные компании, от Uber и Google до Toyota и General Motors, готовы потратить миллионы долларов, чтобы сделать их реальностью, так как прогнозируется, что будущий рынок будет стоить триллионы. В последние годы мы наблюдали огромную эволюцию в этой области, когда у автомобилей Uber, Tesla, Waymo было в общей сложности 8 миллионов миль.

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

https://www.technologyreview.com/s/609674/whats-driving-autonomous-vehicles/

Существует 5 основных шагов для формирования самодвижущегося конвейера в следующем порядке:

  1. локализация
  2. восприятие
  3. прогнозирование
  4. планирование
  5. контроль

Локализация — это в основном то, как автономный автомобиль точно знает, где он находится в мире. На этом этапе они получают данные от всех вышеупомянутых датчиков (слияние датчиков) и используют технику, называемую фильтрами Калмана, чтобы найти их положение с максимально возможной точностью.Фильтр Калманаявляется вероятностным методом, использующим измерения во времени для оценки состояния положения объекта. Другой широко используемый методфильтры для частиц,

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

На этапе прогнозирования автомобили прогнозируют поведение каждого объекта (транспортного средства или человека) в их окружении. Как они будут двигаться, в каком направлении, с какой скоростью, по какой траектории они будут следовать. Один из наиболее распространенных режимов, используемых здесь, — это рекуррентная нейронная сеть, так как она может извлечь уроки из прошлого поведения и прогнозировать будущее.

Планирование пути самоочевидно. Это место, где этот автомобиль планирует маршрут или, другими словами, формирует свою траекторию. Это достигается с помощью алгоритмов поиска (например,A *), Решетчатое планирование и усиленное обучение.

Наконец, инженеры управления берут это отсюда. Они используют траекторию, сгенерированную на предыдущем шаге, чтобы соответственно изменить рулевое управление, ускорение и обороты автомобиля. Самый распространенный методPIDКонтроль, но есть несколько других, таких какЛинейный квадратичный регулятор (LQR)а такжеМодель прогнозного контроля (ПДК)

Кстати, если вы хотите узнать больше, попробуйте два замечательных курса, предлагаемых Udacity бесплатно:

Ну, я думаю, что пришло время построить автономную машину самостоятельно. Хорошо, не все это. Но мы можем использовать симулятор вождения и записывать то, что видит камера. Затем мы можем передать эти кадры в нейронную сеть, и, надеюсь, автомобиль сможет научиться ездить самостоятельно. Посмотрим…

Мы будем использовать открытый исходный код UdacityАвтономный автосимулятор, Для его использования необходимо установить игровой движок Unity. Теперь самое интересное:

Само собой разумеется, что я трачу около часа на запись кадров. Это была серьезная работа, ребята. Я не дурачился.

Так или иначе, теперь симулятор произвел 1551 кадр с 3 разных углов, а также записал угол поворота руля, скорость, дроссель и разрыв для каждого из 517 состояний.

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

После этого мы построим нашу модель, которая имеет 5 сверточных, один выпадающий и 4 плотных слоя.

Сеть выдаст только одно значение — угол поворота.

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

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

Далее мы должны убедиться, что обрезали и изменили размеры изображений, чтобы они вписывались в нашу сеть.

Тренировочное время:

Теперь у нас есть обученная модель. Это по сути клонировало наше вождение. Посмотрим, как мы это сделали. Для этого нам нужен простой сервер (сервер socketio), который отправляет прогноз модели на симулятор в режиме реального времени. Я не буду вдаваться в подробности о серверных вещах. Важно то, что мы предсказываем угол поворота рулевого колеса, используя кадры и журналы, сгенерированные симулятором в режиме реального времени.

И результат:

Неплохо. Совсем неплохо.

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

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

Главное, что будущее здесь. И это захватывающе …

Если у вас есть какие-либо мысли, комментарии, вопросы или вы просто хотите быть в курсе моего последнего контента, не стесняйтесь связаться со мной поLinkedin,щебет,Instagram,Githubили на моемВеб-сайт,


Первоначально опубликовано наsergioskar. github.io4 сентября 2018 г.

Оригинальная статья

Как можно научиться автономному вождению? Эта карта навыков говорит вам

С августа 2015 года по настоящее время на GitHub (https://github.com) было запущено около 50 карт навыков в области искусственного интеллекта, разработки интерфейса, мобильной разработки, облачных вычислений, архитектуры, эксплуатации и обслуживания, безопасности, тестирования и других ИТ-технологий (https://github.com). / TeamStuQ / skill-map), помогите разработчикам и инженерам разобраться в структуре структуры знаний и постараться дать рекомендации по пути и необходимые ресурсы для облегчения обучения и роста технических специалистов.

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

Это также причина, по которой Geek State Technology и команда Baidu Apollo совместно выпустили «Карту навыков инженеров-автопилотов Apollo». Надеемся, что Apollo будет развивать свои исследовательские и опытно-конструкторские разработки, технологические преимущества, понимание отрасли в области автономного вождения, а также основные возможности и технологии Apollo. Рамки, выполняющие сортировку и осадки, для разработчиков и инженеров, которые хотят углубиться в области автономного вождения, представляют панорамный вид автономных навыков вождения.

Сжатие изображений в WeChat приведет к неоднозначности. Признайте следующий QR-код, обратите внимание на открытый номер сообщества разработчиков Apollo и ответьте на четыре слова «карта навыков» в диалоговом окне, чтобы получить электронную версию высокой четкости.

(Ключевые слова ответа в области комментариев статьи не могут быть получены!)

Десять вопросов и десять ответов

Почему эта карта навыков стоит вашей коллекции, даже распечатана и повешена в офисе или на столе? Мы приглашаем планировщиков этой карты навыков — команду проповедника Аполлона и техническую команду ответить.

Вопрос 1: Зачем планировать такую ​​карту умений?

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

Вопрос 2: Для кого предназначена эта карта умений? Какие цели могут помочь ученикам достичь?

Главным образом для двух групп людей, они оба хотят научиться автономному вождению, будь то студенты или партнеры в экосистеме Apollo. Одна категория — это разработчики и инженеры, которые разбираются в инструментах разработки и освоении языка, они могут дополнить машинное обучение и знания, связанные с транспортным средством, с помощью этой карты навыков, а другая категория — практиков машинного обучения, которые могут использовать эту карту навыков. Глубокое понимание различных модулей автономного вождения, поскольку различия между различными модулями Apollo велики, даже для внутренних инженеров Baidu, эта карта навыков имеет справочное значение.

Вопрос 3: Какие учебные модули включены в эту карту навыков? Каковы правила для создания и разделения модуля?

Эта карта навыков включает в себя два модуля: первый — базовый уровень, который является общим языком и методом программирования, который Apollo будет использовать для разработки, а второй — уровень Apollo, который включает в себя открытое восприятие Apollo, планирование решений, интеллектуальное управление и сквозной контроль. Основные возможности автономного вождения, такие как End, включают также знания и навыки, связанные с оборудованием, такие как GPS, радар, датчики и транспортные средства.

Вопрос 4: Как была спланирована эта карта навыков?

На этапе планирования, в соответствии с четырьмя измерениями модели, алгоритма, аппаратных средств и базовых знаний, связанных с транспортным средством, в различных формах, таких как вопросники и личные чаты, соберите профессиональную обратную связь от почти 30 технических экспертов в 7 или 8 группах в Baidu, а затем следуйте обратной связи в соответствии с В настоящее время базовый слой и слой Apollo отсортированы и классифицированы.

После многих обзоров я наконец встретился с вами.

Вопрос 5: Для разработчиков в области автономного вождения, какую часть их способности к обучению необходимо укрепить?

Большинство разработчиков автономного вождения обладают сильной «мягкой силой» и относительно слабой способностью к обучению на аппаратном уровне, особенно способность к программированию микросхем на основе GPU или FPGA продолжает расти.

Вопрос 6: Каковы основные проблемы для разработчиков, изучающих Apollo?

Самая большая проблема — запустить Аполлона, что мне делать дальше? Поэтому Apollo откроет множество инструментов для отладки, рисования и устранения неполадок в версии 2.0;

Другая проблема — это аппаратное обеспечение. Если разработчик покупает устройство для отладки, это затруднительно без поддержки официального персонала. Поэтому Apollo отправляет адаптированное аппаратное устройство на GitHub, чтобы открытое устройство было доступно на GitHub. Готовые примеры разработчики могут использовать после внесения изменений.

Вопрос 7: Есть большой разрыв в спросе на автономные таланты вождения?

очень большой. В настоящее время автомобильная промышленность Китая достигла 3,6 миллиона человек, но технический персонал составляет менее 500 000 человек, что составляет менее 15%. Хотя трудно определить количество автономных талантов вождения, это, конечно, не так уж много, чтобы представить. А из годового оклада миллионов и десятков миллионов автономных специалистов по вождению вы можете узнать, сколько талантов мало.

Вопрос 8: Какие таланты больше всего нужны Аполлону?

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

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

Вопрос 9: Какие еще пути обучения существуют для разработчиков автономного вождения?

Разработчики могут начать с создания демо-среды Apollo, чтобы изучить навыки работы с модулями, связанными с Apollo. В комментариях к коду Аполлона инженеры Baidu перечислили справочные материалы, соответствующие модели, включая справочники или документы, которые также являются ярлыком для обучения. Если Apollo2.0 добавляет новый контроллер MPC, соответствующий исходный файл содержит рекомендации по соответствующим данным для модели элемента управления: https://github.com/ApolloAuto/apollo/blob/master/modules/control/controller/mpc_controller.h:

/** * @class MPCController * * @brief LQR-Based lateral controller, to compute steering target. * For more details, please refer to "Vehicle dynamics and control. " * Rajamani, Rajesh. Springer Science & Business Media, 2011. */

Вопрос 10: Студенты, которые уже получили карту навыков, на какие улучшения они надеются после версии 2.0?

  • Может иметь более подробные таблицы знаний и навыков по каждой отрасли, включая рекомендации по хорошим учебным ресурсам;

  • Ожидается, что последующая версия может значительно снизить стоимость беспилотных транспортных средств и добиться массового производства;

  • Надеюсь предоставить продвинутую карту возможностей;

  • Надеюсь уточнить точки знаний и определить информацию об интерфейсе программного, аппаратного обеспечения и алгоритмов.

Первая партия пользователей оценивает карту умений

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

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

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

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

Укажите следующий QR-код, обратите внимание на публичный номер сообщества разработчиков Apollo и ответьте на «карту навыков» в поле ввода, чтобы получить электронную версию высокой четкости.

(Ключевые слова ответа в области комментариев статьи не могут быть получены!)

Сравнение глубокого и машинного обучения — Azure Machine Learning

  • Статья
  • Чтение занимает 8 мин
Были ли сведения на этой странице полезными?

Оцените свои впечатления

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

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

Рекомендации по выбору алгоритмов для конкретных решений см. на странице Памятка по алгоритмам Машинного обучения.

Глубокое обучение, машинное обучение и искусственный интеллект

Рассмотрим следующие определения для понимания глубокого обучения в сравнении с машинным обучением и искусственным интеллектом.

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

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

    1. Передача данные в алгоритм. (На этом шаге можно передать в модель дополнительные сведения, например, путем получения дополнительных данных).
    2. Эти данные используются для обучения модели.
    3. Тестирование и развертывание модели.
    4. Использование развернутой модели для автоматизированного решения задачи на основе прогнозирования. (Иными словами, вызовите и используйте развернутую модель для получения прогнозов, возвращаемых моделью).
  • Искусственный интеллект (ИИ) — это методика, которая позволяет компьютерам имитировать человеческий интеллект. Сюда же относится и машинное обучение.

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

Методы глубокого обучения и машинного обучения

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

В следующей таблице приведено более подробное сравнение этих двух методов.

Все машинное обучениеТолько глубокое обучение
Количество точек данныхДля создания прогнозов можно использовать небольшие объемы данных.Необходимо использовать большие объемы обучающих данных для создания прогнозов.
Зависимость от оборудованияМожет работать на маломощных компьютерах. Не требуются крупные вычислительные мощности.Зависит от высокопроизводительных компьютеров. При этом компьютер, по сути, выполняет большое количество операций перемножения матрицы. Графический процессор может эффективно оптимизировать эти операции.
Процесс конструирования признаковТребует точного определения признаков и их создания пользователями.Распознает признаки высокого уровня на основе данных и самостоятельно создает новые признаки.
Подход к обучениюПроцесс обучения разбивается на мелкие шаги. Затем результаты выполнения каждого шага объединяются в единый блок выходных данных.Задача решается методом сквозного анализа.
Время выполненияОбучение занимает сравнительно мало времени — от нескольких секунд до нескольких часов.Как правило, процесс обучения занимает много времени, поскольку алгоритм глубокого обучения включает много уровней.
Выходные данныеВыходными данными обычно является числовое значение, например оценка или классификация.Выходные данные могут иметь несколько форматов, например текст, оценка или звук.

Что собой представляет передача обучения?

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

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

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

Узнайте, как применить перенос обучения для классификации изображений с помощью платформы с открытым кодом в Машинном обучении Azure. Проведите обучение модели PyTorch глубокого обучения при помощью переноса обучения.

Варианты использования машинного обучения

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

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

Распознавание именованных сущностей

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

Обнаружение объектов

Глубокое обучение зачастую применяется для обнаружения объектов. Обнаружение объектов состоит из двух частей: классификация изображения и его локализация. Классификация изображений распознает изображения объектов (например, автомобилей или людей). Локализация изображений дает конкретное местоположение этих объектов.

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

Создание заголовка изображения

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

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

Машинный перевод

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

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

Текстовая аналитика

Анализ текста, основанный на методах глубокого обучения, подразумевает анализ больших объемов текстовых данных (например, медицинских документов или денежных чеков), распознавание закономерностей и получение упорядоченной и систематизированной информации.

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

Искусственные нейронные сети

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

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

Нейронная сеть с передачей по очереди

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

Рекуррентная нейронная сеть (RNN)

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

Сверточные нейронные сети (CNN)

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

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

Генеративно-состязательная сеть (GAN)

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

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

Преобразователи

Преобразователи — это архитектура модели, которая подходит для решения проблем, содержащих такие последовательности, как текст или данные временных рядов. Они состоят из слоев кодировщика и декодера. Кодировщик принимает входные данные и сопоставляет их с числовым представлением, содержащим определенные сведения, например контекст. Декодер использует информацию из кодировщика для получения выходных данных, например переведенного текста. Преобразователи отличаются от других архитектур, содержащих кодировщики и декодеры, своими вложенными слоями внимания. Внимание: метод концентрации на конкретных частях входных данных на основе важности их контекста относительно других входных данных в последовательности. Например, при суммировании новостных статей не все предложения важны для описания основной идеи. Если сосредоточиться на ключевых словах в статье, формирование сводных данных может быть сделано в одном предложении — в заголовке.

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

Вот некоторые известные примеры реализации преобразователей:

  • Двунаправленные представления кодировщика из преобразователей (BERT)
  • Генеративный предварительно обученный трансформатор 2 (GPT-2)
  • Генеративный предварительно обученный трансформатор 3 (GPT-3)

Следующие шаги

В следующих статьях приведены дополнительные варианты использования моделей глубокого обучения с открытым кодом в Машинном обучении Azure.

ᐈ Уроки Вождения на Механике Для Начинающих в Киеве Декабрь 2021

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

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

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

Что такое Google TensorFlow? Примеры и учебники с открытым исходным кодом

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

TensorFlow — это проект Google, основанный на машинном обучении и нейронных сетях. Давайте выясним, что это такое, как его использовать и как научиться его использовать.

Что такое TensorFlow?

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

во многих отношениях, чем вы думаете.

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

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

Пока что так абстрактно. Что вы можете сделать с нейронной сетью? Оказывается, почти все!

Известные примеры TensorFlow

Классификация изображений

Многие учебники для начинающих машинного обучения

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

Чтобы увидеть этот процесс в действии, взгляните на 5-минутный классификатор Дарта Вейдера Сираджа Равала.

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

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

Глубокая передача стиля фотографий

Изображение предоставлено: luanfujun @ github.com

Помимо классификации изображений, TensorFlow можно использовать для динамического изменения изображений. Deep Photo Style Transfer была создана группой из Корнельского университета. Проект берет входное изображение и изображение стиля перед применением этого стиля к исходному изображению — с потрясающими результатами.

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

Пурпурный AI Музыка

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

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

Пурпурный также может использоваться как интеллектуальный секвенсор сам по себе. Возможность использования сторонних библиотек является одной из многих фантастических функций CodePen. Теро Парвиайнен использовал библиотеку magenta. js для создания своей красивой ручки Latent Cycles.

Установив нейронные сети, созданные импровизированными петлями, рядом друг с другом, Latent Cycles позволяет любому создавать уникальные и красивые звуки без предварительного музыкального знания.

Как научиться TensorFlow

Машинное обучение — невероятно плотный предмет. Хорошее понимание статистики, математики, программирования и общей науки о данных — все это имеет ключевое значение для понимания. Тем не менее, TensorFlow позволяет легко получить практический опыт, даже будучи новичком. Официальный учебник TensorFlow использует пошаговый подход к настройке и использованию.

Большинство проектов TensorFlow используют язык программирования Python. Если вы плохо знакомы с языком, есть множество отличных мест для изучения Python. Если вы уже более знакомы с JavaScript, у TensorFlow есть обучающие видео, посвященные библиотеке TensorFlow.js.

Эти учебные пособия наряду с бесплатным курсом машинного обучения Google

, являются бесценным ресурсом, от поставщиков библиотеки.

Другие учебники по TensorFlow

Для быстрого и информативного ознакомления с TensorFlow и классификаторами изображений Сирадж Равал предлагает информативное (и запоминающееся) 5-минутное введение.

Это одно из многих видео на канале Сираджа на YouTube, посвященное теме машинного обучения. Между суперскоростными видео, подобными этому, и длинными живыми трансляциями с пошаговым подходом, это отличное место для изучения TensorFlow и машинного обучения на Python.

Ориентируясь на JavaScript и Tensorflow.js, Coding Train предлагает еще один полномасштабный подход:

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

Начинающий проект: обнаружение живых объектов

Этот проект использует распознавание живых объектов для управления автоматическим сортировщиком отходов. Аппаратное обеспечение представляется альтернативой Raspberry Pi, хотя теоретически можно использовать любой микроконтроллер. Настоящая работа выполняется с использованием смеси OpenCV и TensorFlow.

К проекту из видео не прилагается учебник. В превосходной статье Dat Tran об OpenCV и TensorFlow используются одни и те же библиотеки, которые четко объясняют каждый элемент. В качестве простой мелкомасштабной идеи, использующей библиотеку TensorFlow, проект такого масштаба является идеальным способом для начала работы.

Идем дальше с машинным обучением

TensorFlow — невероятно мощный инструмент, возможно, самой важной интернет-компании. Решение сделать его открытым исходным кодом было большим делом, поскольку оно открывает его для всех нас.

Тем не менее, машинное обучение является невероятно плотным предметом. Стоит потратить некоторое время на онлайн-курсы машинного обучения

максимально эффективно использовать TensorFlow.

Глубокое обучение для самоуправляемых автомобилей | автор: Manajit Pal

Использование исследований Nvidia для создания CNN для автономного вождения в Pytorch

Большое спасибо Valohai за использование моего ржавого учебника в качестве введения в их потрясающую платформу машинного обучения 😍. Я предлагаю вам всем ознакомиться с их примером обучения сети в облаке с полным контролем версий с помощью платформы машинного обучения Valohai (www.valohai.com).

Все мы знаем, что беспилотные автомобили — одна из самых популярных областей исследований и бизнеса для технологических гигантов.То, что несколько лет назад казалось научной фантастикой, теперь больше похоже на то, что скоро станет неотъемлемой частью жизни. Причина, по которой я говорю «скоро будет», заключается в том, что, хотя такие компании, как Tesla, Nissan, Cadillac, действительно имеют программное обеспечение для помощи при самостоятельном управлении автомобилем, им по-прежнему требуется, чтобы человек следил за дорогой и возьмите под свой контроль, когда это необходимо. Однако интересно наблюдать, как далеко мы продвинулись в плане инноваций и насколько быстро развиваются технологии.Настолько, что теперь, с помощью базового глубокого обучения и магии нейронных сетей, мы можем построить собственный конвейер для автономного вождения! Взволнованный? Я уверен, что я! Тогда давайте перейдем к делу…

Предварительные требования:
1. Эта статья предполагает базовое понимание сверточных нейронных сетей и их работы.
2. Код, упомянутый здесь, написан на Python с использованием среды Pytorch, поэтому рекомендуется базовое знание языка и среды.

Если все вышесказанное кажется вам тарабарщиной, не паникуйте! Этот бесплатный курс от Udacity даст вам все, что вам нужно знать об основах глубокого обучения и Pytorch.

Моя биография
Я начал свое путешествие по глубокому обучению с одной из стипендиальных программ Udacity, спонсируемой Facebook, с помощью которой я изучил основы Pytorch из курса, упомянутого выше. Одновременно я был зачислен в программу Udacity Self-Driving Car Engineer Nanodegree, спонсируемую KPIT, где в качестве одного из моих проектов мне пришлось разработать модель сквозного глубокого обучения для беспилотного автомобиля в Керасе. Поэтому я решил переписать код в Pytorch и поделиться тем, что я узнал в этом процессе.Ладно, хватит разговоров, давайте настроим нашу машину на все, помня об одном — скажи НЕТ переобучению!

Ресурсы для проекта
1. Симулятор беспилотного автомобиля Udacity
2. Конечно, Python и Pytorch Framework
3. Если ваша машина не поддерживает GPU, я бы порекомендовал использовать Google Colab для обучения вашей сети. . Он предоставляет часы GPU и TPU бесплатно!
4. Если вы столкнулись с проблемами при сборе данных для обучения, вы можете использовать данные, предоставленные Udacity, для обучения вашей сети.
5. Полный код доступен здесь, а записная книжка Colab — здесь.
6. Исследовательский документ Nvidia, упомянутый в этой статье, можно найти здесь.

Сбор данных
Набор данных, предоставленный Udacity, работает хорошо, но этого недостаточно для того, чтобы автомобиль двигался по сложной местности (например, второй трек в симуляторе Udacity). Чтобы собрать данные из трека 2, нам сначала нужно создать папку в каталоге нашего проекта. Назовем эту папку — данные .Теперь запустим наш симулятор. Выберите в меню вторую дорожку и перейдите к опции тренировочного режима .

Главное меню симулятора

Как только вы войдете в режим тренировки, вы увидите опцию записи в правом верхнем углу экрана. Щелкните значок и перейдите к папке data . Нажмите «Выбрать».

Переход к папке с данными

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

Захват обучающих данных

Обучающие данные теперь хранятся в папке data . Внутри одна папка и один файл: IMG, и driving_log.CSV . Наша следующая задача — прочитать из файла CSV имена изображений и связанные с ними данные управления и загрузить соответствующее изображение из папки IMG в Python.

ВРЕМЯ КОДИРОВАТЬ!

Было бы лучше работать с Colab, если вы предпочитаете не брать на себя головную боль по установке различных библиотек и фреймворков на свой локальный компьютер, а также если вы хотите воспользоваться бесплатными часами графического процессора. Кроме того, если вы предпочитаете не собирать данные, вы можете импортировать набор данных Udacity с помощью ! Wget URL и разархивировать файл с помощью ! Unzip . Перво-наперво. Импорт заголовков:

Чтение и разделение данных

Приведенный выше код считывает все из файла журнала и сохраняет его в массиве sample . Следующая строка (считыватель, Нет) удаляет первую строку, содержащую имена столбцов. Мы будем использовать этот массив, чтобы разделить наши данные на обучение и проверку. Один из хороших методов из того, что я узнал, — использовать 20–30% обучающих данных в качестве набора для проверки, чтобы сравнить потери при проверке и обучении, чтобы мы могли избежать переобучения.Давайте сделаем это:

Загрузка изображений в Dataloader
Теперь, когда мы сделали образцы, пришло время прочитать изображения и дополнить их. Это важный шаг, поскольку он поможет обобщить нашу модель. Но этот процесс требует больших вычислительных ресурсов и времени даже для графических процессоров. Уловка состоит в том, чтобы распараллелить этот процесс, собирая данные партиями, дополняя их и отправляя в модель для обучения. Керас достигает этого процесса с помощью python генераторов и функции fit_generator .В Pytorch для этого мы будем использовать класс Dataset и функцию Dataloader .
Чтобы реализовать это, нам пришлось бы перегрузить несколько функций класса, а именно функции __getitem__ , __len__ и __init__ . Нам также нужно будет определить некоторые дополнительные процессы. Я закодировал базовую функцию, которая будет брать изображение, случайным образом обрезать его и переворачивать по горизонтали вместе с отрицанием данных рулевого управления.Обрезка, в основном, помогает модели сосредоточиться только на дороге, убирая небо и другие отвлекающие элементы на изображении, а также выполняется зеркальное отображение, чтобы изображения были обобщены для левых и правых поворотов, по существу, удерживая автомобиль в центре. дороги. Другие методы могут заключаться в добавлении случайной яркости для имитации различной продолжительности дня, наложении на изображение слоя искажений и шума для имитации дождя, добавлении случайных теней на дороге и т. Д. Но пока мы просто будем придерживаться основ.

Затем мы определяем класс Dataloader и передаем эту функцию дополнения к выборкам входного пакета, объединяем данные управления и изображения и возвращаем их.

Обратите внимание, что есть также аргумент с именем преобразование . Наше преобразование нормализует значения массива изображений до диапазона 0–1 с помощью лямбда-функции . Затем мы используем функцию Dataloader , чтобы добавить все в генератор, который будет вызываться пакетно во время обучения.Мы определяем размер пакета 32 и перемешиваем их при передаче DataLoader . num_workers определяет, сколько рабочих будет создавать пакеты параллельно для обработки.

Архитектура модели
Пришло время построить нашу модель. Давайте внимательно посмотрим на исследовательский документ Nvidia. Идите вперед и откройте его в новой вкладке. Ссылка находится в разделе ресурсов выше.

Если вы прокрутите вниз до страницы 5 pdf, вы увидите архитектуру CNN, которую они построили.

Ладно, ленивец, это образ, о котором я говорю 😝. Если вы посмотрите на числа, вы увидите глубину сверточных слоев, а также входные и выходные характеристики полносвязных слоев. Теперь в каждой карте функций есть упомянутые ядра. Как упоминалось в документе, ребята из Nvidia использовали изображения YUV в качестве входных данных и использовали чередующиеся свертки в первых трех сверточных слоях с шагом 2 × 2 и ядром 5 × 5, а также несимметричную свертку с размером ядра 3 × 3 в последние два сверточных слоя.Интересно, однако, что никакого упоминания о слое maxpool не было. Я старался неукоснительно следовать вышеупомянутой архитектуре и строить CNN. Вот что я придумал:

К сожалению, с этим подходом что-то не так. Может быть, это была нехватка данных или, может быть, отсутствие слоев maxpool, сеть работала ужасно. Автомобиль всегда дрейфовал по бездорожью, даже по прямой дороге. После некоторого поиска в Google я наткнулся на это репо. Модель используется здесь как упрощенная версия архитектуры Nvidia.Я попробовал, и это сработало отлично, когда тренировалось с достаточным количеством эпох. Итак, окончательная архитектура для меня была такой:

Однако вы можете попробовать первую модель со слоями maxpool. Это потребует некоторых расчетов для заполнения, а также для высоты и ширины вывода. Давайте рассмотрим здесь несколько вещей:
a) nn.Module Класс nn.Module используется в Pytorch для создания CNN. Нам нужно перегрузить функции __init __ () и forward () для построения сети.Я использовал nn.Sequential () , чтобы избежать дублирования кода. Все, что находится в функции nn.Sequential () , последовательно применяется ко входу. Довольно аккуратно, а?
а) активация элюента —
Здесь используется функция активации элю (экспоненциальная линейная единица). В отличие от relu (выпрямленного линейного блока), elu ускоряет процесс обучения, а также решает проблему исчезающего градиента. Более подробную информацию и уравнение функции элюирования можно найти здесь.
b) Сглаживание изображения — Сглаживание вывода сверточных слоев перед переходом к полносвязным слоям выполняется с помощью строки: output.вид (output.size (0), -1) .

Оптимизатор и критерий
Двигаясь дальше, в документе также обсуждается использование потерь среднеквадратичной ошибки в качестве критерия и оптимизатора Адама. Давайте закодируем это! Я установил скорость обучения 0,0001. Вы можете отрегулировать его соответствующим образом.

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

Pytorch и CUDA
Pytorch обеспечивает простую интеграцию с графическими процессорами с поддержкой CUDA (извините, AMD). Это делается с помощью простой функции device () . Он может значительно ускорить процесс обучения, примерно в 10 раз быстрее, чем обычный процессор. Почему бы не воспользоваться этим? Для этого нам нужно передать наши данные и модель на графический процессор для обработки. Это действительно проще, чем кажется. Мы определяем функцию, которая будет делать это для всех входных данных, которые она получает.

Обратите внимание, что я преобразовал его в float () , чтобы модель могла вычислять входные данные.

Обучение
Пора тренировать наш шедевр! Сначала мы передаем модель в графический процессор, а затем используем генератор для передачи наших данных, а также данных в графический процессор.Затем мы устанавливаем оптимизатор, чтобы он не накапливал градиенты во время обратного распространения, используя функцию optimizer.zero_grad () . Наконец, мы вычисляем общую потерю поезда и делим ее на размер пакета, чтобы получить среднюю потерю обучения за эпоху. Довольно просто.

Проверка
То же самое для проверки, но на этот раз мы убедимся, что наша модель находится в режиме оценки, чтобы мы не обновляли градиенты по ошибке и не распространяли ошибки. Мы используем модель .eval () , чтобы изменить режим и убедиться, что модель не отслеживает, мы используем torch.set_grad_enabled (False) . Убыток рассчитывается аналогично.

Сохранение модели
Последний шаг кода здесь! После завершения обучения мы сохраняем модель, чтобы использовать ее для автономного вождения автомобиля в нашем симуляторе. Мы создаем словарь состояний и сохраняем модель в формате .h5 , используя torch.save () .

Веселье начинается
И последнее, прежде чем мы начнем тестирование нашей модели, нам нужен файл, который загрузит нашу модель, получит кадры трека из симулятора для обработки через нашу модель и отправит прогноз рулевого управления обратно в симулятор. Не бойся! Я создал файл drive.py , который в основном является версией Pytorch файла drive.py от Udacity, который я использовал в своем проекте. Вы можете просмотреть код и поэкспериментировать с ним, если вам нужен другой дроссель и т. Д. А пока давайте скопируем и вставим содержимое приведенного ниже кода.

Также нам понадобится файл model.py , который будет содержать архитектуру модели. Создайте файл и вставьте свою сетевую архитектуру. Если у вас возникнут какие-либо проблемы, не стесняйтесь взглянуть на мою модель .py в репо.

Загрузите файл model.h5 в тот же каталог, если вы использовали Google Colab для написания кода. Запустите терминал, cd в свой каталог и запустите сценарий с нашей моделью:

 python drive.py model.h5 

Если на вашем компьютере установлены две разные версии python, используйте python3 вместо python . Нажмите «Разрешить», когда увидите всплывающие окна.

Снова откройте симулятор и выберите автономный режим .Машина должна ехать сама по себе, как хозяин!

Вот и все! Ваш собственный конвейер для беспилотных автомобилей. Как это круто! 😁

Вот небольшая демонстрация того, что вы могли ожидать:

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

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

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

Хотите обучить упрощенный беспилотный автомобиль с помощью обучения с подкреплением? | Роман Лисснер

Фото NeONBRAND на Unsplash

Здесь я представляю исследование с Яном Доменом и Кристофом Фрибелем.

В последние годы наблюдается всплеск практических успехов в использовании обучения с подкреплением (RL) [1] для решения сложных игр и небольших проблем предметной области [2] [3] [4]. Эти успехи в RL были частично достигнуты благодаря активным совместным усилиям сообщества RL по работе над общими симуляторами среды с открытым исходным кодом, такими как OpenAI’s Gym [5], которые позволяют ускорить разработку и достоверные сравнения между различными, текущими проектами. -искусственные стратегии.

Однако многие существующие среды содержат игры, а не реальные проблемы. Только недавние публикации инициируют переход к прикладному RL [6] [7]. В этой статье мы стремимся объединить мотивированные RL из реального мира с легким доступом к очень актуальной проблеме: продольному управлению автономным транспортным средством. За автономным вождением будущее, но до тех пор, пока автономные транспортные средства самостоятельно не найдут свое место в стохастическом реальном мире, предстоит решить множество проблем.

Прежде чем мы более подробно рассмотрим среду Longicontrol, мы кратко опишем основы RL ниже. Если вы знакомы с RL, смело переходите к разделу Продольный контроль.

Обучение с подкреплением (RL) — это прямой подход к обучению на основе взаимодействия с окружающей средой для достижения поставленной цели. В этом контексте учащийся и лицо, принимающее решение, называется агентом, а часть, с которой он взаимодействует, называется средой. Взаимодействие осуществляется в непрерывной форме, так что агент выбирает действия на каждом временном шаге t , среда реагирует на них и представляет новые ситуации агенту в форме состояния Sₜ₊₁ . В ответ на обратную связь агента среда возвращает вознаграждение Rₜ₊₁ в виде числового скалярного значения. Агент стремится к максимальному увеличению вознаграждения с течением времени [1].

Рис. 1: Взаимодействие с обучением с подкреплением [1]

После представления идеи RL следует краткое объяснение некоторых терминов.Для более подробного ознакомления, пожалуйста, обратитесь к [1].

Политика. Политика — это то, что характеризует поведение агентов. Более формально политика — это отображение состояний на действия.

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

Разведка и разработка. Основной проблемой в обучении с подкреплением является баланс исследования и эксплуатации. Чтобы получить высокие награды, агент должен выбирать действия, которые в прошлом оказались особенно полезными. Чтобы обнаружить такие действия в первую очередь, необходимо протестировать новые действия. Это означает, что агент должен использовать уже полученные знания, чтобы получить вознаграждение, и в то же время исследовать другие действия, чтобы иметь лучшую стратегию в будущем [1].

Q-Learning. Многие популярные алгоритмы обучения с подкреплением основаны на прямом изучении значений Q. Один из самых простых — Q-Learning. Правила обновления следующие:

Q соответствует ожидаемому будущему доходу при выборе действия a в состоянии s и следовании политике из него. Награда за взаимодействие обозначается как r. Адаптация Q-функции контролируется скоростью обучения и коэффициентом дисконтирования. Политика подразумевается в Q-Value:

Deep Deterministic Policy Gradient (DDPG). Для поиска оптимального действия требуется эффективная оценка Q-функции. Хотя это просто для дискретных и небольших пространств действий (вычисляются все действия и выбираются те, для которых выбрано наибольшее значение), проблема становится неразрешимой, если пространство действий является непрерывным. Однако во многих приложениях, таких как робототехника и управление энергопотреблением, дискретизация нежелательна, поскольку они отрицательно влияют на качество решения и в то же время требуют большого количества памяти и вычислительной мощности в случае точной дискретизации. .Lillicrap et al. [8] представили алгоритм под названием DDPG, который может решать непрерывные задачи с помощью глубокого обучения с подкреплением. В отличие от Q-Learning, здесь используется архитектура «актер-критик». Подробное описание можно найти в [8].

В области продольного управления цель состоит в том, чтобы транспортное средство завершило однополосный маршрут за заданное время с максимальной энергоэффективностью, не вызывая аварий. Таким образом, это соответствует минимизации общей энергии E , используемой в интервале от t₀ до T , в зависимости от мощности P:

В соответствии с внешними требованиями, такими как другие участники дорожного движения или ограничения скорости , одновременно должны выполняться следующие граничные условия:

Где v — скорость, a — ускорение, а a_dot — рывок, где () ₗᵢₘ, ₘᵢₙ и () ₗᵢₘ, ₘₐₓ представляют нижнюю и верхние пределы соответственно.

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

Рис. 2: Примерное решение данного маршрута с использованием динамического программирования [9]

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

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

Рис. 3: Визуализация LongiControl

Среда состоит из двух частей. Автомобиль и среда вождения. В первую очередь следует сосредоточить внимание на транспортном средстве.

Движение автомобиля упрощено, равномерно ускорено смоделировано.Моделирование основано на дискретизации по времени t = 0,1 с. Текущая скорость vₜ и положение xₜ вычисляются следующим образом:

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

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

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

Состояние состоит из пяти частей:

  • Скорость
  • Предыдущее ускорение
  • Текущее ограничение скорости
  • Будущее ограничение скорости
  • Будущее ограничение скорости расстояние

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

Агент выбирает действие в диапазоне значений [-1,1]. Таким образом, агент может выбирать между максимальным и минимальным ускорением автомобиля в зависимости от состояния. Этот тип моделирования приводит к тому, что агент может выбирать только допустимые действия.

Функция вознаграждения определяет обратную связь, которую получает агент для каждого действия, и является единственным способом контролировать поведение агента.Это один из самых важных и сложных компонентов среды RL. Это особенно сложно в представленной здесь среде, потому что это не может быть просто представлено скалярным числом. Если бы только потребление энергии было вознаграждено (наказано), автомобиль просто остановился бы. Агент узнает, что с точки зрения энергопотребления эффективнее всего просто не садиться за руль. Хотя это правда, и мы все должны чаще использовать наши велосипеды, мы все же хотим, чтобы агент ездил в нашей среде. Итак, нам нужно вознаграждение, которое сделает вождение более привлекательным для агента. При сравнении различных подходов разница между текущей скоростью и текущим ограничением скорости оказалась особенно подходящей. Минимизируя разницу, агент автоматически приходит в движение. Чтобы по-прежнему учитывать потребление энергии, компонент вознаграждения поддерживается за счет потребления энергии. Третий компонент вознаграждения вызван рывком. Это связано с тем, что наш автономный автомобиль также должен уметь комфортно управлять.Чтобы окончательно наказать и за нарушение скоростного режима, добавлена ​​четвертая часть вознаграждения.

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

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

Рис. 4: Начало процесса обучения

В первом примере мы видим действия агента в начале обучения. И да, вы правильно понимаете, агент не двигается. Итак, мы позволили ему немного потренироваться:

Рис. 5: После некоторого прогресса в обучении

После некоторого прогресса он начинает водить машину, но игнорирует ограничения скорости.Это нежелательно. Поэтому мы позволяем ему тренироваться еще дольше:

Рис. 6: После более длительной процедуры обучения

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

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

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

Пример вознаграждения 1. Если применяется только вознаграждение за движение — отклонение от разрешенной скорости: агент нарушает ограничения скорости.

Рис. 7: Взвешивание вознаграждения [1,0,0,0]

Пример вознаграждения 2. Во втором примере добавляется штраф за превышение скоростного режима. Это приводит к тому, что агент фактически поддерживает ограничения.

Рис. 8: Взвешивание вознаграждения [1,0,0,1]

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

Рис. 9: Взвешивание вознаграждения [1,0.5,1,1]

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

В конце статьи мы подытожим наиболее важные моменты.

Посредством предлагаемой среды RL, адаптированной к стандартизации OpenAI Gym, мы показываем, что легко создавать прототипы и реализовывать современные алгоритмы RL. Кроме того, среда LongiControl подходит для различных обследований. Помимо сравнения алгоритмов RL и оценки алгоритмов безопасности, также возможны исследования в области многоцелевого обучения с подкреплением.Дальнейшие возможные цели исследования — это сравнение с алгоритмами планирования для известных маршрутов, исследование влияния неопределенностей модели и рассмотрение очень долгосрочных целей, таких как прибытие в определенное время.

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

Здесь ссылка на GitHub, документ и мой профиль в LinkedIn

Приятного использования😉

[1] R.Саттон и А. Барто, Введение в обучение с подкреплением (1988), MIT Press

[2] В. Мних и К. Кавукчуоглу, Д. Сильвер, А. Грейвс и И. Антоноглу, Д. Виерстра и М. А. Ридмиллер, Игра в Atari с глубоким обучением с подкреплением (2013), CoRR

[3] Д. Сильвер, Дж. Шриттвизер и К. Симонян К. и И. Антоноглоу, А. Хуанг, А. Гез, Т. Хуберт, Л. Бейкер и М. Лай. и А. Болтон и др., Освоение игры го без человеческого знания (2017), Nature

[4] R.Liessner, C. Schroer, A. Dietermann и B. Bäker, Deep Reinforcement Learning for Advanced Energy Management of Hybrid Electric Vehicles (2018), ICAART

[5] Г. Брокман, В. Чунг, Л. Петтерссон и Дж. Шнайдер и Дж. Шульман, Дж. Тан и В. Заремба, OpenAI Gym. CoRR, 2016.

[6] М. Андрыхович, Б. Бейкер, М. Хоцей, Р. Йозефович и др., Изучение ловких манипуляций руками. CoRR, 2018.

[7] Ф. Рихтер, Р. К. Ороско, М. К. Йип, Среды обучения с подкреплением с открытым исходным кодом для хирургической робототехники, CoRR, 2019.

[8] Т.П. Лилликрэп и др., Непрерывный контроль с глубоким обучением с подкреплением (2015), CoRR

[9] С. Убель, Эйне им Гибридфахрзейг einsetzbare Энергетическая стратегия управления эффективностью Längsführung (2018), TU

Дрезден

. AI осваивает автономное вождение с помощью глубокого обучения

Среди всех стартапов, занимающихся автономным вождением, которые стремятся к автономности уровня 4 (система самоуправления, не требующая вмешательства человека в большинстве сценариев), Маунтин-Вью, Калифорния.Масштабируемый подход к глубокому обучению на основе Drive.ai и агрессивный темп делают его уникальным. По словам Самипа Тандона, соучредителя и генерального директора, Drive рассматривает глубокое обучение как единственный жизнеспособный способ в ближайшем будущем создать по-настоящему полезный автономный автомобиль. «Если вы посмотрите на долгосрочные возможности этих алгоритмов и на то, как люди собираются строить [самоуправляемые автомобили] в будущем, то наличие системы обучения имеет наибольший смысл. Вождение так сложно, так много нюансов и сложных вещей, что, если вам придется делать это неизученными способами, вы никогда не получите эти машины.”

Прошло всего год с тех пор, как Drive стала публичной, но уже сейчас у компании есть парк из четырех транспортных средств, которые (в основном) автономно перемещаются по району залива Сан-Франциско — даже в ситуациях (например, темнота, дождь или град), которые являются заведомо сложный для беспилотных автомобилей. В прошлом месяце мы поехали в Калифорнию, чтобы прокатиться на одной из машин Drive и узнать, как она использует глубокое обучение для освоения автономного вождения.

Как следует из названия, Drive.ai был создан для этого. Он был основан в 2015 году экспертами по глубокому обучению из Лаборатории искусственного интеллекта Стэнфордского университета. С самого начала структурируя свой подход к автономному вождению исключительно на основе глубокого обучения, Drive смогла быстро и гибко масштабироваться, чтобы безопасно справляться с бесчисленными ситуациями вождения, с которыми автономные автомобили должны справляться.

«Я думаю, что впервые к автономному вождению так серьезно подошли с точки зрения глубокого обучения», — говорит Тандон.«Это контрастирует с традиционным подходом к робототехнике, — продолжает Кэрол Рейли, соучредитель и президент. «Многие компании просто используют глубокое обучение для того или иного компонента, в то время как мы рассматриваем его более комплексно», — говорит Рейли.

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

В то время как пешеход на изображении камеры — это паттерн восприятия, существуют также паттерны в принятии решений и планировании движения — правильное поведение при остановке с четырех сторон или при повороте направо на красный, чтобы назвать два примера, — которые можно использовать с помощью глубокого обучения. применяться.Но именно здесь большинство производителей беспилотных автомобилей проводят черту. Почему? По словам Рейли и Тандон, это разновидность изменчивых, зависящих от ситуации решений, для принятия которых алгоритмы глубокого обучения лучше подходят, чем традиционный подход, основанный на правилах, с которым они чувствуют себя более комфортно. Хотя «человеческое» распознавание образов глубокого обучения ведет к более тонкому поведению, чем вы можете ожидать от системы, основанной на правилах, иногда это может вызвать у вас проблемы.

Черный ящик

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

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

Есть несколько уловок, которые можно использовать, чтобы немного заглянуть в черный ящик, а затем проверить (или скорректировать) то, что происходит внутри него, говорят исследователи Drive. Например, вы можете вводить очень конкретные данные, такие как изображение с камеры, где почти все затемнено, кроме того, что вы хотите запросить, а затем посмотреть, как ваш алгоритм реагирует на несколько разные варианты этой вещи.Моделирование также может быть очень полезным инструментом при работе с конкретными ситуациями, в которых алгоритм испытывает трудности, как объясняет Тандон:

Когда мы только начали работать над системами восприятия глубокого обучения, одной из проблем, с которыми мы столкнулись, были переходы. Мы выходили и ехали, и тень от эстакады заставляла систему регистрировать ложное срабатывание препятствия. В процессе обучения вы можете сосредоточить алгоритм на сложных сценариях в процессе, называемом жестким интеллектуальным анализом.Затем мы дополняем набор данных синтетическими примерами, и с этим вы говорите: «Привет, система, скажи мне, что ты собираешься делать на этой эстакаде, и тогда я немного подергиваю». , и ты собираешься сделать это снова ». Со временем система начинает обходить эстакады, а затем вы можете проверять это на систематическом уровне.

Обучение системы

Системы глубокого обучения процветают на данных. Чем больше данных видит алгоритм, тем лучше он сможет распознать и обобщить закономерности, которые ему необходимо понять для безопасного вождения.Для автономных автомобилей, которые должны понимать огромное количество различных ситуаций, большинство компаний, занимающихся автономным вождением, по умолчанию используют подход, который заключается в том, чтобы просто собрать как можно больше данных. Таким образом, проблема заключается в том, чтобы управлять данными, а затем делать с ними что-то полезное. Drive.ai учитывает, что не все данные созданы равными. Компания прилагает огромные усилия для сбора высококачественных данных и последующего аннотирования их, чтобы они были полезны для обучения алгоритмов глубокого обучения.

Прежде чем автомобили смогут управлять собой, необходимо выполнить кропотливую задачу аннотирования объектов в каждой сцене, которую захватывают датчики беспилотного автомобиля. Эти данные используются для алгоритмов глубокого обучения или алгоритмов, основанных на правилах. Изображение: Drive.ai

Аннотация, хотя и очень проста, но также очень утомительна: человеку-аннотатору предоставляется набор данных, возможно, короткий видеоклип или даже всего несколько кадров видео или данных лидара, и ему задают задачу рисовать и маркировать коробки вокруг каждой машины, пешеход, дорожный знак, светофор или что-либо еще, что может иметь отношение к алгоритму автономного вождения. «Мы узнали, что у некоторых компаний есть большая армия людей, пишущих аннотации, — говорит Рейли. — Тысячи людей наклеивают ярлыки на коробки. На каждый час работы требуется около 800 человеко-часов для маркировки. Все эти команды будут бороться. Мы уже на порядок быстрее, и мы постоянно оптимизируемся ».

Как такое возможно? Drive придумал, как использовать автоматизацию с глубоким обучением для аннотирования данных. Итак, у него есть небольшая группа людей-аннотаторов, большинство из которых заняты обучением совершенно новым сценариям или проверкой аннотации, которую система делает сама.«Есть несколько сценариев, в которых наша система глубокого обучения работает очень хорошо, и нам просто нужен этап проверки», — объясняет Тандон. «И есть несколько сценариев, в которых мы улучшаем алгоритм, и нам нужно правильно его настроить, поэтому у нас есть команда людей-аннотаторов, которые делают первую итерацию, и мы итеративно улучшаем систему глубокого обучения. Уже во многих случаях наши системы глубокого обучения работают лучше, чем наши эксперты-аннотаторы ». Рейли добавляет: «Подумайте, насколько это потрясающе.”

Группе Drive сложно сформулировать, что именно мешает другим компаниям создавать собственную инфраструктуру и инструменты глубокого обучения и делать такие же аннотации и обучение на основе глубокого обучения. «Мы довольно часто говорим об этом: что может помешать кому-то другому делать именно то, что делаем мы?» — говорит Тандон. «Честно говоря, проблема состоит из множества частей. Это такая интегрированная система; существует так много компонентов, которые нужно правильно использовать во всем стеке, что становится трудно сказать, есть ли одна конкретная причина, по которой это работает хорошо.”

Рейли соглашается: «Ваши решения должны основываться на программном обеспечении и быть оптимизированными для глубокого обучения, интеграции программного и аппаратного обеспечения. Все сосредотачиваются только на части алгоритма, но у нас есть и другие приложения, которые все должны объединить. Автономное вождение — это гораздо больше, чем просто алгоритм — это очень сложная аппаратно-программная проблема, которую никто раньше не решал ».

Датчики под дождем

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

Благодаря набору из девяти камер HD, двух радаров и шести лидарных датчиков Velodyne Puck каждый из автомобилей Drive непрерывно собирает данные для создания карты, для ввода в алгоритмы глубокого обучения и, конечно же, для самой задачи вождения.Датчик тока сложен и дорог, но, как объясняет соучредитель Drive Джоэл Пажаямпаллил, его почти наверняка слишком много, и он будет сокращен, когда Drive перейдет в пилотные программы. «Я думаю, что нам понадобится значительно меньшее подмножество, возможно, половина того, что у нас есть сейчас, если это так», — говорит Пажаямпаллил. «Наши алгоритмы постоянно улучшаются. Мы постоянно получаем все больше и больше от каждого отдельного датчика, комбинируя данные с разных датчиков вместе. Мы получаем данные о глубине с низким разрешением с лидара и контекстную информацию с действительно высоким разрешением с камеры.”

Такой вид мультимодального резервирования и принятия решений посредством глубокого обучения на основе объединенных данных датчиков имеет преимущества в контексте автономных транспортных средств. А именно, он предлагает некоторую защиту от отказа сенсора, поскольку алгоритмы глубокого обучения могут быть обучены явно на данных восприятия с отсутствующими модальностями сенсора. Глубокое обучение имеет здесь значительное преимущество перед подходами, основанными на правилах, поскольку конфликты правил могут привести к сбоям, которые, по словам Пажаямпаллила, могут быть «катастрофическими». «Причем неисправность датчика чаще всего связана не с аппаратным или программным обеспечением, а скорее с датчиком, который по какой-то причине не дает точных данных, например, солнечные блики, темнота ночью или (что чаще) закрытие водой.

Причина, по которой вождение под дождем является проблемой для автономных автомобилей, заключается не только в том, что вода поглощает энергию лидара или поверхности становятся отражающими. На видео выше сложно сказать, но Драйв показал нам кадры с камер на крыше автомобиля, на линзах которых были большие капли воды, что делало их практически бесполезными.«Если вы ведете машину в более сложных и сложных ситуациях, вам нужно уметь справляться с отказами камеры, лидара, радара, всего, что происходит в реальном мире», — говорит Тандон.

В дороге

Мы совершили демонстрационную поездку с Тори Смит, техническим менеджером программы Drive. К сожалению, нам удалось пропустить всю ужасную погоду, которая была в Калифорнии за последний месяц, и мы уехали в такой сухой и солнечный (но не слишком солнечный) день, который любят автономные автомобили. Drive нацелен на автономность 4-го уровня.Но, в соответствии с действующим законодательством, компания тестирует свои автомобили на уровне автономности 2. На уровне 2 водитель-человек должен находиться на месте водителя, готовый взять на себя управление в любой момент, хотя ожидается, что автомобиль будет выполнять большую часть (если не все) управление самостоятельно. Пока мы со Смитом говорили о том, что делает машина, Лейлани Абенохар, один из операторов беспилотных автомобилей Drive.ai, не отвлекалась от дороги.

20-минутная поездка по заранее нанесенной на карту территории в пригороде Маунтин-Вью, Калифорния., с 16 перекрестками и остановкой для четырех сторон. В целом машина ехала плавно и грамотно, но была менее напористой, чем мог бы быть средний водитель-человек. Это сделано намеренно, говорит Смит: «Мы должны проектировать с учетом приемлемого диапазона характеристик, и очень трудно иметь автомобиль, который будет напористым, но [не переступает черту] так напористым, что наши гости или водители будут чувствовать себя некомфортно. Мы всегда работаем с особой осторожностью и всегда предпочитаем, чтобы вам было скучно, чем неудобно.”

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

Нас остановили на светофоре, ожидая поворота направо на главную дорогу. Правый поворот на красный разрешен в Калифорнии, но Drive обычно не пытается сделать их автономно из-за ограничений датчиков, объясняет Смит. «Наши лидарные датчики могут надежно видеть только от 50 до 75 метров, и на такой дороге, где у вас может быть перекрестное движение со скоростью 45 или 50 миль в час [72 или 80 км / ч], вы еще не можете с достаточной с уверенностью обнаруживать перекрестное движение и точно знать, по какой полосе он будет двигаться ». Когда загорелся зеленый свет, автомобиль повернул на крайнюю правую полосу (что по закону должно быть сделано для поворота направо).Но на обочине дороги был остановлен грузовик, блокирующий эту полосу, поэтому наш водитель безопасности ненадолго взял на себя управление, объехал грузовик, а затем снова включил автономную систему.

«Номинально мы бы подождали, пока грузовик уедет с дороги», — сказал мне Смит. «С точки зрения планирования пути, когда транспортное средство компенсирует препятствия на лету, это место, где мы в настоящее время наращиваем возможности». Однако эта ситуация — больше, чем просто проблема планирования пути: дождаться движения грузовика — правильный выбор, если грузовик активен.Если это не так, вам стоит обойтись. Поставьте себя на место автомобиля: как узнать, может ли остановившийся грузовик снова двинуться с места? Возможно, вы сможете определить, работает ли двигатель, или заметить мигание индикаторов, или определить активность вокруг грузовика. Это все, что человек может сделать почти сразу (и в значительной степени подсознательно), но автономное транспортное средство должно быть четко обучено тому, что искать и как реагировать.

«Люди не обязательно совершенны в выполнении очень точных вещей, — говорит Смит, — но они отлично умеют импровизировать и справляться с двусмысленностью, и именно здесь традиционный подход робототехники терпит неудачу, когда у вас возникают неоднозначные ситуации, подобные той. мы только что видели.При разработке системы в среде глубокого обучения хорошо то, что когда вы сталкиваетесь с подобными сложными ситуациями, нам просто нужно собрать данные, аннотировать данные, а затем встроить этот модуль в наш мозг глубокого обучения, чтобы позволить системе быть в состоянии компенсировать это в будущем. Это гораздо более интуитивный способ решения подобной проблемы, чем подход, основанный на правилах, когда вам нужно заранее предвидеть все, что может когда-либо случиться ».

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

Человекоподобное вождение

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

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

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

Вне света

Хорошо это или плохо, но способность Drive поддерживать агрессивное движение к уровню 4 автономности (автомобили, которые работают в определенных областях и условиях без водителя), вероятно, будет зависеть в краткосрочной перспективе от государственных и федеральных нормативных актов.Но Самип Тандон, по крайней мере, очень оптимистично смотрит на траекторию развития автономной технологии Drive. «В этом году мы находимся в процессе проведения пилотных проектов с некоторыми из наших клиентов. В следующие шесть месяцев мы надеемся развернуть это — не в больших масштабах, но, по крайней мере, для того, чтобы им могло пользоваться больше людей. Я считаю, что в гео-огражденных областях у нас может быть решение без водителя безопасности, работающего в ближайшие год или два. В конечном итоге вопрос будет заключаться в том, как быстро мы сможем перейти от Залива к следующему городу, а затем и к следующему.”

План

Drive состоит в том, чтобы изначально сосредоточиться на логистике: компаниях, которые постоянно доставляют товары на небольшие территории, в отличие от чего-то вроде совместного использования. Это дает Drive хорошо ограниченную проблему, а также плавный путь расширения и позволяет избежать необходимости иметь дело с пассажирами-людьми, по крайней мере, на начальном этапе. Помимо этого, Тандон с воодушевлением смотрит в будущее: «Я думаю, что если у вас будет сочетание действительно хорошей стратегии и действительно хороших технологий, это может быть одним из первых применений роботов в реальном мире. Для меня это очень захватывающе; Я хотел бы видеть роботов повсюду, и беспилотные автомобили, вероятно, будут первым, с чем будут взаимодействовать обычные люди ».

Алгоритмы машинного обучения, используемые в самоуправляемых автомобилях

Саварам Равиндра, Tekslate.com .

Сегодня алгоритмы машинного обучения широко используются для поиска решений различных проблем, возникающих при производстве беспилотных автомобилей. Благодаря включению обработки данных датчиков в ECU (электронный блок управления) в автомобиле, важно расширить использование машинного обучения для выполнения новых задач.Возможные приложения включают оценку состояния водителя или классификацию сценариев вождения путем объединения данных от различных внешних и внутренних датчиков, таких как лидары, радары, камеры или IoT (Интернет вещей).

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

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

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

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

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

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

  • Обнаружение объекта
  • Идентификация объекта или классификация объекта распознавания
  • Локализация объекта и прогнозирование движения

Алгоритмы машинного обучения условно делятся на 4 класса: алгоритмы матрицы решений, кластерные алгоритмы, алгоритмы распознавания образов и алгоритмы регрессии. Одна категория алгоритмов машинного обучения может использоваться для выполнения 2 или более подзадач. Например, алгоритмы регрессии могут использоваться для локализации объекта, а также для обнаружения объекта или прогнозирования движения.

Матричные алгоритмы принятия решений

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

AdaBoosting

Adaptive Boosting или AdaBoost — это комбинация нескольких алгоритмов обучения, которые можно использовать для регрессии или классификации.Он преодолевает переоснащение по сравнению с любыми другими алгоритмами машинного обучения и часто чувствителен к выбросам и зашумленным данным. Чтобы создать одного сложного мощного обучаемого, AdaBoost использует несколько итераций. Итак, это называется адаптивным. Итеративно добавляя слабых учеников, AdaBoost создает сильных учеников. К объекту добавляется новый слабый ученик, и вектор взвешивания корректируется, чтобы обратить внимание на примеры, которые были неправильно классифицированы в предыдущих раундах. В результате получается классификатор, который имеет гораздо более высокую точность, чем классификаторы слабых учеников.

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

Алгоритмы кластеризации

Иногда изображения, получаемые системой, нечеткие, и становится трудно найти и обнаружить объекты. Иногда существует вероятность того, что алгоритмы классификации упускают объект, и в этом случае они не могут классифицировать и сообщить об этом системе. Возможной причиной могут быть прерывистые данные, очень мало точек данных или изображения с низким разрешением.Алгоритм кластеризации специализируется на обнаружении структуры по точкам данных. Он описывает класс методов и класс проблемы, такой как регрессия. Методы кластеризации обычно организуются путем моделирования таких подходов, как иерархический и центроидный. Все методы связаны с использованием внутренних структур данных для идеальной организации данных в группы с максимальной общностью. K-средство, мультиклассовая нейронная сеть — наиболее часто используемый алгоритм.

К-средства

K-средних — это известный алгоритм кластеризации.K-means хранит k центроидов, которые он использует для определения кластеров. Говорят, что точка находится в определенном кластере, если она ближе к центроиду этого кластера, чем любой другой центроид. Путем чередования выбора центроидов в зависимости от текущего назначения точек данных кластерам и назначения точек данных кластерам в зависимости от текущих центроидов.

Алгоритм K-средних — Центроиды кластера изображены крестиками, а обучающие примеры — точками.(а) Исходный набор данных. (б) Случайные начальные центроиды кластера. (c-f) Демонстрация выполнения двух итераций k-средних. Каждому обучающему примеру на каждой итерации назначается ближайший центроид кластера, а затем каждый центроид кластера перемещается к среднему значению назначенных ему точек.

Алгоритмы распознавания образов (классификация)

Изображения, полученные с помощью датчиков в Advanced Driver Assistance Systems (ADAS), состоят из всех видов данных об окружающей среде; фильтрация изображений необходима для определения экземпляров категории объекта путем исключения нерелевантных точек данных.Перед классификацией объектов важным шагом в наборе данных является распознавание образов. Этот вид алгоритмов определяется как алгоритмы сокращения данных.

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

С PCA (анализ основных компонентов) и HOG (гистограммы ориентированных градиентов) SVM (машины опорных векторов) являются обычно используемыми алгоритмами распознавания в ADAS. Также используются K ближайшего соседа (KNN) и правило принятия решения Байеса.

Машины опорных векторов (SVM)

SVM зависят от концепции плоскостей решений, которые определяют границы решений.Плоскость принятия решений разделяет набор объектов, состоящий из различных принадлежностей к классам. Схематический пример проиллюстрирован ниже. В этом случае объекты принадлежат классу КРАСНЫЙ или ЗЕЛЕНЫЙ. Граница раздела разделяет КРАСНЫЙ и ЗЕЛЕНЫЙ объекты. Любой новый объект, который падает слева, помечается КРАСНЫМ, и он помечается ЗЕЛЕНЫМ, если он падает налево.

Алгоритмы регрессии

Этот вид алгоритма хорош для предсказания событий. Регрессионный анализ оценивает взаимосвязь между 2 или более переменными и сопоставляет эффекты переменных на разных шкалах и основывается в основном на 3 показателях:

  • Форма линии регрессии.
  • Тип зависимых переменных.
  • Количество независимых переменных.

Изображения (камера или радар) играют важную роль в ADAS в срабатывании и локализации, в то время как для любого алгоритма самой большой проблемой является разработка модели на основе изображений для выбора и прогнозирования характеристик.

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

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

Регрессия нейронной сети

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

На приведенном выше рисунке «x» — это входные данные, переданные с предыдущего уровня сети.В каждый узел последнего скрытого слоя будет подано много x, и каждый x будет умножен на w, соответствующий вес. К сожалению, сумма продуктов складывается и перемещается в функцию активации. Функция активации — это ReLU (выпрямленный линейный блок), обычно используемый, поскольку он не насыщается на мелких градиентах, как это делают функции активации сигмовидной формы. ReLU обеспечивает вывод, активацию для каждого скрытого узла, и активации добавляются в выходной узел, который передает сумму активаций.Это означает, что нейронная сеть, выполняющая регрессию, содержит единственный выходной узел, и этот узел умножит сумму активаций предыдущего уровня на 1. Результатом будет оценка сети «y hat». «Y hat» — это зависимая переменная, которой сопоставляются все x. Вы можете использовать нейронную сеть таким образом, чтобы получить функцию, связывающую x (количество независимых переменных) с y (зависимая переменная), которую вы пытаетесь предсказать.

Оригинальный пост. Размещено с разрешения.

Биография: Саварам Равиндра (Savaram Ravindra) — автор контента в Tekslate.com, а ранее был программистом-аналитиком в Cognizant Technology Solutions. Он имеет степень магистра нанотехнологий Университета ВИТ. С ним можно связаться по телефону [адрес электронной почты]

.

Связанный:

Что такое самоуправляемые автомобили и как они работают?

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

Компании, разрабатывающие и / или тестирующие автономные автомобили, включают Audi, BMW, Ford, Google, General Motors, Tesla, Volkswagen и Volvo. В испытании Google участвовал парк беспилотных автомобилей, в том числе Toyota Prii и Audi TT, которые проехали более 140000 миль по улицам и шоссе Калифорнии.

Как работают беспилотные автомобили

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

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

Например, проект Google по созданию беспилотных автомобилей под названием Waymo использует сочетание датчиков, лидара (технология обнаружения и определения расстояния — технология, аналогичная RADAR) и камер, а также объединяет все данные, которые эти системы генерируют для идентификации всего вокруг. транспортного средства и предсказать, что эти объекты могут сделать дальше. Это происходит за доли секунды. Для этих систем важна зрелость. Чем больше система управляет, тем больше данных она может включить в свои алгоритмы глубокого обучения, что позволит ей принимать более тонкие решения.

Ниже показано, как работают автомобили Google Waymo:

  • Водитель (или пассажир) устанавливает пункт назначения. Программа автомобиля рассчитывает маршрут.
  • Вращающийся датчик лидара, установленный на крыше, контролирует расстояние до 60 метров вокруг автомобиля и создает динамическую трехмерную (3D) карту текущего окружения автомобиля.
  • Датчик на левом заднем колесе отслеживает движение вбок, чтобы определить положение автомобиля относительно 3D-карты.
  • Радиолокационные системы в переднем и заднем бамперах рассчитывают расстояние до препятствий.
  • Программное обеспечение
  • AI в автомобиле подключено ко всем датчикам и собирает данные с Google Street View и видеокамер внутри автомобиля.
  • AI имитирует процессы восприятия человека и принятия решений с помощью глубокого обучения и управляет действиями в системах управления водителем, такими как рулевое управление и тормоза.
  • Программное обеспечение автомобиля обращается к Google Maps для предварительного уведомления о таких вещах, как ориентиры, дорожные знаки и огни.
  • Доступна функция блокировки, позволяющая человеку взять под контроль автомобиль.

Автомобили с функцией автономного вождения

Проект Google Waymo — это пример беспилотного автомобиля, который почти полностью автономен. Он по-прежнему требует присутствия человека-водителя, но только для обхода системы, когда это необходимо. Это не самоуправление в прямом смысле слова, но он может ездить самостоятельно в идеальных условиях. Обладает высокой степенью автономности. Многие автомобили, доступные сегодня потребителям, имеют более низкий уровень автономности, но все же имеют некоторые функции автономного вождения. Функции автономного вождения, доступные во многих серийных автомобилях с 2019 года, включают следующее:

  • Рулевое управление без помощи рук центрирует автомобиль без рук водителя на руле. Водителю все равно нужно обращать внимание.
  • Адаптивный круиз-контроль (ACC) до остановки автоматически поддерживает выбираемое расстояние между автомобилем водителя и автомобилем впереди.
  • Рулевое управление с центрированием полосы движения вмешивается, когда водитель пересекает разметку полосы движения, автоматически подталкивая автомобиль к разметке противоположной полосы.

Уровни автономности беспилотных автомобилей

Национальное управление безопасности дорожного движения США (NHTSA) устанавливает шесть уровней автоматизации, начиная с Уровня 0, на котором люди управляют автомобилем, с помощью технологий помощи водителю и заканчивая полностью автономными автомобилями. Вот пять уровней, которые следуют за уровнем автоматизации 0:

  • Уровень 1 : Расширенная система помощи водителю (ADAS) помогает водителю-человеку управлять рулем, торможением или ускорением, но не одновременно.ADAS включает в себя камеры заднего вида и такие функции, как предупреждение о вибрации сиденья для предупреждения водителей, когда они покидают полосу движения.
  • Уровень 2 : ADAS, который может одновременно управлять рулем и тормозить или ускоряться, в то время как водитель остается полностью осведомленным за рулем и продолжает действовать как водитель.
  • Уровень 3 : Автоматизированная система вождения (ADS) может выполнять все задачи вождения при определенных обстоятельствах, например, при парковке автомобиля.В этих обстоятельствах водитель-человек должен быть готов вернуть себе управление и по-прежнему должен быть основным водителем транспортного средства.
  • Уровень 4 : ADS может выполнять все задачи вождения и контролировать среду вождения в определенных обстоятельствах. В этих условиях ADS достаточно надежен, и водителю-человеку не нужно обращать на него внимания.
  • Уровень 5 : ADS транспортного средства действует как виртуальный шофер и полностью управляет автомобилем при любых обстоятельствах.Люди, находящиеся в них, являются пассажирами, и от них никогда не ожидается, что они будут управлять транспортным средством.
Автоматизация — от нулевой автоматизации до полностью автономной.

Использует

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

Например, компания Google Waymo в партнерстве с Lyft предложила полностью автономный коммерческий сервис совместного использования пассажиров под названием Waymo One. Водители могут поймать беспилотный автомобиль, чтобы доставить их к месту назначения и предоставить обратную связь Waymo. В автомобилях по-прежнему есть водитель безопасности на случай, если ADS нужно будет заблокировать. С конца 2019 года услуга доступна только в районе Метро Феникс, но планируется расширить ее до городов Флориды и Калифорнии.

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

Прогнозы производителей различаются в зависимости от того, когда автомобили уровня 4 и 5 станут широко доступными. Ford и Volvo планируют выпустить в 2021 году автомобиль уровня 4 для общественного потребления. Генеральный директор Tesla Илон Маск, пионер как беспилотных, так и электрических автомобилей, заявил, что его компания будет иметь автомобили 5-го уровня, готовые уже к 2020 году. Успешный автомобиль 5-го уровня должен также уметь реагировать на новые дорожные ситуации или лучше, чем может человек.

Плюсы и минусы беспилотных автомобилей

Главное преимущество, которое пропагандируют сторонники автономных транспортных средств, — это безопасность.Согласно статистическому прогнозу ДТП на 2017 год Министерства транспорта США (DOT) и NHTSA, в дорожно-транспортных происшествиях в этом году погибло 37 150 человек. По оценкам NHTSA, 94% серьезных аварий происходят из-за человеческой ошибки или неправильного выбора, например, вождения в нетрезвом виде или отвлеченного внимания. Автономные автомобили исключают эти факторы риска из уравнения, хотя беспилотные автомобили по-прежнему уязвимы для других факторов, таких как механические проблемы, которые вызывают аварии.

Если автономные автомобили могут значительно снизить количество аварий, экономические выгоды могут быть огромными.По данным НАБДД, травмы влияют на экономическую активность, включая 57,6 млрд долларов в виде потери производительности на рабочем месте и 594 млрд долларов из-за гибели людей и снижения качества жизни из-за травм.

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

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

Автономные грузовики

были протестированы в США и Европе, чтобы позволить водителям использовать автопилот на больших расстояниях, позволяя водителю отдыхать или выполнять задачи, а также повышая безопасность водителя и топливную экономичность. Эта инициатива, получившая название « грузовой взвод », основана на ACC, системах предотвращения столкновений и связи между транспортными средствами для кооперативного ACC (CACC).

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

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

Беспилотный автомобиль Безопасность и проблемы

Автономные автомобили должны научиться распознавать бесчисленные объекты на пути транспортного средства, от веток и мусора до животных и людей. Другие проблемы на дороге — это туннели, которые мешают работе Глобальной системы позиционирования (GPS), строительные проекты, которые вызывают смену полосы движения или сложные решения, например, где остановиться, чтобы пропустить машины экстренных служб.

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

Эта проблема проявилась в аварии со смертельным исходом в марте 2018 года, в которой участвовал автономный автомобиль, которым управляет Uber. Компания сообщила, что программное обеспечение транспортного средства идентифицировало пешехода, но сочло это ложным срабатыванием и не смогло свернуть, чтобы не сбить ее. Эта авария заставила Toyota временно прекратить испытания беспилотных автомобилей на дорогах общего пользования, но испытания будут продолжены в другом месте. Исследовательский институт Toyota строит испытательный центр на участке площадью 60 акров в Мичигане для дальнейшего развития технологий автоматизированных транспортных средств.

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

Автопроизводители подчиняются Федеральным стандартам безопасности транспортных средств (FMVSS), и Национальное управление безопасности дорожного движения (NHTSA) сообщило, что необходимо провести дополнительную работу, чтобы автомобили соответствовали этим стандартам.

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

История беспилотных автомобилей

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

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

Полностью автоматизированные транспортные средства еще не общедоступны и, возможно, не появятся в течение многих лет. В США NHTSA обеспечивает федеральное руководство по внедрению ADS на дороги общего пользования, а по мере развития технологий автономных автомобилей — руководство департамента.

Беспилотные автомобили еще не разрешены на большинстве дорог. В июне 2011 года Невада стала первой юрисдикцией в мире, разрешившей испытывать беспилотные автомобили на дорогах общего пользования; За эти годы последовали Калифорния, Флорида, Огайо и Вашингтон, округ Колумбия.

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

В поисках универсального машинного обучения: на примере самоуправляемых машин с искусственным интеллектом

Лэнс Элиот, инсайдер AI Trends

Когда мои дети были в детсадовском возрасте, я рассказал им о млекопитающем, известном как утконос. Я словесно описал, что у него мех, лапы перепончатые, как у выдры, он живет в основном в воде, у него хвост бобра, у него морда, как у утки, и вряд ли они заметят его здесь, в Калифорнии. Судя по моему описанию, я уверен, что они сомневались в существовании такого существа на самом деле, поскольку оно выглядело как описательная мешанина других животных, с которыми они были знакомы, и, возможно, я пытался навести на них быстрое нападение (я сказал им ранее про грунион и после многочисленных охотов на грунион, мы еще ни одного не видели!).

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

Умные дети, подумал я.

Приведу еще один пример их гения (гордый отец, уж ты!).

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

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

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

Перенесемся в поездку в местные заснеженные горы, куда мы поедем, чтобы попробовать немного покататься на лыжах (обратите внимание, в самом городе Лос-Анджелес снега нет, поэтому, если вы хотите кататься на лыжах на открытом воздухе, вам нужно ехать. до местных гор, это примерно 2 часа езды; в некоторые дни вы можете заняться серфингом утром на пляже, а затем подняться в горы, чтобы покататься на лыжах днем).

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

Между тем, дети прошептали «волк» и поняли, что это опасное положение.Я был несколько удивлен, что они не сказали «койот», поскольку мы обычно привыкли видеть койотов, и, вероятно, это должно было быть самым близким совпадением с тем, что мы сейчас видим перед собой.

Конечно, они были правы, что это был волк. Мы подождали несколько мгновений, и, к счастью, волк отступил обратно в лес. Я выскочил оттуда вместе с детьми на буксире.

Почему я рассказываю эти две истории?

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

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

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

Когда я говорю «тысячи», могут потребоваться сотни тысяч таких изображений, чтобы попытаться получить надежную возможность сопоставления ML или DL. Это также потребует значительного количества времени компьютерной обработки. Вы также можете просмотреть изображения, чтобы убедиться, что вы загружаете в систему нужные изображения. Если вы кормите утконоса изображениями, на которых также изображены аллигаторы, и если вы не внимательно изучаете ML или DL, это может в конечном итоге математически вызвать в воображении представление о том, что «утконос» может выглядеть как утконос или что-то подобное. аллигатор.

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

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

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

Многие примеры тренируют современные системы DL или ML

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

Предположим, вместо этого вы можете показать DL или ML пример, основанный только на одной картинке.Представьте, как легко было бы обучить DL или ML. Вот изображение волка. Только с помощью этого изображения было бы здорово, если бы DL или ML затем, по сути, закончили обучение. Благодаря однократному обучению вы избежали необходимости собирать тысячи примеров и справляться со всеми другими проблемами, связанными с обучением.

Может быть, у вас даже нет фотографии того, на чем вы пытаетесь тренировать DL или ML. Было бы здорово, если бы вы могли как-то просто описать, к чему вы хотите иметь шаблон DL или ML, и впредь он мог бы найти это для вас.4 количество категорий объектов, о которых они знают. Основываясь на этих категориях, когда им предоставляют что-то новое, дети, кажется, могут когнитивно моделировать это, даже не имея необходимости видеть тысячи предметов, что бы это ни было.

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

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

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

  • Zero Shot Learning (ZSL) = не используются обучающие образцы как таковые
  • One-Shot Learning (OSL) = один образец используется, чтобы учиться у
  • Few-Shots Learning (FSL) = более одного экземпляра используется для обучения и некоторое количество меньше, чем число, например, может быть, десять экземпляров или дюжина или около того
  • Многократное обучение (MSL) = больше, чем FSL, скажем, от десятков до сотен и тысяч экземпляров
  • Mega-Many Shots Learning (MMSL) = больше, чем MSL, скажем, многие тысячи и, возможно, миллионы экземпляров

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

Если возможно, мы хотели бы минимизировать усилия / затраты для достижения необходимого уровня машинного обучения.

Будет ли всегда возможно найти способ уменьшить количество экземпляров до нулевой (ZSL), 1 (OSL) или нескольких (FSL) категорий обучения выстрелу? Может быть да, может быть нет.

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

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

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

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

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

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

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

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

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

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

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

После обучения мы тестируем ML, скармливая ему несколько изображений собак, на которых он не был обучен. Предположим, ML сообщает, что это фотографии собак.Здорово! Между тем, мы решили добавить несколько фотографий кошек в систему машинного обучения. Сообщается, что это собаки! Что это, кошку принимают за собаку? Глобальный союз кошек будет массово протестовать, поскольку они не хотят, чтобы их ошибочно приняли за собак.

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

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

Есть еще кое-что, что нам нужно учитывать в аспектах машинного обучения, а именно время.

Вы когда-нибудь выполняли одно из заданий «Побег из комнаты»? Вы заходите в запертую комнату, и вам нужно найти выход.В первый раз, когда вы сделаете это, велика вероятность, что вы сначала запутаетесь, что делать. Как ты должен найти выход? Если вы никогда не делали этого раньше, вы можете быть совершенно сбиты с толку относительно того, что делать и с чего даже начать искать выход.

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

В этом случае вы были ограничены во времени, потому что побег из комнаты обычно рассчитан на время, и у вас есть только ограниченное количество времени, чтобы найти улики и выяснить, как сбежать. Есть время, необходимое для того, чтобы на самом деле обнаружить улики, расшифровать их, а затем использовать эти улики для побега. Также есть время, необходимое для того, чтобы «научиться» справляться с пребыванием в квест-комнате и научиться выходить из нее.

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

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

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

Другой фактор — это то, что вы уже знаете, и то, как ваши предыдущие знания влияют на то, что вы пытаетесь изучить заново.

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

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

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

Сиамская нейронная сеть пытается достичь одноразовой цели

Например, сиамская нейронная сеть — это вариант использования нейронных сетей, который пытается справиться с одноразовой целью. Получив свое название от концепции сиамских близнецов, у вас есть две (или более) нейронные сети, которые вы настраиваете и обучаете одинаково. Они близнецы. Затем у вас есть соединяющий элемент, который будет измерять «расстояние» их выходных данных с точки зрения того, считаются ли их выходы достаточно похожими или совершенно разными.

Используя технику попарного сравнения, вы можете использовать сиамскую нейронную сеть для сравнения двух (или более) входных данных и попытаться определить, являются ли они, вероятно, одинаковыми или разными. Допустим, я предоставляю изображение собаки и кошки. Основываясь на числовом векторе, который выводится из каждой из двух нейронных сетей, одна из которых получает изображение собаки, а другая — изображение кошки, средство оценки расстояния до соединения, мы надеемся, укажет на наличие большой числовой разницы между выходными данными, что предполагает наличие кошка не то же самое, что собака.

Другой многообещающий подход включает расширение глубокой нейронной сети с помощью внешней памяти. Эти нейронные сети с расширенной памятью (MANN) используют подключенную внешнюю память как средство, позволяющее избежать различного рода трудностей, связанных с переобучаемыми нейронными сетями. Во время переобучения есть шанс непреднамеренно «забыть» предыдущие аспекты, из которых внешняя память потенциально может восполнить этот недостаток.

Существуют и другие подходы, такие как изучение иерархической байесовской программы (HBPL) и другие виды одноразовых байесовских алгоритмов, которые в настоящее время исследуются.Один из самых популярных наборов данных, используемых при изучении однократного обучения, состоит из использования известного набора данных Omniglot, который состоит из различных рукописных символов и включает попытки распознавания рукописного ввода на редком наборе образцов.

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

Кажется, что у людей есть способность обучаться за один прием. Это не всегда идеально, и люди могут легко выучить «не то» на основе одноразового подхода. Тем не менее, это, по-видимому, важнейшая когнитивная способность, от которой мы, люди, во многом зависим.

См. Мою статью о пластичности и глубоком обучении: https://aitrends.com/ai-insider/plasticity-in-deep-learning-dynamic-adaptations-for-ai-self-driving-cars/

См. Мою статью о спорящих машинах и AI: https: // aitrends.ru / features / ai-aring-machines-and-ai-self-driving-cars /

См. Мою статью об ансамблевом машинном обучении: https://aitrends.com/selfdrivingcars/ensemble-machine-learning-for-ai-self-driving-cars/

См. Мою статью о тестах машинного обучения: https://aitrends.com/selfdrivingcars/machine-learning-benchmarks-and-ai-self-driving-cars/

См. Мою статью о федеративном машинном обучении: https://aitrends.com/selfdrivingcars/federated-machine-learning-for-ai-self-driving-cars/

Какое отношение это имеет к беспилотным автомобилям с искусственным интеллектом?

В Cybernetic AI Self-Driving Car Institute мы разрабатываем программное обеспечение AI для беспилотных автомобилей.Один из аспектов, который мы изучаем, включает использование однократного обучения для беспилотных автомобилей с искусственным интеллектом.

Позвольте мне уточнить.

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

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

Мои общие представления о беспилотных автомобилях с искусственным интеллектом см. В моей статье: https://aitrends.com/selfdrivingcars/framework-ai-self-driving-driverless-cars-big-picture/

Уровни беспилотных автомобилей см. В моей статье: https://aitrends.com/selfdrivingcars/richter-scale-levels-self-driving-cars/

О том, почему беспилотные автомобили с искусственным интеллектом 5 похожи на лунную бомбу, читайте в моей статье: https: // aitrends.com / самоуправляемые автомобили / беспилотный автомобиль-мать-ai-projects-moonshot /

Информацию об опасностях совместного выполнения задачи вождения см. В моей статье: https://aitrends.com/selfdrivingcars/human-back-up-drivers-for-ai-self-driving-cars/

Давайте сосредоточимся на настоящем беспилотном автомобиле 5 уровня. Большая часть комментариев относится и к беспилотным автомобилям уровня ниже 5, но полностью автономный беспилотный автомобиль с искусственным интеллектом получит наибольшее внимание в этом обсуждении.

Вот обычные шаги, связанные с задачей AI вождения:

  • Сбор и интерпретация данных датчиков
  • Слияние датчиков
  • Обновление модели виртуального мира
  • Планирование действий ИИ
  • Выдача команды управления автомобилем

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

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

Для моей статьи о великом сближении, которое привело нас к этому моменту времени, см .: https://aitrends.com/selfdrivingcars/grand-convergence-explains-rise-self-driving-cars/

См. Мою статью об этических дилеммах, стоящих перед беспилотными автомобилями с искусственным интеллектом: https://aitrends.com/selfdrivingcars/ethically-ambiguous-self-driving-cars/

Информацию о потенциальных правилах, касающихся беспилотных автомобилей с искусственным интеллектом, см. В моей статье: https://aitrends.com/selfdrivingcars/assessing-federal-regulations-self-driving-cars-house-bill-passed/

Мои прогнозы относительно беспилотных автомобилей с искусственным интеллектом на 2020-е, 2030-е и 2040-е годы см. В моей статье: https: // aitrends.ru / selfdrivingcars / gen-z-and-the-fate-of-ai-self-driving-cars /

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

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

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

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

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

AI Самоходные автомобили, похожие на человека, спрятанного в джунглях

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

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

Каким-то образом нам нужно, чтобы система ИИ «научилась» находить в этих сенсорных данных аспекты, необходимые для правильного и безопасного вождения автомобиля. Это включает в себя возможность извлекать из огромного количества сенсорных данных элементы, которые важно учитывать. Где впереди улица? Где другие машины? Эти машины едут к беспилотному автомобилю или от него? Могут ли произойти какие-либо потенциальные столкновения? И т. Д.

Для моей статьи о LIDAR см .: https: // www.aitrends.com/selfdrivingcars/lidar-secret-sauce-self-driving-cars/

Для моей статьи о датчиках на беспилотных автомобилях с искусственным интеллектом см .: https://www.aitrends. com/selfdrivingcars/going-blind-sensors-fail-self-driving-cars/

Информацию об опасностях близорукости в отношении датчиков см. В моей статье: https://www.aitrends.com/selfdrivingcars/cyclops-approach-ai-self-driving-cars-myopic/

Для обнаружения уличных сцен см. Мою статью: https://www.aitrends.com/selfdrivingcars/street-scene-free-space-detection-self-driving-cars-road-ahead/

Об обнаружении дорожных знаков см. Мою статью: https: // www.aitrends.com/ai-insider/making-ai-sense-of-road-signs/

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

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

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

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

Я помню, как однажды, когда мои дети были еще водителями-новичками, мы подъехали к довольно необычному дорожному знаку (который я раньше тоже не видел).На дорожном знаке было написано: «Поверните направо, чтобы пойти налево». Что это? Вроде оксюморон. Но на самом деле это имело смысл из-за того, что справа была какая-то собачья лапа, которая изгибалась назад и вокруг частичного кругового перекрестка, что позволяло вам в конечном итоге пойти влево, что в противном случае вы не могли бы напрямую повернуть налево. легально.

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

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

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

Что будет делать беспилотный автомобиль с искусственным интеллектом?

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

Разработчик AI Action Planner мог рискнуть и предположить, что знак не имеет значения для решаемой задачи вождения. Предположим, планировщик действий AI надеялся повернуть налево. Он мог бы сделать то же самое, что и некоторые другие люди, а именно, просто пройти квартал вверх, а затем сделать обычный левый поворот.Таким образом, ИИ повезло, что знак не был чем-то более обременительным, как «Бездна в пяти футах» или что-то в этом роде.

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

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

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

В данном случае это не была ситуация, связанная с жизнью или смертью, но могли возникнуть такие обстоятельства, с которыми может столкнуться ИИ, и для которых отсутствие механизма однократного обучения может привести к осложнениям или даже травмам или смерти. Я понимаю, что некоторые разработчики искусственного интеллекта возражают против моего примера и говорят, что если данные с беспилотного автомобиля передаются в облако автопроизводителя или технической фирмы с использованием электронных коммуникаций OTA (по воздуху), облачная Система могла бы лучше интерпретировать недавно обнаруженный дорожный знак, а затем вернуть в автономный автомобиль AI аспекты того, что делать.

Реально маловероятно, что у OTA было бы достаточно времени для передачи данных, чтобы данные были обработаны где-нибудь в облаке, разработали указание того, что означал знак, а затем вставили патч в самоуправляемый ИИ. машина. Это какая-то магия, которой у нас пока нет.

Конечно, в конечном итоге есть надежда на то, что облачные системы будут собирать тонны данных из парка беспилотных автомобилей с искусственным интеллектом, и что собранные в облаке данные будут проанализированы, а затем будут переданы «знания» о задаче вождения. среди автопарка.Однако это то, что потребует нескольких дней, а может быть, недель, чтобы система проанализировала эти большие объемы данных. Кроме того, есть вероятность, что разработчикам ИИ потребуется быть в курсе в рамках анализа и выяснения того, что имеет смысл добавить в качестве «новых знаний» в бортовой ИИ беспилотных автомобилей в их парке. .

Подробнее об OTA читайте в моей статье: https://www.aitrends.com/selfdrivingcars/air-ota-updating-ai-self-driving-cars/

Подробнее об аспектах робомимикрии и машинного обучения читайте в моей статье: https: // www.aitrends.com/selfdrivingcars/biomimicry-robomimicry-ai-self-driving-cars-machine-learning-nature/

Информацию о поведении, вызванном распространенностью, см. В моей статье: https://www.aitrends.com/ai-insider/prevalence-induced-behavior-and-ai-self-driving-cars/

Для моей статьи о том, как начать все заново на ИИ и беспилотных автомобилях, см: https://www.aitrends.com/selfdrivingcars/starting-over-on-ai-and-self-driving-cars/

О выгорании разработчиков ИИ читайте в моей статье: https://www.aitrends.com/selfdrivingcars/developer-burnout-and-ai-self-driving-cars/

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

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

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

Мы, скорее всего, получим только один экземпляр и не сможем позволить себе роскошь каким-то образом иметь десятки или сотни таких в руках (поблизости не было никаких других указателей «Поверните направо, чтобы повернуть налево», и ни одного, что я когда-либо видел раньше за много километров моей езды).

ИИ нужно будет «учиться», вероятно, без присмотра. Вокруг нет ничего или никого, кто мог бы направить или объяснить ИИ, что означает одноразовый выстрел.

Вы можете предположить, что ИИ может спросить пассажира в беспилотном автомобиле и выяснить, знает ли пассажир, что означает знак. Да, это может быть возможно за счет использования интерфейса обработки естественного языка (NLP) с пассажирами беспилотного автомобиля. Но предположим, что в салоне находятся только маленькие дети, которые не имеют ни малейшего представления о вождении или дорожных знаках.

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

Подробнее о NLP и беспилотных автомобилях читайте в моей статье: https://www.aitrends.com/selfdrivingcars/car-voice-commands-nlp-self-driving-cars/

Об опасностях эгоцентризма и разработчиках ИИ читайте в моей статье: https://www.aitrends.com/selfdrivingcars/egocentric-design-and-ai-self-driving-cars/

О стилях вождения читайте в моей статье: https://www.aitrends.com/selfdrivingcars/egocentric-design-and-ai-self-driving-cars/

О проблеме с роботом-замораживателем читайте в моей статье: https: // www.aitrends.com/selfdrivingcars/freezing-robot-problem-and-ai-self-driving-cars/

Большая часть однократного обучения, изучаемого разработчиками ИИ, сосредоточена на распознавании изображений.

Это имеет смысл, поскольку обработка изображений — это использование, которое, как мы все можем согласиться, имеет потенциальную ценность. Если вы занимаетесь распознаванием лиц, было бы лучше сделать одноразовое обучение, чем получать множество снимков чьего-либо лица. Люди видели, что они могут видеть лицо человека один раз, а затем обладают замечательной способностью выделять это лицо из толпы, даже если они, возможно, видели это лицо только один раз, а может быть, даже очень давно.

Для беспилотного автомобиля с искусственным интеллектом однократного обучения распознаванию знаков в качестве решения только для обработки изображений недостаточно. Остальные задачи AI по вождению также должны «узнать» о значении знака. В планировщике действий ИИ не будет какого-либо набора аспектов управления движением, которые применимы к недавно обнаруженному знаку, но это часть обработки ИИ, которая должна решить, какие задачи по вождению выполнить в следующий раз, из-за обнаружения знака.

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

Довольно существенным недостатком любого однократного обучения будет то, было ли изучено «правильно» или нет. Я упоминал ранее, что у нас может быть машинное обучение, которое соответствует шаблону, который соответствует тому, что любое четвероногое животное является собакой, и поэтому классифицирует кошек как собак.Предположим, что ИИ на борту беспилотного автомобиля может выполнить однократное обучение, и в случае поворота направо, чтобы повернуть налево, ИИ «узнает», что он должен остановиться, а затем попытаться сделать левый.

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

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

См. Мою статью о безопасности и беспилотных автомобилях с искусственным интеллектом: https://aitrends.com/ai-insider/safety-and-ai-self-driving-cars-world-safety-summit-on-autonomous-tech/

См. Мою статью о дебатах по поводу управления движением: https: // aitrends.com / ai-insider / ai-границ-и-самоуправление-автомобили-вождение-контроль-дебаты /

См. Мою статью об опасностях призраков и ошибок: https://aitrends.com/ai-insider/ghosts-in-ai-self-driving-cars/

См. Мою статью о выгорании разработчиков ИИ: https://aitrends.com/selfdrivingcars/developer-burnout-and-ai-self-driving-cars/

См. Мой анализ инцидента с Uber: https://aitrends.com/selfdrivingcars/forensic-analysis-of-tesla-crash-based-on-preterior-ntsb-june-2018-report/

См. Мой дополнительный анализ инцидента с Uber: https: // aitrends.com / selfdrivingcars / ntsb-release-initial-report-on-fatal-uber-pedestrian-crash-dr-lance-eliot-seen-as-prescient /

Заключение

Одноразовое машинное обучение и его близкие родственники — хваленая цель ИИ.

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

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

Авторские права 2018 Д-р Лэнс Элиот

Этот контент изначально размещен на AI Trends.

Интегрированное глубокое обучение для беспилотных роботизированных машин

  • Содержание главы
  • Содержание книги
https://doi.org/10.1016/B978-0-323-85498-6.00010-1Получить права и контент

Аннотация

In В последние годы автономное вождение стало центром исследований в академических кругах и промышленности.Однако из-за высокой стоимости инфраструктуры, а также специализированного оборудования академическим и промышленным кругам очень трудно проводить собственные исследования. В этом исследовании представлена ​​программная модель лабораторного этажа для обучения самостоятельному вождению с использованием роботизированного транспортного средства только с камерами зрения и без других дорогостоящих датчиков или оборудования. Недорогая программа обучения автономному вождению основана на анализе цикла вождения человека, который состоит из восприятия, создания сцены, планирования и действия.Программная платформа представляет собой интеграцию глубокого надзора и обучения с подкреплением. Восприятие осуществляется посредством глубокого супервизионного обучения с использованием новейших сверточных нейронных сетей, в то время как управляющие действия, такие как рулевое управление, ускорение, замедление и торможение, достигаются посредством обучения Deep Q. Основными компонентами автономных управляющих агентов являются (1) основные функции вождения, (2) обнаружение опасностей и (3) системы предупреждения, которые, кроме того, состоят из нескольких независимых модулей подпрограмм.Обученный агент интегрирован и встроен в миниатюрный роботизированный автомобиль и дополнительно обучается вручную с помощью дистанционно управляемого рулевого управления, акселератора и тормозов. Моделирование на рабочей станции с несколькими графическими процессорами и лабораторные проверки дали обнадеживающие результаты, что привело к разработке экономически жизнеспособного и недорогого прототипа с автономным управлением.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *