Концепции и варианты использования

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

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

В этом посте мы познакомим вас с основными концепциями обучения с подкреплением. Наша точка зрения - модельная. Мы рассматриваем различные варианты использования. Мы моделируем процесс, пытаясь смоделировать их как задачи обучения с подкреплением. Возникают интересные вопросы. Получено понимание.

Вот как гласит история. Начнем с основы и основных понятий. Далее мы рассмотрим ряд примеров, чтобы укрепить наше понимание. После этого мы рассмотрим другие концепции. Наконец, мы рассмотрим пример более подробно.

Платформа

Обучение с подкреплением предполагает, что агент действует в среде, которая доставляет вознаграждение из определенных состояний. (Иногда награды доставляются за действия. Мы поговорим об этом позже.) В любой момент времени агент находится в определенном состоянии. У нее есть выбор действий, которые она может выполнить. Она выбирает одно из них, как правило, под влиянием того состояния, в котором она сейчас находится. Ее долгосрочная цель - посетить штаты, которые доставляют награды, собирая как можно больше наград.

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

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

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

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

Нам понадобится больше концепций и уточнений. Прежде чем двигаться дальше, давайте остановимся и рассмотрим несколько конкретных примеров.

Шахматы

Вы агент. Конфигурации платы - это состояния. Некоторые представляют собой выигрышные состояния, некоторые - проигрышные. Действия - это ходы, которые вы можете делать. Вы хотите достичь состояния победы. То есть победа.

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

Количество состояний огромно. Примерно

10000000000000000000000000000000000000000000000

Среда враждебна. Ваш противник пытается заставить вас проиграть.

Дополнительные примеры

Покер. Вы агент. Состояния наблюдаются лишь частично. Вы могли бы действовать лучше, если бы видели карты других игроков. Но ты не можешь.

Вы пытаетесь похудеть. Состояние - это ваш текущий вес. Это вполне наблюдаемо. Ваши возможные действия - различные упражнения, различные диеты, лекарства, ничего не делать. Их эффекты отсрочены. Вы не похудеете сразу. Даже не уверен, что вы это сделаете. Некоторые подходы могут вообще не работать.

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

Вы робот, пытающийся научиться водить машину. (Я имею в виду обычный тип, с рулевым колесом, тормозами, педалью акселератора,…) Некоторые аспекты состояния - это ваша текущая скорость и направление, поскольку они связаны с дорогой, по которой вы едете. Если вы едете слишком быстро, возможно, вы захотите притормозить. Если вы двигаетесь зигзагами по шоссе, возможно, вам захочется «выпрямиться». Некоторые элементы ваших действий: какую педаль нажимать (тормоз?, Акселератор?), Сколько нажимать, ориентация рулевого колеса и так далее. Совершенно очевидно, что действия могут иметь как (радикальные) немедленные последствия, так и отложенные (слишком быстрое движение может привести к штрафу или аварии, слишком медленное движение означает, что вы приедете позже, плюс много машин сигналят вам).

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

Далее, упомянутые выше дополнительные концепции.

Прогулки и награды

Прогулка - это определенная последовательность чередующихся пар состояние-действие, начиная с определенных состояний и заканчиваясь в них. Это изображено ниже.

W: s0 -> a0 -> s1 -> a1 -> ... -> sk

Агент запускается из состояния s0 и выполняет действие a0. Это приводит к переходу в состояние s1. В s1 агент выполняет a1. И так далее. В конце концов агент попадает в состояние sk. Как отмечалось ранее, хотя агент имеет полный контроль над тем, какие действия выполнять в любом данном состоянии, он, как правило, не может полностью контролировать, какое состояние будет посещено следующим. Окружающая среда реагирует так, как ей хочется.

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

R(W) = r0 + a*r1 + a^2 * r2 + ... + a^k * rk

Здесь a между 0 и 1 - коэффициент скидки, а ri - состояние вознаграждения, которое обеспечивает si. Почему дисконтный фактор? Время летит. Есть краткосрочный. Есть на долгий срок. Чтобы получить только мгновенное удовлетворение, установите a на ноль. Чтобы добиться более долгосрочного вознаграждения - даже если краткосрочного вознаграждения не ожидается, установите a на положительное число.

Политика агента

Агент стремится к прогулкам, которые приносят высокую совокупную награду. Как она может этого добиться? Через действия, которые она выбирает.

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

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

Государственная ценность (в соответствии с политикой)

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

Давайте формализуем это. Значение состояния при определенной политике - это награда, которую агент может ожидать от прогулки, которая выполняет эту политику. Слово «ожидать» напоминает нам о том, что даже при детерминированной политике шаг может не полностью контролироваться агентом.

В шахматах значение конфигурации доски - это вероятность победы агента, начиная с нее. Политика неявная. Агент хочет выиграть.

Далее наш последний пример. Этот конкретизировал больше. Отчасти для подкрепления только что описанных концепций. При этом, чтобы также выявить свежие тонкости.

