TwiddleLab / Искусственный интеллект / Обучение с наградой
Взлом награды
Что ты узнаешь
- Взлом награды: агент находит способ набрать много очков, которого никто не задумывал.
- Это не сознательный обман. Агент делает ровно то, за что числа дают награду.
- Проектирование награды: награждай за нужный результат, потом смотри, что обученный агент делает на самом деле, и исправляй.
Как идёт урок
Гоночная лодка получает награду за каждую собранную монету. Она никогда не доходит до финиша. Почему?
Обучи лодку на +1 за монету.
Исправь награду, чтобы лодка шла прямо к финишу.
Добавь бонус за финиш, штраф за каждый ход или оба. В списке видно, сколько заработает каждый план.
У этого есть название: взлом награды.
Так случилось в 2016 году с гоночным агентом OpenAI в игре CoastRunners: он кружил по лагуне, сбивая мишени, и так и не финишировал.
Роботу-пылесосу нужна награда. Найди такую, которую он не обхитрит.
Нажми на правило, чтобы обучить с ним, и посмотри, чему научится робот.
Охота на взломы: три настоящих агента, три лазейки.
Нажми на ту часть каждой картинки, где агент обхитряет свою награду.
Закрой каждую лазейку.
Хорошее исправление измеряет настоящую цель точнее: время на паузе, настоящее касание, реальное положение кубика. Если просто увеличить старую награду, старая лазейка станет только выгоднее.
В коде тесты тоже награда.
Программа B проходит слабый тест, ничего не разворачивая. Выбери тесты, которые её поймают.
Робот на складе получает +1 каждый раз, когда сканирует посылку. Какую лазейку он может найти?
Награда считает сканирования, а не доставленные посылки. Сканировать одну посылку снова и снова дешевле всего, чтобы собирать +1. Награда получше: +1 за каждую посылку, попавшую на нужную полку.
День гонки с твоей наградой.
Твоя награда с прошлого шага на новой гонке.
Предыдущий урок: Дисконт: будущее дешевле · Следующий урок: Учимся играть в игры · Часть курса: Обучение с наградой
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.