Обучить нельзя запрограммировать
Ученый из университета Мериленда Яннис Алоимнос наблюдает за тем, как Baxter отмеряет ингредиенты.
Массовая культура породила множество фильмов, сериалов и романов о роботах. Очень часто поворотным моментом в сюжете становится появление робота, который на голову выше своих предшественников. Именно о голове, вернее, о «мозгах» робота мне и хочется поговорить.
Всё указывает на тот факт, что в робототехнике началась новая эпоха. Сегодня создаются новые модели роботов, которые уже завтра будут работать на заводах и обслуживать наши дома. И если внешне они не особо поменялись, по сравнению с моделями недавнего прошлого, то их «мозги» представляют собой нечто совсем иное.
Современные роботы совсем не похожи на автоматы, произведенные для исполнения простейших задач как можно быстрее и как можно дешевле и, в идеале, без особого вмешательства людей. Сегодня роботы создаются для того, чтобы не только работать рука об руку с человеком, но и самообучаться. Доступные уже сейчас коммерческие модели, такие как Jibo, Baxter и Amazon Echo, являются не только яркими образцами и предвестниками совершенно новой эпохи.
Технологические достижения последних лет стимулировали возникновение более умных роботов. Но, пожалуй, решающим фактором сегодня становится разработка моделей, способных к самообучению. Создать «тело» робота не так сложно, особенно в свете доступности множества электронных и механических компонентов. Самое сложное в робототехнике — алгоритмы поведения.
Всем бы хотелось иметь таких роботов, которые могут выполнять больше одной функции. Или, по крайней мере, чтобы роботы выполняли эту свою функцию на самом высоком уровне. С точки зрения программирования эта задача в разы, если не на порядки проще, чем создание робота, способного выполнять несколько функций одновременно или именно те запросы, которые нужны пользователю. А как учесть непредсказуемость окружающей среды, уникальность обстановки, в которой может оказаться робот? Как предусмотреть бесконечное разнообразие условий, правил и ограничений?
Проект RoboBrain
На первое место сегодня выходит необходимость самообучения роботов. В некоторых случаях, особенно в тех проектах, которые осуществляются в рамках исследовательских центров и университетов, для решения этой задачи ставка делается на сбор данных из интернета. В частности, в RoboBrain, совместном проекте Стенфорда, Корнелла и нескольких других университетов. Здесь разработчики создают специальную сеть знаний с целью обучения роботов.
Участники проекта скорее не строят роботов, но создают обучающие базы данных, описывающих простые вещи: как выглядит яйцо, как сделать кофе, как разговаривать с людьми. Такие базы содержат информацию, которая может потребоваться роботам для успешного функционирования в жилищах или выполнения полезных функций на производствах.
RoboBrain курирует проекты, касающиеся самых разных контекстов и областей знания, в то время как интернет предоставляет практически неограниченные возможности по хранению изображений, видеороликов и другого контента, пригодного для обучения робота. Такой «мозг» обучается через примеры вещей, которые он должен распознавать, и задач, которые он должен понимать. Также этот «мозг» должен быть в состоянии подтвердить, что усвоена информация или нет (большой палец вверх или вниз).
Проект Tell Me Dave
Один из таких проектов называется Tell Me Dave. Исследователи и волонтеры из интернета обучают робота поэтапно выполнять определенные задачи. Для того, чтобы сварить макароны, роботу требуется солидная база знаний — что представляет собой каждый объект в кухне, какую функцию он может выполнять, как с ним управляться, и на каком этапе готовки его нужно использовать. Ведь реальной жизни роботу необходимо будет мгновенно ориентироваться среди множества факторов и объектов, обрабатывая общие запросы пользователя вида «приготовь мне макароны».
Воркфлоу проекта Tell Me Dave.
Умножьте это на количество хотя бы обычных бытовых задач, которые пользователь будет давать роботу, и вы поймете, почему существует RoboBrain. Система Tell Me Dave содержит ограниченное количество заученных ситуаций, но, теоретически, она всегда может подключиться к коллективной базе данных. Таким образом, она будет также знать и те вещи, которым непосредственно не обучалась — например, как покрасить стену, или что человеку требуется личное пространство не меньше 45 см.
Есть немало примеров того, как роботы обучаются на примерах из жизни, часто в лабораторных условиях. Например, последние исследования DARPA, где робот учится готовить, смотря видеоролики о приготовлении пищи.
Главным фактором успешности глубинного обучения (deep learning) становится развитость искусственного интеллект, постоянная практика и самосовершенствование машины. Механизмы визуального и аудиального распознавания, понимание языка, используются для ускорения обучения роботов. Алгоритмы глубинного обучения отлаживаются на общедоступных изображениях и видео и другом контенте из сети. В RoboBrain используют глубинное обучение, чтобы натренировать роботов правильным техникам передвижения в пространстве и методам захватывания объектов.
Платформа проекта Brain Corporation.
Brain Corporation
Однако, существует и другой подход к созданию роботов, согласно которому они вовсе не обязательно должны быть такими умными, какими их хочет сделать RoboBrain. По крайней мере до тех пор, пока они не научатся отличать правильное от неправильного. Для реализации этого механизма был создан стартап Brain Corporation. Это программно-аппаратная платформа, в основе которой лежит идея моделирования нейронной сети. По мнению разработчиков, их можно будет интегрировать в «мозг» робота и «обучить его разным паттернам поведения, на подобии того, как человек тренирует животное».
Например, робот-пылесос, работающий на базе операционной системы BrainOS, не распознает кошку как кошку, но будет в состоянии научиться тому, что этот объект — чем бы он не являлся — не стоит пылесосить.
Соответственно, можно предположить, что если такой робот будет в состоянии различать то, что в данной ситуации разрешено, а что запрещено, то сможет сам научиться следовать за объектами, находить новые объекты и многому другому.
Сложности обучения
Если самый большой вызов современной робототехники — обучить роботов вместо того, чтобы их запрограммировать, то пользователям придется уделить время и силы на обучение механического питомца. Возможно, самым простым выходом будет натренировать роботов на базе BrainOS (или какой-то схожей системы) в лаборатории, превратить это в базу данных, а потом уже «накатить» на коммерческие модели. Но если пользователь захочет натренировать своего робота для работы в конкретном специфическом окружении, тогда ему самому придется заниматься обучением.
«Обучение» всевозможных умных гаджетов, которые впоследствии можно интегрировать в локальную сеть или интернет вещей, иногда требуется немало времени и усилий. Даже простейшие операции — например, обучение камеры видеонаблюдения — могут обернуться целой историей. В том числе и для тех, кто хорошо разбирается в заложенных в технику алгоритмах.
И это может стать одним из главных препятствий на пути «обучаемой» техники. В большинстве случаев люди не хотят ничего делать, им хочется просто нажать кнопку «включить», и чтобы робот сам сделал все, что нужно. Но может быть, через несколько лет пользователи поймут, что подобный вид искусственного интеллекта подобен животным. Можно провести аналогию с собаками: они могут лаять и лизаться, но чтобы обучить их выполнять команды или более сложные действия, потребуется приложить немного усилий. Возможно, многим придется по душе идея не «обучения», а «воспитания» робота.