День- я

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

Однако прошлой ночью я, наконец, решил попробовать, и сколько бы времени это ни заняло, я выучу RL. Установка Linux Ubuntu продолжается, поскольку я пишу эту статью, потому что OpenAI Gym требует платформы Linux. Позже я напишу блог о том, как сделать вашу систему готовой к RL, а пока я начну с этой серии статей по RL, в которой буду писать все, что узнаю.

Наконец, прежде чем я начну о RL, позвольте мне быстро упомянуть некоторые предпосылки, которые я считаю обязательными:

a) Предварительные знания в области машинного обучения. Вы можете пройти знаменитый курс машинного обучения CS 230 / Эндрю Н.Г. на Coursera или любой аналогичный курс.

b) Базовое понимание библиотек Python, особенно TensorFlow** и NumPy

в) Никогда не сдаваться.

d) Необязательно: документальный фильм AlphaGo на Netflix. Этот документальный фильм поможет вам узнать правду о практическом применении RL, а также о том, что такое Deep Mind и кто такой Дэвид Сильвер.

e) Любопытство узнать больше.

* Безумно восхищаюсь его интеллектом, и пока я буду писать эту статью, я планирую еще раз пройтись по его лекциям. Может интуитивно понять больше о RL.

** Я также начал серию статей о TensorFlow с нуля, в которой я буду объяснять (с помощью кодов) практическое использование TF в приложениях с самых основ.

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

RL считается четвертой парадигмой искусственного интеллекта после контролируемого, полуконтролируемого и неконтролируемого машинного обучения. По мнению многих экспертов, RL — это настоящий ИИ». RL — это парадигма обучения, связанная с обучением управлению системой с целью максимизации численного показателя производительности, выражающего долгосрочную цель», — написал Чаба Шпесвари в своей книге «Алгоритмы обучения с подкреплением». RL — это наука о принятии решений, что делает ее такой общей и интересной.

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

Если вы не поняли интуитивного смысла таких терминов, как Вознаграждение, Окружающая среда, Действия, тогда сидите смирно, простая диаграмма вместе с аналогией идет к вам:

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

Например, алгоритм RL используется в кухонной комнате. Как указано на рисунке выше, задача Агента состоит в том, чтобы как можно скорее избавиться (путем мытья и правильной укладки посуды) от Блюд и будет получать очко каждый раз, когда на прилавке не будет тарелок. Пространством действия Агента может быть Совместное движение. И информация, которую Агент может получить, это изображение кухни с камеры. Может получить +1 награду, если на прилавке нет блюд. В этом сценарии будет отсроченная награда — посуда будет стоять на прилавке долгое время, если только он просто не сметает всю посуду со прилавка и не разбивает ее об пол. Так что в этом сценарии ожидаемая награда придет через долгое время.

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

Чем RL отличается от других алгоритмов ML? Надзорного органа нет. Это скорее парадигма проб и ошибок. Есть только сигналы вознаграждения. И обратная связь о хорошем/плохом решении может прийти не сразу. Это может быть задержано на несколько шагов. Таким образом, в RL, когда принимается решение, только после нескольких шагов решение может быть оценено как хорошее/плохое. Если вы смотрели документальный фильм Alpha Go, то наверняка интуитивно понимаете эту концепцию. Ссылка: Когда алгоритм делает какие-то странные ходы (например, Ход 37), и все сомневаются в силе Alpha Go, но он в конце концов заканчивается. Парадигма i.i.d не применима к RL, поскольку агент действует в реальном мире. Когда агент совершает действие, данные, которые он получает, значительно изменяются. В отличие от других алгоритмов, RL основан на гипотезе вознаграждения ( утверждающей, чтовсе цели могут быть описаны путем максимизации ожидаемого совокупного вознаграждения).

Теперь История будет состоять из предыдущих действий, предпринятых Агентом, и Наград, которые он получает после каждого Наблюдения. strong>Агент выбирает все Действия на основе истории. ПоэтомуИстория ht= (a1,o1,r1…….at,ot,rt) —последовательность наблюдений, действий и наград. Это тоже марковская природа. Вознаграждение rt — это скалярный сигнал обратной связи, который показывает, насколько хорошо/плохо работает агент на шаге t. Цель агента — выбрать действия, которые максимизируют совокупное вознаграждение (максимальное вознаграждение в конце).