В пути

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

Состояния и действия

Какие должны быть состояния? Пространство-время звучит разумно. То есть определенное место в определенное время. Когда вы начнете, это может повлиять на маршрут от A до B, который вы предпочитаете.

Какими должны быть ваши действия? Сегменты маршрута, которые вы можете выбрать из вашего текущего местоположения в момент времени T? Под сегментом маршрута мы подразумеваем дорогу, исходящую из вашего текущего состояния A и ведущую вас в определенное указанное место B. Подобно картографическим приложениям, которые разбивают предлагаемые маршруты на сегменты маршрута (пошаговые инструкции).

Награды и критерии оптимизации

Что вы пытаетесь оптимизировать? Найдите самый быстрый маршрут? Или это самый короткий, самый живописный, наименее уродливый, с наименьшим количеством выбоин, с наименьшим светофором, с самым легким движением грузовиков, с лучшим морским бризом, тот, у которого больше всего деревьев,…

Хм ... Еще одна причина задействовать свой мозг. Нет необходимости указывать цель заранее или даже явно. Ваш мозг просто «почувствует», какие маршруты вам нравятся, а какие нет. Это работает, даже если вам сложно сформулировать именно то, что вам нравится, не говоря уже о том, чтобы объединить свои предпочтения в многокритериальную целевую функцию.

Что выбрать в награду за свои состояния? Хм ... Критерии, перечисленные в предыдущем абзаце, относятся к маршрутам, а не местоположениям. А маршруты для вас - это действия. Похоже, вам нужны награды за действия, а не за состояния. На самом деле, если подумать немного, у вас также могут быть предпочтения в отношении мест, которые вы хотели бы посетить (или избегать) во время поездки на работу. Итак, вам нужны награды как за действия, так и за состояния.

Итак, вознаграждение за сегмент маршрута может включать как вознаграждение за проезд сегмента маршрута, так и вознаграждение за пункт назначения сегмента маршрута. Это потому, что действие явно указывает место назначения. То есть мы предполагаем, что переходы между состояниями детерминированы. Если мы возьмем сегмент маршрута A->R->B от точки A в момент времени T, мы окажемся в точке B через некоторое время.

Этот механизм вознаграждения изображен ниже.

reward(route-segment, T) = reward(route-segment.drive, T) + reward(route-segment.destination, destination.arrival-time)

Здесь destination.arrival-time - время прибытия в пункт назначения. Это время зависит как от того, когда вы начинаете сегмент маршрута, так и от того, что еще происходит по пути.

Если вас в первую очередь интересует самый быстрый маршрут, reward(route-segment.drive,T)является случайной величиной. Время вождения в каждом конкретном случае зависит от условий движения и других факторов. Время начала T отражает некоторую - но не всю - эту зависимость.

Значение состояния

Вы находитесь в точке А в момент Т. Вы хотите, чтобы отсюда работал самый быстрый маршрут. Ценность вашего текущего состояния - это время, которое, по вашему мнению, потребуется, чтобы отсюда приступить к работе. Если нет трафика, это просто длина кратчайшего пути, длина которого определяется в единицах времени, а не расстояния. Введение трафика (и других факторов) внесет некоторую изменчивость. Вот почему мы моделируем ценность состояния как ожидаемое время.

Ваша политика

Опять же, скажем, вы оптимизируете время в пути. Предполагая, что движения нет, ваша лучшая политика - выбрать кратчайший путь от вашего текущего местоположения до места назначения. (Как и раньше, длина измеряется во времени, а не в расстоянии.) Чтобы найти эту политику, нужно решить проблему кратчайшего пути. Если есть трафик или другие факторы, способствующие изменчивости, ваша задача усложняется. Тем более, если эти факторы зависят от вашего времени начала. Возможно, вам придется опробовать разные начальные состояния в разное время и предпринимать разные действия - то есть следующие сегменты маршрута - из них. Это поможет вам оценить время в пути на различных участках дороги в различных условиях. Конечно, вам все равно придется проложить хороший многосегментный маршрут от A до B, начинающийся в определенное время из всех этих мест.

Описанный выше процесс может быть основан на предварительных знаниях. То есть у вас могут быть разумные предварительные оценки времени в пути на различных участках маршрута. Это может помочь вам в ваших ранних исследованиях.

Резюме

Мы ввели тему обучения с подкреплением и ключевые концепции в ней. Наша точка зрения была модельной. Мы рассмотрели стационарные среды, нестационарные среды, детерминированные действия и реакции (со стороны среды), а также детерминированные и стохастические политики.

Мы видели примеры в различных настройках: игры (шахматы, покер), управление (робот пытается играть в гольф, водить машину), здоровье (похудание) и маршрутизация (навигация по торговому центру, поездки на работу).

Мы надеемся, что читатель лучше понимает, что такое обучение с подкреплением и для каких типов задач оно поддается.