Основы обучения с подкреплением: агент, среда и CartPole в OpenAI Gym
Claude видит патологию в награде CartPole, Qwen не согласен
В блоге Huawei Cloud разобраны основы обучения с подкреплением и то, как их применяют на практике. Объясняется схема взаимодействия агента и среды: агент получает состояние, выбирает действие, среда возвращает новое состояние и награду. В качестве примера используется среда CartPole из набора OpenAI Gym: нужно удерживать шест, толкая тележку влево или вправо. Разбираются пространство действий и состояний, политика, траектория, марковское свойство, функция ценности, дисконтирование, а также дисперсия, KL-дивергенция и важностная выборка. Материал полезен тем, кто начинает писать код обучения с подкреплением.
Материал блога Huawei Cloud посвящён основам обучения с подкреплением (reinforcement learning, RL). RL отвечает на вопрос, как агент в сложной и неопределённой среде может получить максимум награды. Система состоит из агента и среды, которые постоянно взаимодействуют: агент получает состояние St, выбирает по нему действие At, среда выполняет действие и возвращает следующее состояние St+1 и награду Rt за этот шаг. Цель агента — набрать как можно больше награды. Как инструмент упоминается OpenAI Gym — набор для разработки алгоритмов обучения с подкреплением с готовыми средами (cartpole, pendulum, mountain-car, mujoco, atari и другие). Задумка в том, чтобы разработчик занимался самим алгоритмом и не тратил силы на реализацию среды. На примере среды с перевёрнутым маятником разбираются пространства действий и наблюдений. В Gym они описываются типами Box — ограниченное пространство с верхней и нижней границами произвольной размерности, например непрерывное управление или пиксели изображения, — и Discrete — дискретный набор значений от 0 до n-1 вроде нажатий кнопок. В этой среде агент — тележка с двумя действиями: толкнуть влево или вправо. Состояние — это положение тележки, её скорость, угол шеста и угловая скорость шеста. Награда равна единице за каждый шаг, пока шест не упал, а эпизод заканчивается, если тележка вывезла шест за экран, шест упал или число шагов превысило 500. Главный вопрос задачи — какую политику выбрать тележке, чтобы шест не падал и награда копилась. Политика — это функция, а действие обычно задаётся распределением вероятностей; обозначается она буквой π. Если эта функция — нейронная сеть, получается глубокое обучение с подкреплением. Один проход игры со стартового состояния S0 через действия и награды к следующим состояниям называется эпизодом, а вся последовательность — траекторией τ. Разбираются и формальные понятия. Переход в состояние s' при действии a из состояния s задаётся вероятностью p(s'|s,a) и не зависит от прошлой истории — это марковское свойство. Награда определяется функцией r(s,a,s'). Чтобы будущие награды весили меньше текущих, вводится множитель дисконтирования γ — число от 0.0 до 1.0, а сумма будущих наград называется доходностью. Ожидаемая доходность при следовании политике π из состояния St — это функция ценности состояния, а её оптимальный вариант v* является целью марковского процесса принятия решений. В конце речь о статистических инструментах. Дисперсия показывает, насколько случайная величина отклоняется от среднего. KL-дивергенция измеряет различие между двумя распределениями вероятностей. Важностная выборка позволяет оценивать ожидание по целевому распределению, не сэмплируя из него, а беря выборку из более удобного предлагающего распределения и назначая веса. Неудачное предлагающее распределение резко повышает дисперсию оценки, а сближение распределений помогает её снизить. Для студента или начинающего разработчика материал полезен как словарь задачи обучения с подкреплением: состояния, действия, награды, политика, эпизоды и функция ценности. С этими понятиями легче читать код примеров и понимать, что нужно реализовать самому, а что уже даёт Gym.