Говоря о пространстве состояний, это будет функция истории.

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

State st – это сводка, используемая для определения дальнейших действий. На каждом временном шаге t мы можем построить состояние как функцию истории на шаге t. Это Марков, если вероятность следующего состояния, учитывая предыдущее состояние и действие предыдущего состояния, будет равна вероятности следующего состояния, учитывая историю и действие предыдущего состояния.

<p(st+1|st,at) = p(st+1|ht,at) >

Существует три различных типа состояний:

  • Состояние среды: информация используется в среде, чтобы определить, что произойдет дальше с точки зрения среды. Состояние среды обычно не видно агенту. Алгоритмы не могут зависеть от Env. Состояние, но состояние среды можно использовать для создания лучших алгоритмов. И даже если в определенных сценариях информация может быть видна алгоритму, это не всегда приводит к правильным решениям, которые может принять алгоритм. По определению, это марковская природа.
  • Состояние агента: это внутреннее представление агента. Как набор чисел, живущих внутри агента. Вся информация, хранящаяся в агенте, может быть использована для выбора следующего действия. Это то состояние, о котором мы будем подробно говорить в этой серии. Это может быть любая функция истории, st = f(ht).
  • Информационное состояние/состояние Маркова: Содержит всю информацию из истории. Он основан на свойстве Маркова, упомянутом выше. [Свойство Маркова говорит, что вероятность следующего состояния при данном текущем состоянии = вероятность следующего состояния при всех предыдущих состояниях, т.е. все предыдущие состояния, кроме текущего состояния, могут быть уничтожены, и все же характеристика будущего останется прежней]

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

  • Если текущее наблюдение является состоянием, то используется Марковский процесс принятия решений.
  • Частично наблюдаемый марковский процесс принятия решений POMDP: если он рассматривает мир как частично наблюдаемый, то состояние агента не будет таким же, как состояние мира. ТАКИМ ОБРАЗОМ, он будет рассматривать вещи и убеждения о состоянии мира (предприняты предыдущие действия и получены наблюдения), прежде чем предпринимать какие-либо действия. Пример: RNN.

Бандиты — это простейшая версия марковского процесса принятия решений (MDP) в том смысле, что действия, предпринятые в настоящем, не повлияют на следующее наблюдение.

В сценарии марковских процессов принятия решений MDP и POMDP действие влияет на предстоящие наблюдения. Например, продукт рекомендуется порталу онлайн-покупок, и эта рекомендация может изменить будущие действия клиента при совершении покупок.

Как меняется мир? Может быть два возможных способа: детерминированный или стохастический. Детерминистический означает, что (учитывая) историю и действие будет только одно наблюдение и вознаграждение. Стохастический означает, что (учитывая) историю и действия, может быть несколько наблюдений и вознаграждений.

Компоненты алгоритма RL

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

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

c) Функция ценности: она в основном определяет, какое вознаграждение алгоритм получает сейчас по сравнению с будущим, взвешивая, о чем больше заботиться: о немедленном вознаграждении или о долгосрочном вознаграждении. Взвешивание осуществляется с помощью Коэффициента дисконтирования [Гамма], который находится в диапазоне от 0 до 1. Он помогает нам количественно оценить, насколько хорошими или плохими являются состояния и действия. [Гамма] = 0 означает, что нас интересует только немедленное вознаграждение, а не долгосрочное вознаграждение.

Когда будут вручены награды? r(s) — вознаграждение происходит за текущее состояние, в котором находится агент, r(s,a) — когда вы находитесь в состоянии и выбрали определенное действие, агент получает вознаграждение, а затем происходит переход к следующему этапу, и r(sa,s')-значающий агент не может видеть вознаграждение до перехода на следующий этап. Чаще всего используется r(s,a)

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

Использованная литература :