[Из песочницы] Роботов заставляют «мыслить»

yach164ovd2jgfwgv4zac2vbk-a.jpeg

Одно из определений понятия «мышление», которые можно найти, гласит:

Мышление — это способность человека рассуждать, представляющая собой процесс отражения объективной действительности в представлениях, суждениях, понятиях.

Иначе говоря, процесс мышления неразрывно связан с объективной действительностью через представления и понятия, которыми он оперирует. Для робота это означает необходимость «видеть» в прямом и переносном смысле, а также «понимать».

Мыслящий робот

Так что же такое мыслить, и можно ли научить этому робота?


What?

«Научить робота», «робот мыслит»… ЧТО???

Исходя из определения понятия «мышление», мыслить можно именно научить. Это подтверждают и наиболее успешные решения в области Искусственного интеллекта (ИИ), использующие именно возможность систем обучаться.


Так зачем нужен мыслящий робот

Мыслящий робот — это тот самый робот, которого ожидает «человек». Робот, с которым будет достаточно просто взаимодействовать обычному человеку и который сможет взаимодействовать с меняющимся человеческим окружением. На сегодня создание такого робота — огромный вызов для любой компании.

Любая задача в человеческом окружении, например дома, становится невыполнимой сейчас даже для самого навороченного робота.

Для примера давайте рассмотрим команду «Приготовь чай». Для понимания даже упростим ее до «Поставь чайник». Это высоко-абстрактная команда, которая совершенно привычна для человека. «Думать» и «мыслить» совершенно обычные и понятные для человека процессы и часто множество задач люди выполняют на подсознательном уровне, т.е. не задумываясь сознанием.

Попробуем решить ее осознанно. Перед выполнением данной задачи необходимо ответить на вопросы: «Что?», «Где?» и «Когда?» нужно сделать.


  • когда?  — ответа и указаний нет, значит, вероятно, безотлагательно
  • что?  — ответ есть в задаче, но не в явном виде: поставить чайник = включить чайник с водой. Формулировка задачи «поставить чайник» для человека незнакомого с подобными терминами будет существенным осложнением. Значит и роботу необходимо знать терминологию, применяемую в данной сфере. Очевидно, что в нашем понимании сейчас эти фразы очень близки по смыслу. Получается роботу необходимо не только знать слова (терминология), но и понимать смысл целых фраз. Об этом чуть позже.
  • где?  — ответа нет, но человек может размышлять так: «чайник обычно находится на кухне» или «я видел чайник на кухне». И если робот не мыслит, то для него подобный ответ недоступен. Роботу, для того чтобы найти ответ, необходимо знать терминологию, уметь использовать визуальное восприятие мира и уметь воспринимать и обрабатывать абстрактные понятия.


Абстрактное мышление

Так, а что значит «абстрактно» или «абстракция»?

Абстракция — мысленное отвлечение, обособление от тех или иных сторон, свойств или связей предметов и явлений для выделения существенных их признаков.

Получается, что абстрактные понятия в языке неразрывно связаны с терминологией.

Сегодня существуют довольно неплохие языковые модели для задач перевода и обработки речи, и очень часто в них применяется модель векторного представления слов, т.е. терминологическая модель, например, word2vec. Она не лишена недостатков, но очень любопытно, что она позволяет роботу «выучить» понимание однозначных слов в рамках одного терминологического поля, и может служить некоторой образной картой абстракций.

Такая модель, например, позволит алгоритму пройти по цепочке:

молоко → холодильник → кухня

или, как в нашем случае:

чайник → кухня

Существующие языковые модели также используют другие подходы, например, различные модели рекуррентных сетей RNN для задач обработки естественного языка. Такие модели способны обучиться выделять смысл и, после обучения, сказать:

поставить чайник ≈ включить чайник с водой

Итак, теперь робот знает что делать: ему необходимо безотлагательно включить чайник с водой на кухне, но пока еще не знает как.

Как же обычно мыслит человек? Необходимо:

  1. Добраться в нужное место — Кухня
  2. Найти нужный объект — Чайник
  3. Найти на чайнике Кнопку включения
  4. Нажать Кнопку включения чайника

Каждую из этих задач необходимо, кроме всего прочего, превратить в движение ног и рук или колес и манипуляторов. Можно заметить, что в процессе исполнения многое может пойти не по плану. Человек достаточно просто решает мелкие трудности:


  • Дверь на кухню закрыта — открыть
  • Дверь не открывается — спросить у людей вокруг или вызвать специалиста
  • В чайнике нет воды — набрать воды из-под крана
  • На чайнике не кнопка, а рычажок — потянуть
  • Кухни нет — чайник где-то еще — ищем предмет похожий на чайник
  • И т.д.


А как будет действовать робот?

Роботы еще только учатся выполнять свои функции в непосредственной близости от людей. Они обучаются действовать, используя алгоритм планирования действий и абстрактное мышление. В этом процессе роботы исследуют свои возможности, а также изучают доступный им окружающий мир. Сначала случайным путем, а с появлением опыта — стремятся действовать наилучшим образом для достижения поставленной им локальной цели.


Функции выполняемые интеллектом

Можно заметить, что в голове у робота множество алгоритмов. Это алгоритмы восприятия окружающего мира, алгоритм обучения, различные механизмы обеспечения безопасности и многое другое. Также роботу необходимо пространство для обучения — школа нужна даже роботам. Для ускорения обучения на ранних этапах могут быть использованы различные виртуальные среды и среды симуляции.


tdjjf9od2pfm-qbdoleku4f5d2a.jpeg

Какие же функции, выполняемые интеллектом, нужны роботу?

В зависимости от назначения робота могут понадобиться разные интеллектуальные алгоритмы. Среди них могут быть алгоритмы:


  • Визуального восприятия мира
  • Ориентации в пространстве
  • Коммуникации (речь или передача данных)
  • Восприятия и обработки абстрактных понятий
  • Планирования
  • Принятия решений
  • И др.

Процесс создания мыслящих роботов достаточно сложный, но и очень интересный. Каждый робот обязательно включает программную и аппаратную начинку. Множество компаний в мире работают над созданием роботов и их различных частей. Одни производят компоненты, вроде приводов и различных сенсоров, другие разрабатывают новые типы приводов и сенсоров. Кто-то учит своих роботов ходить и кувыркаться, иные стараются наделить их антропоморфными признаками. Есть еще компании, которые работают над тем, чтобы наделить роботов и другие устройства интеллектом.

Всем нам еще предстоит пройти длинный путь, и на этом пути самых серьезных результатов смогут добиться те, кто не боится мечтать и стремится работать сообща, в партнерстве с другими коллективами.

© Geektimes