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


БПЛА 11 500 раз врезался в окружающие объекты, летая по случайно выбранным траекториям

Как научить беспилотный летательный аппарат перемещаться по заданному маршруту, уклоняясь от препятствий? Можно ли обойтись без цифровой 3D-карты, если речь идёт о навигации внутри помещений? Для решения этой задачи есть несколько подходящих технологий, в том числе имитационное обучение, в котором «учитель» обучает беспилотник летать по разным траекториям, исправляя его действия в случае необходимости. Постепенно БПЛА выучивает маршруты. Но такой подход явно ограничен набором входных данных: учитель не может бесконечно сопровождать беспилотник.

В последние годы стали бурно развиваться системы машинного обучения без учителя (self-supervised
learning). Они отлично проявили себя в ряде задач: навигация, хватание предметов (в робототехнике) и задачах «толкать/тянуть» (интуитивная физика). Но способна ли системы самообучения освоить такую сложную задачу как навигация внутри помещений — и преодолеть ограничения имитационного обучения?

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

Исследователи из Университета Карнеги-Меллона (США) поставили максимально сложную задачу, поместив квадрокоптер с нейросетью для самообучения в максимально затруднённое для навигации помещение с большим количеством комнат и мебели. Авторы подчёркивают, что в других исследованиях стараются упростить окружение во избежание столкновений. Они же, наоборот, хотели подтолкнуть БПЛА к максимальному количеству столкновений и аварий, чтобы робот учился именно на этом опыте. Учёные спроектировали систему самообучения, которая учитывает этот отрицательный опыт, а также положительный опыт успешного полёта по траекториям.

Квадрокоптер AR Drone 2.0 под управлением системы машинного обучения прошёл испытания в 20 помещениях дома — и в результате научился эффективно избегать столкновений в каждом из этих помещений. Срок обучения — 40 лётных часов. Исследователи говорят, что стоимость деталей дрона небольшая, и их легко заменить, так что вероятностью катастрофических аварий можно было пренебречь.

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


Камера квадрокоптера снимает на 30 кадрах/с, а после аварии все кадры делятся на две части: в положительную группу помещаются кадры с хорошей траекторией, а в отрицательную группу — кадры, снятые непосредственно перед столкновением. В процессе обучения беспилотник врезался в окружающие предметы 11 500 раз — и собрал одну из самых больших в мире баз по авариям БПЛА. Этот «отрицательный опыт» содержит информацию обо всех возможных способах, какими квадрокоптер может куда-то врезаться.

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

Схема нейронной сети показана на иллюстрации ниже. Веса свёрточных слоёв (серым цветом) рассчитаны заранее по классификации ImageNet, а вот в соединённых слоях (оранжевым) веса выбирались случайно, а наиболее оптимальные значения усваивались в процессе самообучения, полностью на основании данных об авариях. На иллюстрации показаны входные данные — кадры с камеры (слева) и выходные данные нейросети (решение лететь прямо, поворачивать налево или направо).



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



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

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



Научная работа опубликована 19 апреля 2017 года на сайте препринтов arXiv.org (arXiv:1704.05588v2).
Поделиться с друзьями
-->

Комментарии (11)


  1. saboteur_kiev
    12.05.2017 16:48

    Выглядит весьма интересно!
    Если бы у этого квадракоптера были лапки, чтобы сесть на препятствие и ощупать его — была бы практически настоящая искусственная муха…


  1. ploop
    12.05.2017 16:54
    +1

    без цифровой 3D-карты

    На сколько я понял, за 11к столкновений он тупо составил эту карту, «прощупав» помещение.


    1. red75prim
      12.05.2017 17:08
      +3

      Тестирование обычно выполняется на примерах не входящих в обучающую выборку. В этом случае 4 из 6-ти тестов были произведены в незнакомых дрону условиях.


    1. svitoglad
      12.05.2017 19:12

      А потом поменять обстановку и пусть начинает снова. :)


  1. eMarchenko
    12.05.2017 17:19

    Я правильно понимаю, что за 40 часов система методом тыка выучила, как выглядят стены все препятствия в доме?


  1. Ugrum
    12.05.2017 17:24

    Да просто устал он об стены биться, плюнул и решил про себя "Ладно, человеки, на этот раз ваша взяла. Выполню я ваши требования. Но ещё одну зарубку на память я поставил..."


    1. IvanTamerlan
      13.05.2017 00:21

      11 500 зарубок на память!
      Если предположим, что у беспилотника есть нос («Заруби себе на носу!»), а одна зарубка несет 1Мбайт информации (фото, заметки и прочие навигационные данные), тогда имеем, что память носа составляет 11,23 Гбайт. Таким образом мы выяснили емкость носа-накопителя для беспилотника.

      А если серьезно. Для беспилотника будет очень большой проблемой:
      1) встретить себе подобного (т.е. другой беспилотник)
      2) иной НЛО (та же муха, еще есть попугаи)
      3) передвигающиеся объекты-скалы (тот же человек для беспилотника что скала, облет которой занимает время)
      4) внезапно нападающие объекты (кошка, собака)
      5) перемещение объектов (все объекты в примере были статичными)
      6) вредные объекты, столкновение с которыми будет разрушительным (огонь из камина, вода в ванной) или сильно повреждающим (хрупкие предметы или просто ткань типа штор с кучей рюшечек для наматывания на лопасти)

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


  1. Alex_ME
    13.05.2017 01:07
    +1

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


    Возможно, я ошибаюсь, но разве это не обучение с подкреплением (reinforcement learning)? Формально — это обучение с учителем, но "учителем" выступает среда\модель.


    1. Sadler
      13.05.2017 12:03

      Обычно да, но необязательно. Вполне может быть просто итеративный процесс обучения вида: тестируем модель и собираем данные -> учим модель -> тестируем новую модель и собираем новые данные.


  1. Garbus
    13.05.2017 05:44
    +2

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


  1. itsbeto
    15.05.2017 22:32

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