Бакстер
Обычно все промышленные роботы функционируют по одному принципу. Им в точности задают, что нужно делать. И они выполняют этот заранее определенный алгоритм, пока оператор не внедрит в них другую команду. Как правило, таким индустриальным аппаратам не позволяют работать близко к тем хрупким существам, которые их запрограммировали. Но команда ученых Nvidia из Сиэтла нашла решение этой проблемы, и сделала первого робота, который учится на примере человека. Внутри у него только клубок нейросетей и «словарь», позволяющий описывать то, что вокруг происходит. Почитать научную работу можно здесь, а вчера Nvidia опубликовала видео с примерами выполнения задач на своем YouTube-канале.
Все решения за робота принимают обученные нейросети, понимающие свои задачи, основываясь на демонстрации. Они умеют наблюдать за окружающей средой, генерировать себе программу, и потом её выполнять. Робот учитывает отношение между объектами (например, он понимает, что если убрать кубик снизу, вся конструкция разрушится), создает себе целые планы (например, «хочу аккуратно убрать нижний кубик»), а затем приводит их в действие (чтобы убрать самый нижний куб – надо сначала расчистить все предыдущие). Обучение нейронных сетей ведется полностью в симуляции, а в реальном мире ученые только проверяют качество их работы, устанавливая их в того или иного робота. В случае с кубиками это был индустриальный робот Бакстер (Baxter), поскольку его руки могут выполнять те же функции, что и руки человека.
Дитер Фокс, глава отдела разработки робототехники в Nvidia и профессор Вашингтонского университета, рассказывает, что команда хочет создать следующее поколение роботов, которые могут безопасно работать в чрезвычайной близости к человеку. Но для этого такие роботы должны уметь выявлять людей, отличать их от окружающей среды, следить за их деятельностью и понимать, когда от них нужна помощь. Дитер ожидает увидеть таких роботов на небольших производствах и в частных домах, особенно среди людей с инвалидностями. Они способны на ходу адаптироваться к новым ситуациям, и могут работать без специального оператора, обученного их настройке.
Самообучающийся алгоритм можно без проблем научить проходить игры – путем простого повторения одного и того же сегмента множество раз, с поправкой на ошибку. Но Фокс говорит, что для робота такая тренировка не подходит. Он трудится в реальном мире, поэтому ему доступно куда более широкое пространство решений, а в случае ошибки результат может быть катастрофичен. Поэтому задачей команды было натренировать нейросеть в точности следовать примеру человека, а если происходит непредвиденное отклонение от такой программы – понимать, что произошла ошибка, и пытаться её устранить.
Нейросети, работающие в Бакстере
Пока что задачи, ставящиеся перед Бакстером, максимально просты. Отличи кубики друг от друга по цвету и форме. Посмотри, что с ними делает человек. Повтори за ним все операции. Такое может сделать трехлетний ребенок. Но для робототехники это важный шаг в попытке создать универсального робота, способного учиться новым «трюкам» без вмешательства команды программистов.
И уже на данном этапе не всё так гладко, как может показаться. Например, разработчики очень гордятся тем, что система смогла самостоятельно отличить красную машинку от красного куба, хотя машинку ей до этого в реальном мире никто не показывал. Или, например, роботу сейчас тяжело чувствовать глубину, у него плоские «глаза»-камеры, но он отлично понимает, когда кубик не поставился сверху на своего приятеля, и сам догадывается, как это можно исправить, чтобы всё получилось так же, как у человека.
Группа ученых (кстати, в ней состоял и россиянин – Артем Молчанов) достигла того, что для повторения всех действий машине достаточно одной демонстрации. Причем все команды, которые робот сам себе формулирует в своем нейросетевом мозгу, легко читаются человеком. «Поставь желтый на красный», «Подвинь зеленый к синему». Кто-то, никогда не сталкивавшийся с таким роботом, при необходимости легко может подойти и «вправить ему мозги».
Для тренировки нейросетей команда в основном использовала синтетические данные из симулированной среды. Учитывая скорость перемещения руки робота, в реальном мире сетям пришлось бы учиться годами, не говоря уже о том, что можно поломать машину. Стэн Берчфилд, который вел этот проект, говорит, что создание приближенных к реальному миру свободных симуляций, в которых алгоритмы могут учиться на своих ошибках, – единственный способ достаточно скоростного самообучения роботов. Поэтому Nvidia и занимается этой разработкой: компании кажется, что их железо идеально подходит для таких задач. Важным компонентом тренировок является визуальный аспект. Машины должны понимать, как выглядит человек, и чем друг от друга отличаются те объекты, над которыми предстоит работать. Опыт Nvidia в создании оборудования и софта, работающего с графикой, по словам Берчфилда, здесь незаменим.
Сейчас команда занимается созданием более фотореалистичных симуляций, чтобы нейросетям проще давался переход в реальный мир, и расширяет объем задач, которые они могут запомнить.
P.S. При покупке карт Nvidia на Newegg и Amazon экономия составит от 30%. А Pochtoy.com доставляет их из США в Россию. При регистрации у нас с кодом Geektimes – $7 вам на счет.
Источник