Как вы знаете, машинное обучение - это подкатегория ИИ. Точно так же различные алгоритмы обучения подпадают под машинное обучение. В этой серии статей я собираюсь осветить основы обучения с подкреплением (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. Это считается одним из важных гиперпараметров.
- Чем больше значение гаммы, тем больше внимания агенту уделяется долгосрочному вознаграждению.
- С другой стороны, чем меньше значение, тем больше агент заботится о ближайшем вознаграждении.
Поэтому важно настроить значение гаммы таким образом, чтобы наша цель - максимизировать будущую дисконтированную кумулятивную награду
Подходы к обучению с подкреплением
Ниже приведены подходы, которые широко используются в обучении с подкреплением.
На основе значений (пары состояние-действие). При подходе, основанном на значениях, наша цель - максимизировать нашу функцию значения V (s). Проанализируйте полезную ценность, необходимую для достижения определенного состояния или выполнения определенного действия (например, изучения ценностей).
Из всех функций значения мы возьмем максимальное значение пар состояние-действие.
На основе политик: в RL на основе политик мы должны напрямую оптимизировать функцию политики π (s), без использования функции значения. Разработайте оптимальную политику напрямую, чтобы максимизировать вознаграждение. Формально политика - это отображение состояний на вероятности выбора каждого возможного действия. Если агент следует политике π в момент t, то π (a | s) - это вероятность того, что A = a, если S = s.
У нас есть два типа Политики:
- Детерминированный: политика в определенном состоянии всегда будет возвращать одно и то же действие. Одно и то же действие в одном и том же состоянии приводит к одному и тому же следующему состоянию для всех временных шагов.
- Стохастик: выводит вероятность распределения по действиям . Агент выполняет действие в определенном состоянии, результирующее следующее состояние среды обязательно все время одно и то же, эти неопределенности затрудняют поиск оптимальной политики.
Монте-Карло против обучения TD:
Метод Монте-Карло в обучении с подкреплением, при котором агент взаимодействует с окружающей средой, но получает обратную связь от среды в конце эпизода. В отличие от функции значения, при которой он получает обратную связь на каждом временном шаге, чтобы понять, насколько хорошо текущее состояние.
В этом методе Монте-Карло агент генерирует опытные образцы, и, в конце концов, вычисляется средний доход, который мы используем для понимания значений состояния или состояния-действия. Это можно использовать только в эпизодической задаче.
Обучение TD (временная разница), с другой стороны, не будет ждать до конца эпизода, чтобы обновить оценку максимального ожидаемого будущего вознаграждения: он обновит свою оценку значения V для не -терминальные состояния St, возникающие в этом опыте.
Этот метод называется TD (0) или одношаговым TD (обновлять функцию значения после каждого отдельного шага).
Модельное обучение с подкреплением или без модельного обучения
В обучении на основе моделей агент использует ранее изученную модель для выполнения поставленной задачи, тогда как при обучении без модели агент просто полагается на некоторые пробные и - ошибка при выборе действия. Q-Learning считается обучением без моделей, поскольку оно учится на каждом опыте.
Таксономия обучения с подкреплением
Глядя на приведенные выше изображения, я мог бы сделать вывод, что есть различные области для изучения и исследования в рамках алгоритмов обучения с подкреплением. В этой серии руководств, как новичок, я буду играть с концепциями безмодельных алгоритмов.
В безмодельном алгоритме есть два деления, которые
- Оптимизация политики
- Q обучение
Сначала я хотел бы сосредоточиться на Q-обучении, а затем глубже погрузиться в Deep Q Learning.
Другие статьи
Ура !!! Вы дошли до конца моего первого блога. Спасибо, что прочитали это, и я надеюсь, что вы получили некоторое общее представление о том, что такое обучение с подкреплением, а также некоторые подробности о каждом термине и терминологии.
Проверьте свои базовые знания с помощью приведенного ниже вопроса
- Какова основная идея, из которой агенты узнают о своих действиях?
(окружение, награды)
2. Чем выше значение гаммы, тем больше заботит агент?
(долгосрочное вознаграждение, краткосрочное вознаграждение,)
3. С помощью какой из следующих методологий агент изучает среду методом проб и ошибок?
(На основе модели, без модели, обучение методом TD, Монте-Карло)
4. Какой метод используется для эпизодических задач?
(Обучение разнице во времени, метод Монте-Карло)
Спасибо, что прочитали мою статью. Пожалуйста, напишите мне на [email protected] с любыми предложениями и вопросами.
Для рабочего кода для двух других моих серий я хотел бы, чтобы вы посетили мой GitHub