Synthetically Trained Neural Networks for Learning Human-Readable Plans from Real-World Demonstrations https://arxiv.org/pdf/1805.07054.pdf 🕐 Когда - 18 мая 2018 🍓В чем понт Когда мы хотим что-то от робота, хорошо уметь обьяснять, что именно. Но писать инструкцию к действиям экспертно - сложно и неудобно. Поэтому в своей статье авторы научили архитектуру из нейросетей составлять и выполнять инструкцию, которую может читать и править человек, автоматически, используя одну (!) демонстрацию желаемого результата. Кубики разных цветов ставили друг на друга разными способами, снимали на камеру, показывали архитектуре и она с помощью робота приводили кубики в итоговое положение демонстрации с точностью, близкой к 100 процентам. 📒Подробности Модель состоит из пяти частей 🎲 Детекция кубиков В этой задаче мы рассматриваем 7 кубиков - у каждого кубика есть 7 невидимых и 1 видимая вершина, мы пытаемся детектировать 7 видимых вершин, пропуская изображение через претренированную на Imagenet VGG, для каждый вершины учим матрицу с вероятностью встретить ее в каждой части изображения. 🔗 Определение связи между кубиками Этой сетке на вход для каждой пары кубиков мы кормим координаты вершин этих 2 кубиков и на выходе определяем, первый кубик находится слева, сверху от второго или нигде из вышеперечисленного. Если у нас есть такая информация для каждой пары кубиков, мы понимаем как они все в целом расположены. 🖌 Написание инструкции В этой части у нас есть 2 сущности - кубик, который мы хотим переместить в конкретный шаг, и кубик, на который мы хотим переместить первый кубик. Мы составляем тензор, в котором пишем вероятности переместить каждый обьект на каждый, и берем argmax - такой тензор легко читается и правится человеком. 🛠 Выполнение инструкции На первый взгляд не очень интуитивно, зачем под этот пункт нужна нейросетка - если есть инструкция, почему бы просто не дать ее роботу и сказать выполнить? Но робот может совершать ошибки в манипуляции предметами и среда вокруг может меняться. Поэтому на каждом временном шаге мы кормим сетке инструкцию и текущее состояние среды (снимок камеры). 🗝 Что в итоге Пока пример, на котором решают эту задачу очень простой и не имеет прикладного значения, но можно представить, как это поможет при доработке в реальной жизни! Разработчикам станет гораздо проще учить роботов, кроме того, каждый сможет расширять функциональность робота под себя - делать тосты с правильной корочкой, по-особенному гладить свои любимые рубашки, или показывать роботу в безопасных условиях то, что нужно повторить в экстремальной ситуации - например отключать проводку в горящем здании. 🗒 Что на рисунке На первой картинке сверху - архитектура модели. На второй картинке снизу - пример того, как выглядит снимок камеры в нашей задаче и детекция кубика.