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

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

Что такое обучение с подкреплением?

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

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

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

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

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

Частично наблюдаемые марковские процессы принятия решений (POMDP)

Марковские процессы принятия решений (MDP) обеспечивают основу для моделирования принятия решений в ситуациях, когда результаты частично случайны, а частично находятся под контролем лица, принимающего решения. Ключевой особенностью MDP является то, что они следуют свойству Маркова; все будущие состояния независимы от прошлого в настоящем. Другими словами, вероятность перехода в следующее состояние зависит только от текущего состояния.

POMDP работают аналогично, за исключением того, что это обобщение MDP. Короче говоря, это означает, что модель не может просто взаимодействовать с окружающей средой, а вместо этого получает заданное распределение вероятностей, основанное на том, что мы наблюдали. Более подробную информацию можно найти здесь. Мы могли бы использовать методы итерации значений в нашем POMDP, но вместо этого я решил использовать в этом примере обучение методом Монте-Карло.

Пример среды

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

Однако некоторые ученики в классе мало заботятся о правилах учителя и предпочли бы избавить себя от необходимости разносить листок по классу. Вместо этого эти неприятные люди могут выбросить макулатуру в мусорное ведро на расстоянии. Теперь это злит учителя, и тех, кто это делает, наказывают.

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

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

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

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

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

Например, действия человека А приводят к:

  • Вверх = выбросить в мусорное ведро
  • Вниз = Держись за бумагу
  • Слева = передать человеку Б
  • Вправо = Держись за бумагу

Вероятностная среда

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

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

Другой пример: если мы рекомендуем товары для покупок в Интернете, нет гарантии, что человек просмотрит каждый из них.

Наблюдаемые переходные вероятности

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

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

Мы видим, что бумага прошла через этого человека 20 раз; 6 раз они держали его, 8 раз передавали человеку Б и еще 6 раз бросали в мусорное ведро. Это означает, что в соответствии с нашей исходной политикой вероятность удержать или выбросить его в мусор для этого человека составляет 6/20 = 0,3 и аналогично 8/20 = 0,4 для передачи человеку B. соберите следующие образцы данных:

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

Многорукие бандиты, эпизоды, награды, возврат и скидка

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

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

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

Чтобы бумага не была выброшена в корзину, мы предоставляем за это большое отрицательное вознаграждение, скажем -1, а поскольку учитель доволен тем, что бумага помещена в корзину, это дает большую положительную награду, +1. Чтобы избежать того, что результат будет постоянно передаваться по комнате, мы устанавливаем вознаграждение за все другие действия на небольшое отрицательное значение, скажем -0,04.

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

Обратите внимание: награды всегда соотносятся друг с другом, и я выбрал произвольные цифры, но их можно изменить, если результаты не соответствуют желаемым.

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

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

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

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

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

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

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

Например, если бумага прошла от A к B к M, который бросил ее в корзину, M должен быть наказан больше всего, затем B за передачу ему и, наконец, лицо A, которое все еще участвует в окончательном результате, но в меньшей степени, чем M или B. Это также подчеркивает, что чем больше времени требуется (в зависимости от количества шагов), чтобы начать в состоянии и достичь корзины, тем меньше будет либо вознаграждено, либо наказано, но будет накапливаться отрицательное вознаграждение за выполнение большего количества шагов.

Применение модели к нашему примеру

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

Для любого алгоритма нам сначала нужно инициализировать функцию значения состояния, V (s), и мы решили установить для каждого из них значение 0, как показано ниже.

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

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

Сначала мы применяем временную разницу 0, простейшую из наших моделей и первые три обновления значений следующие:

Так как же они были рассчитаны? Поскольку наш пример небольшой, мы можем показать расчеты вручную.

Итак, что мы можем наблюдать на этой ранней стадии? Во-первых, использование TD (0) кажется несправедливым для некоторых государств, например, для человека D, который на данном этапе ничего не получил от бумаги, попадающей в корзину два раза из трех. На их обновление повлияла только ценность следующего этапа, но это подчеркивает, как положительные и отрицательные награды распространяются наружу от угла к состояниям.

По мере того, как мы снимаем больше эпизодов, положительные и отрицательные конечные награды будут распространяться все дальше и дальше по всем штатам. Это примерно показано на диаграмме ниже, где мы можем видеть, что два эпизода, приведшие к положительному результату, влияют на значение состояний Учитель и G, тогда как единственный отрицательный эпизод наказывает человека М.

Чтобы показать это, мы можем попробовать больше серий. Если мы повторим те же три уже заданных пути, мы получим следующую функцию значения состояния:

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

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

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

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

Во-вторых, значение состояния человека M меняется от -0,03 до -0,51 (приблизительно) после эпизодов, и нам нужно выяснить, почему это происходит. Это вызвано нашей скоростью обучения, альфа. На данный момент мы только ввели наши параметры (альфа скорости обучения и гамма ставки дисконтирования), но не объяснили подробно, как они повлияют на результаты.

Большая скорость обучения может привести к колебаниям результатов, но, наоборот, она не должна быть настолько маленькой, чтобы сходимость могла длиться вечно. Это показано далее на рисунке ниже, который демонстрирует общие V (s) для каждого эпизода, и мы можем ясно видеть, как, несмотря на общую тенденцию к увеличению, он расходится взад и вперед между эпизодами. Еще одно хорошее объяснение скорости обучения:

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

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



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

Точно так же мы также должны иметь нашу ставку дисконтирования в диапазоне от 0 до 1, часто принимается близким к 0,9. Фактор дисконтирования говорит нам, насколько важны вознаграждения в будущем; большое число указывает на то, что они будут считаться важными, тогда как при приближении к 0 модель будет все меньше и меньше учитывать будущие шаги.

Имея в виду оба этих фактора, мы можем изменить альфа с 0,5 до 0,2 и гамму с 0,5 до 0,9 и достичь следующих результатов:

Поскольку наша скорость обучения теперь намного меньше, для изучения модели требуется больше времени, и значения, как правило, меньше. Наиболее заметно это для учителя, что явно является лучшим состоянием. Однако этот компромисс для увеличения времени вычислений означает, что наше значение M больше не колеблется в той степени, в которой они были раньше. Теперь мы можем видеть это на диаграмме ниже для суммы V (s) после наших обновленных параметров. Хотя это не идеально гладко, общее V (s) медленно увеличивается с гораздо более плавной скоростью, чем раньше, и, похоже, сходится, как мы хотели бы, но для этого требуется примерно 75 эпизодов.

Изменение результата цели

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

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

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

Заключение

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

Надеюсь, вам понравилось читать эту статью, если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже.

Спасибо

Стерлингов