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

Применение обучения с подкреплением

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

  • Робототехника для промышленной автоматизации.
  • Планирование бизнес-стратегии
  • Машинное обучение и обработка данных
  • Беспилотные автомобили
  • Управление самолетом и управление движением робота
  • Торговля на фондовом рынке

Архитектура обучения с подкреплением

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

Цель обучения с подкреплением: максимальное увеличение общего количества вознаграждений в будущем.

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

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

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

Компоненты обучения с подкреплением

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

Состояние: текущее состояние агента.

Действие: решение или действие агента по изменению текущего состояния на будущее.

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

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

Награда: обратная связь, предоставляемая агенту после перехода от текущего состояния к будущему. Сигнал обратной связи является скалярным.

Политика: оптимальная политика, сформулированная как стратегия, которую агент принимает при переходе из одного состояния в другое.

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

Марковский процесс принятия решений

Все наши проблемы в обучении с подкреплением можно сформулировать как марковский процесс принятия решений. MDP состоит из набора конечных состояний S среды, набора возможных действий A (s) в каждом состоянии, действительной функции вознаграждения R (s) и модели перехода P (s ’, s | a). Однако в реальных условиях более вероятно, что не хватает каких-либо предварительных знаний о динамике окружающей среды.

Следовательно, MDP и агент вместе создают последовательность или траекторию, которая начинается следующим образом:

S0, A0, R1, S1, A1, R2, S2, A2, R3,…..

Вышеупомянутая функция дает нам вероятность будущего вознаграждения с условием, что мы предпримем определенное действие 'a' в состоянии 's' для перехода в состояние s ', получив награду

Иллюстрация, чтобы лучше понять, как работает алгоритм обучения с подкреплением.

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

Действия, которые может предпринять агент: Двигаться влево. Двигайтесь вправо, двигайтесь вперед и назад. Состояния - это наблюдение за окружающей средой в этом примере, позиция агента - это состояние. Итак, теперь в нашей среде 16 состояний. Мы можем сформулировать награду. если агент упадет в яму, игра будет окончена, и награда будет -1, а достижение цели - +1.

  • Наш агент получает состояние S0 из среды (в нашем случае мы получаем первую позицию нашего агента (состояние) из Frozen Lake (среда))
  • На основе этого состояния S0 агент выполняет действие A0 (наш агент переместится влево)
  • Среда переходит в новое состояние S1 (новый фрейм)
  • Среда дает агенту награду R1 (не ступая на лед: +1)

Выходные данные цикла RL → (Состояния, Действия, Награды)

Основная цель - максимизировать ожидаемое совокупное вознаграждение.

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

  1. Чем больше значение гаммы, тем больше внимания агенту уделяется долгосрочному вознаграждению.
  2. С другой стороны, чем меньше значение, тем больше агент заботится о ближайшем вознаграждении.

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

Подходы к обучению с подкреплением

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

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

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

На основе политик: в RL на основе политик мы должны напрямую оптимизировать функцию политики π (s), без использования функции значения. Разработайте оптимальную политику напрямую, чтобы максимизировать вознаграждение. Формально политика - это отображение состояний на вероятности выбора каждого возможного действия. Если агент следует политике π в момент t, то π (a | s) - это вероятность того, что A = a, если S = ​​s.

У нас есть два типа Политики:

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

Монте-Карло против обучения TD:

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

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

Обучение TD (временная разница), с другой стороны, не будет ждать до конца эпизода, чтобы обновить оценку максимального ожидаемого будущего вознаграждения: он обновит свою оценку значения V для не -терминальные состояния St, возникающие в этом опыте.

Этот метод называется TD (0) или одношаговым TD (обновлять функцию значения после каждого отдельного шага).

Модельное обучение с подкреплением или без модельного обучения

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

Таксономия обучения с подкреплением

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

В безмодельном алгоритме есть два деления, которые

  1. Оптимизация политики
  2. Q обучение

Сначала я хотел бы сосредоточиться на Q-обучении, а затем глубже погрузиться в Deep Q Learning.

Другие статьи

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

Проверьте свои базовые знания с помощью приведенного ниже вопроса

  1. Какова основная идея, из которой агенты узнают о своих действиях?

(окружение, награды)

2. Чем выше значение гаммы, тем больше заботит агент?

(долгосрочное вознаграждение, краткосрочное вознаграждение,)

3. С помощью какой из следующих методологий агент изучает среду методом проб и ошибок?

(На основе модели, без модели, обучение методом TD, Монте-Карло)

4. Какой метод используется для эпизодических задач?

(Обучение разнице во времени, метод Монте-Карло)

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

Для рабочего кода для двух других моих серий я хотел бы, чтобы вы посетили мой GitHub