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

Герой темы этой статьи — Q Learning

Итак, давайте начнем понимать реализацию Q-обучения. Прежде всего, нам нужно узнать об окружающей среде. Здесь у нас есть сетка 5x5, в которой наше такси бежит, чтобы забрать нашего пассажира из выбранного места и доставить его в нужное место. Подводя итог, у нас есть25 возможных мест для такси,четыре (4) пункта назначения и пять (4 + 1) мест для пассажиров.

Итак, наша среда такси имеет 5×5×5×4=500 всего возможных состояний.

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

  1. south
  2. north
  3. east
  4. west
  5. pickup
  6. dropoff

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

  • Есть 4 места (обозначены разными буквами), и ваша задача — забрать пассажира в одном месте и высадить в другом.
  • Вы получаете +20 баллов за успешный переход и теряете 1 балл за каждый временной шаг. Это -1 поможет агенту пройти кратчайшее расстояние, чтобы высадить пассажира.
  • Также существует штраф в 10 баллов за незаконные действия по подъему и высадке.

Из приведенной выше информации мы получили представление о состоянии среды, действиях, наградах.

Компромисс между разведкой и эксплуатацией

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

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

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

Помните, что цель нашего агента RL — максимизировать ожидаемое совокупное вознаграждение.

Это то, что мы называем компромиссом между разведкой и эксплуатацией.

Математика обучения Q

Q-функция использует уравнение Беллмана и принимает два входных параметра: состояние (s) и действие (a).

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

Обучение агента — таблица Q

Q-Table — это просто название простой справочной таблицы, в которой мы рассчитываем максимальные ожидаемые будущие вознаграждения за действия в каждом состоянии. Термин Q называется Качеством.

Q-таблица представляет собой матрицу, в которой у нас есть строка для каждого состояния (500) и столбец для каждого действия (6). Размер нашей Q-таблицы составляет 3000.

  • Сначала он инициализируется 0, а затем значения обновляются после обучения.

  • Начните изучать действия: для каждого состояния выберите любое из всех возможных действий для текущего состояния (S).
  • Переход к следующему состоянию (S’) в результате этого действия (а).
  • Из всех возможных действий из состояния (S’) выберите действие с наивысшим значением Q.
  • Обновите значения Q-таблицы с помощью уравнения.
  • Установите следующее состояние как текущее состояние.
  • Если целевое состояние достигнуто, завершите и повторите процесс.

Гиперпараметры и оптимизации

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

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

  • α: (скорость обучения) должна уменьшаться по мере того, как вы продолжаете накапливать все большую и большую базу знаний. Скорость обучения должна быть в диапазоне 0-1. Чем выше скорость обучения, тем быстрее заменяется новое значение q. Нам нужно оптимизировать его таким образом, чтобы наш агент учился на предыдущих значениях q. Скорость обучения — это инструмент, который можно использовать для определения того, насколько мы сохраняем наши предыдущие знания о нашем опыте, которые необходимо сохранить для наших пар состояние-действие.
  • γ: по мере того, как вы приближаетесь к крайнему сроку, ваши предпочтения в отношении краткосрочного вознаграждения должны увеличиваться, так как вы не будете достаточно долго, чтобы получить долгосрочное вознаграждение, что означает вашу гамму должно уменьшаться.
  • ϵ: по мере разработки нашей стратегии нам требуется меньше исследований и больше эксплуатации, чтобы получить больше пользы от нашей политики, поэтому по мере увеличения количества испытаний эпсилон должен уменьшаться.

Реализация алгоритма Q-обучения

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

Установите среду тренажерного зала openai с помощью приведенной ниже команды.

!pip установить тренажерный зал

Затем нам нужно создать среду такси. На изображении ниже показана команда, как визуализировать нашу среду.

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

  1. Инициализируйте все значения Q в Q-таблице равными 0.
  2. Для каждого временного шага в каждом эпизоде:
  • Выберите действие ( принимая во внимание компромисс между разведкой и эксплуатацией).
  • Наблюдайте за наградой и следующим состоянием.
  • Обновите функцию Q-value ( используя формулу, указанную ниже)

Наше новое значение Q равно взвешенной сумме нашего старого значения и обученного значения, которое представляет собой альфа-скорость обучения. Старое значение в нашем случае равно 0, так как это первый раз, когда агент испытывает эту конкретную пару состояние-действие, и мы умножаем это старое значение на (1-α).

Наше полученное значение — это вознаграждение, которое агент получает за перемещение в определенную позицию из начального состояния, плюс дисконтированная оценка оптимального будущего значения Q для следующей пары состояние-действие (s', a') в момент времени t+1. Затем вся полученная ценность умножается на нашу скорость обучения.

Вышеупомянутый псевдокод реализован с использованием python.

Выводы после экспериментов с окружающей средой

  1. Q-learning – это метод повторения значения, который используется для обновления значения на каждом временном шаге.
  2. Вышеупомянутый алгоритм может быть использован в пространствах дискретной среды.
  3. Важными гиперпараметрами являются альфа (скорость обучения), гамма (коэффициент дисконтирования), значение эпсилон.
  4. Мы используем уравнение Беллмана для обновления Q-значения

Проверьте свои знания, ответив на следующие вопросы

  1. Что делает агент, когда значение эпсилон равно 1?

(исследовать, использовать)

2. Каков диапазон альфа-параметра скорости обучения?

(0–1, 1, 0.5)

3. как рассчитать размер нашей q-таблицы ________________

(размер состояния * действия)

Следующая статья

Ссылки, используемые для реализации Python

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

Спасибо за чтение. Пожалуйста, напишите мне по адресу [email protected] для дальнейших предложений и вопросов.

Удачного обучения!