Исследователи из США, Канады и Словении создали виртуальную среду для обучения алгоритмов бытовым действиям. Кроме того, они собрали датасет из множества программ, описывающих бытовые сценарии в виде последовательностей базовых действий, а также научили нейросеть самостоятельно создавать подобные программы из видео или текстового описания простым языком. Работа будет представлена на конференции CVPR.
Обычные для человека задачи, к примеру, «принести предмет из соседней комнаты», сложны для понимания робота, потому что на самом деле они состоят из множества мелких подзадач, о которых люди не задумываются. Для того, чтобы робот мог выполнять такие задачи можно либо вручную прописать последовательность действий, но в таком случае он будет уметь выполнять только четко определенный круг действий, либо научить его понимать высокоуровневые команды и самостоятельно разбивать их на элементарные действия.
Исследователи из США, Канады и Словении под руководством Антонио Торральба (Antonio Torralba) создали для обучения алгоритмов виртуальную среду под названием VirtualHome. Она состоит из нескольких моделей домов с множеством интерактивных предметов, с которыми могут взаимодействовать виртуальные персонажи. Стоит отметить, что ранее другие исследователи уже создавали подобные виртуальные среды, однако авторы новой разработки выбрали другой подход для обучения алгоритмов.
Для начала разработчики собрали большой датасет из подробно описанных бытовых действий. Для этого они сначала попросили добровольцев подробно описать последовательность действий для какой-либо бытовой задачи, например, приготовления чашки кофе. После этого добровольцы преобразовали это текстовое описание, понятное человеку, в описание в визуальной среде программирования, состоящее из стандартных элементов, достаточных для выполнения задачи:
В результате исследователи получили 2821 программу (они доступны на сайте проекта), описывающую множество действий, которые люди выполняют дома. Кроме того, разработчики создали с помощью вероятностной грамматики еще более пяти тысяч программ, которые затем добровольцы описали словами. После этого авторы подготовили стандартные анимации для персонажей, описывающие 12 самых популярных действий, таких как ходьба, захват предмета, открытие дверцы и подобные им. Для движения по дому использовался стандартный планировщик маршрута из игрового движка Unity.
Создав большой датасет из множества анимаций бытовых действий исследователи создали алгоритм, который решает обратную задачу — генерирует описывающую действие программу исходя из видеозаписи или текстового описания. Для этого они использовали алгоритм из нескольких нейросетей, которые проводят семантическую сегментацию кадра из видео и выдают вероятность того или иного базового действия, или анализируют текстовое описание. После этого две рекуррентные нейросети превращают эти данные в программу.
Протестировав алгоритм на датасете авторы показали, что он справляется с задачей лучше случайного выбора программы из собранного набора и нескольких других методов. Авторы считают собранный ими датасет и среда для обучения может быть использована для других применений в будущих работах и собираются выложить исходный код и натренированные модели на GitHub.
В прошлом году американские разработчики создали алгоритм, позволяющий роботам лучше понимать команды на естественном языке. Специалисты научили алгоритм не только переводить команды в действия, но и анализировать уровень их абстракции. После обучения робот правильно интерпретировал команды в 90 процентах случаев в течение одной секунды
Григорий Копиев