114) начало curriculum learning Atari Frostbite
Почему агент не заходит в иглу, а научается только прыгать по льдинам? Пришёл к выводу, что дело в отсутствии знаний, что такое иглу, что в него можно зайти. Т.е. помимо навыков планирования, требуется ещё и знание о мире, которых у агента нет. И тут как бы само собой стало понятным, что, собственно, и мы люди тоже не сразу всё знаем. Много много лет мы потихоньку осваиваем мир с помощью родителей. Они нам показывает примеры поведения, они нас ограничивают от опасностей. Вместе с встроенным желанием исследовать мир это всё создаёт нечто вроде трассы, траектории, двигаясь по которой, человек впитывает понимание жизни и её законов. Что-то вроде curriculum learning.
Родилась мысль. А что если убрать все лишнее в игре и как бы игру стартануть с состояния, где иглу уже собрана и остаётся только зайти в него? Не надо прыгать по льдинам, собирать блоки, уворачиваться от чаек. Просто со старта дотопать до иглу и зайти. И всё. Сформировать базовое поведение. Потом уже можно добавить, что не хватает одного блока. Потом чтобы без блоков. Потом добавить чаек. Т.е. постепенно усложняя окружение сформировать у агента знания. Примерно, как в описанной истории с траекторией обучения человека.
Полез изскать, как можно задавать разные стартовые условия для Atari. Оказалось, что есть проект HackAtari, где собраны различные модификаторы игр. И можно, например, стартануть с собранной иглу. Или чтобы было мало врагов, ну и т.д. Только проблема в том, что это несовместимо с AtariVectorEnv. Пришлось портировать механизм игровых модификация прямо в C++ код (форк https://github.com/kocherovms/Arcade-Learning-Environment). Собственно из-за этого портирования и пришлось передалать записывание видео (иначе была бы ситуация, что для роллаута и тренинга используется одно окружение AtariVectorEnv, а для записи видео - другое SynvVectorEnv).
Короче, попробовал научить агент просто заходить в готовое иглу. Т.е. игра стартует, иглу готова, врагов нет. Просто пройди налево и зайти в дверь. НИХРЕНА (запуск 17e_ppo_tr_atari_mp_07/6)! Даже намёток нету, что это надо сделать. Видимо, придётся постепенно агента подталкивать в иглу. Т.е. будем делать продвинутый curriculum learning, когда сначала как маленького ребёнка за руку будем водить и заставлять его делать.