Исследователи из Лаборатории X (ранее известная как Google X) разработали и протестировали систему, которая позволяет роботам ускоренно изучать выполнение одинаковых задач с помощью коллективного обучения. Кратко об этом рассказывается в блоге Google, с препринтами статей можно ознакомиться на arXiv.org (1, 2, 3).
Методы глубинного обучения помогают роботам усвоить выполнение достаточно сложных действий, в том числе связанных с моторикой. При наличии симулятора или готового набора данных этот процесс может быть относительно недолгим, однако на самостоятельное обучение с подкреплением в реальном мире одному роботу, как правило, требуется куда больше времени.
Разработчики из Google решили сократить этот срок, для чего использовали несколько манипуляторов с семью степенями свободы, которые обучались одинаковой задаче — самостоятельному открыванию двери. Роботов объединили в одну сеть с центральным сервером, на котором производилось дополнительное обучение и хранилась актуальная версия нейросети. Каждый из роботов обладал своей копией нейросети, которая автономно работала над задачей «открыть дверь с помощью ручки».
В рамках первого эксперимента каждый робот работал со своей собственной дверью, причем все двери находились в разном положении. Управляющая каждым роботом копия центральной нейросети составляла последовательность будущих действий, причем на этом этапе инженеры специально искажали цепочку команд от сети к роботу посторонним шумом, чтобы увеличить диапазон выбранных значений. После этого робот делал очередную попытку открыть дверь.
Информация о выбранных нейросетью действиях, произведенных роботом физических движениях в реальном мире и результатах каждой попытки отправлялась обратно на сервер. Эти данные использовались для дополнительной настройки центральной нейросети, после чего сервер рассылал роботам копию новой версии, которая работала немного лучше предыдущей, и вся операция повторялась сначала.
В результате проведенных экспериментов выяснилось, что даже два робота обучают нейросеть гораздо эффективнее, чем один робот. Два робота за два с половиной часа достигли показателя в 100 процентов успешных попыток, а робот, который работал в одиночестве, за это время научился лишь перемещать манипулятор к дверной ручке. Через четыре часа робот-одиночка научился открывать дверь только в 20 процентах случаев.
Также исследователи описывают два других подхода к коллективному обучению роботов на примере практически того же самого оборудования. Кроме вышеописанного эксперимента, авторы использовали предварительное механическое обучение оператором, который «показывал» роботу нужное действие. Другая публикация описывает коллективное обучение с использованием камер — в этом случае изображение с камер роботов также используется для коллективного обучения центральной нейросети и предсказания последствий какого-либо действия в физическом мире.
Ранее специалисты Лаборатории X уже тестировали коллективное обучение роботов с помощью камер. Авторы научили нейронную сеть предсказывать вероятность успешного захвата, основываясь на изображениях камеры независимо от калибровки и исходного положения робота.