Введение

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

Прежде всего, мы должны знать, что «Q» в Q-Learning означает «качество». Он определяет действия, предпринимаемые нашим агентом, и помогает обеспечить максимальное вознаграждение / отдачу, когда агент действует. Основная цель RL - максимизировать вознаграждение, получаемое агентом, поскольку это поможет в построении успешной модели, способной достичь поставленных целей. Q-Learning - это основанный на ценностях алгоритм RL, разработанный для максимизации этих вознаграждений.

Как это работает?

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

Действие, предпринимаемое агентом, может быть либо эксплуатацией, либо исследованием на основе предоставленного нами значения эпсилон (ε). Эпсилон-значение известно как скорость исследования, которая инициализируется значением от 0 до 0,1.

Разведка и эксплуатация - это действия, предпринимаемые агентом на основе значения ε.

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

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

После каждого предпринятого действия значение Q должно обновляться в таблице, известной как Q-матрица.

Алгоритм

Шаги, необходимые для создания Q-таблицы, следующие:

  • Инициализация таблицы.
  • Выберите действие, которое должен выполнить агент.
  • Агент выполняет действие, и мы измеряем вознаграждение / штраф за это действие.
  • Обновите таблицу, используя уравнение Беллмана.

Теперь мы рассмотрим реализацию вместе с пошаговыми фрагментами кода NumPy.

1. Инициализация таблицы:

Давайте инициализируем нашу Q-таблицу нулем.

2. Выберите действие, которое должен выполнить агент:

Действия в Q-обучении принимаются на основе значения коэффициента исследования, лучше обозначенного эпсилон (ε). Значение epsilon определяет, является ли действие исследованием или эксплуатацией. Мы устанавливаем значение ε в соответствии с тем, насколько мы хотим, чтобы наш агент исследовал.

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

3. Агент выполняет действие, и мы измеряем вознаграждение / штраф за это действие:

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

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

4. Обновите таблицу с помощью уравнения Беллмана:

Первое уравнение, которое я изучил в RL, - это уравнение Беллмана. Это окончательное решение для оценки значений Q-таблицы, и поэтому очень важно понимать и знать все термины в ней.

Здесь представлены два новых термина:

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

Заключение

Итак, мы подошли к базовому пониманию Q-обучения с точки зрения новичка. Это один из основных строительных блоков RL. Каждый должен знать это, прежде чем углубляться в область RL. Приведенная выше структура является базовой структурой алгоритма и может соответственно использоваться на любом агенте для наблюдения за его состоянием и действием. Но, как мы знаем, даже в совершенных теориях есть лазейки, и алгоритм Q-обучения не исключение. Следовательно, есть определенные случаи, когда это не удается. Если наше окружение или пространство для действий велико, будет создано слишком много возможных результатов. В результате обслуживание Q-таблицы становится очень трудным. Дальнейшие исследования глубокого Q-обучения (DQN) улучшили этот алгоритм. Кроме того, это продвинулось дальше до Double DQN, Prioritized Experience Replay, Dueling DQN и Deep Recurrent Q-Learning.

Ссылки:

Чтобы получить полный код, посетите:

Https://www.geeksforgeeks.org/q-learning-in-python/