Дрессировка роботов

Дрессировка роботов

Алексей Тарасов @Atar

Sparse Hash

Робот-пылесос в лабиринте (квартиры) решил пройти сквозь стену. У него это не получилось. Расхождение ожидания и результата привело к выработке отрицательного подкрепления. Невозможность такого действия должна запомниться роботом и впоследствии отметаться при принятии им будущих решений.

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


Научить его команде НЕТ/ФУ — это значит приучить его тормозить, когда он, например, решает в очередной раз налететь на стену. НЕТ должно вызывать отмену текущей операции. Для этого нужно связать команду с отрицательным подкреплением ассоциативной связью. Необходимо "одёргивать" пылесос от попытки оставить на лбу новую вмятину командой НЕТ/ФУ.

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

Кстати, буквальное одёргивание будет являться аналогом мягкой стены. Робот двинулся не в ту сторону. Одёрнув его, то есть прервав перемещение в том направлении, мы вызовем расхождение его ожидания и результата. Порывов снова поехать в ту сторону на некоторое время у него поубавится.

В результате символ отрицательного подкрепления свяжется с командой. Множественные повторы усилят эту связь, что приведёт к тому, что команда станет прямым активатором отрицательного подкрепления. И теперь команда ФУ сможет глушить и порывы рвануться через стену и вообще любые сиюсекундные намерения пылесоса. Таким образом мы создали у робота кнопку ОТМЕНЫ текущего действия.


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

Так как подкрепления здесь нет (только если пылесос не упирается), то неважно когда мы подтянули поводок — до или после команды. Главное, чтобы эти действия были близки по времени, в одном временном окне.

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

Report Page