Введение в Q-Learning: обучение с подкреплением

vvedenie v q learning obuchenie s podkrepleniem?v=1656547223

за ADL

0J2IXJV6jqeFTezt6DpHYTA27Qme0zkr3MU6
Фото Даниэля Чунга на Unsplash.

Эта статья является второй частью моей серии «Глубокое обучение с подкреплением». Полная серия будет доступна как на Medium, так и видео на моем канале YouTube.

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

Q-обучение – это алгоритм обучения, основанный на ценностях в обучении с подкреплением. В этой статье мы узнаем о Q-Learning и его деталях:

  • Что такое Q-Learning?
  • Математика по Q-Learning
  • Реализация с помощью python

Q-Learning – упрощенный обзор

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

Ниже приведена система оценки/вознаграждения:

  1. Робот теряет 1 балл на каждом шагу. Это делается для того, чтобы робот прошел кратчайший путь и как можно скорее достиг цели.
  2. Если робот наступает на мину, потеря очков составляет 100 и игра заканчивается.
  3. Если робот получает силу ⚡️, он получает 1 балл.
  4. Если робот достигает конечной цели, робот получает 100 баллов.

Теперь очевидный вопрос: Как мы научим работу добиваться конечной цели кратчайшим путем, не наступая на мину?

3JXI06jyHegMS1Yx8rhIq64gkYwSTM7ZhD25

Итак, как нам это решить?

Представляем Q-Table

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

CcNuUwGnpHhRKkERqJJ6xl7N2W8jcl1yVdE8

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

Итак, давайте смоделируем эту среду в нашей Q-таблице.

В Q-таблице столбцы – это действия, а строки – состояния.

AjVvggEquHgsnMN8i4N35AMfx53vZtELEL-l

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

Но вопросы таковы:

  • Как вычислить значение Q-таблицы?
  • Доступны ли значения или предварительно определены?

Чтобы узнать каждое значение Q-таблицы, мы используем Алгоритм Q-Learning.

Математика: алгоритм Q-Learning

Q-функция

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

s39aVodqNAKMTcwuMFlyPSy76kzAmU5idMzk

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

Когда мы начинаем, все значения в Q-таблице равны нулям.

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

Теперь давайте разберемся, как происходит обновление.

Представляем процесс алгоритма Q-обучения

oQPHTmuB6tz7CVy3L05K1NlBmS6L8MUkgOud

Каждая из цветных коробок – это один шаг. Давайте разберемся в каждом из этих шагов подробно.

Шаг 1: инициализация Q-Table

Сначала мы построим Q-таблицу. Существует n столбцов, где n = количество действий. Есть m строк, где m = количество сословий. Мы инициализируем значение 0.

TQ9Wy3guJHUecTf0YA5AuQgB9yVIohgLXKIn
gWnhK5oLqjcQkSzuuT8WgMVOGdCEp68Xvt6F

В нашем примере работа мы имеем четыре действия (a=4) и пять состояний (s=5). Итак, мы построим таблицу с четырьмя столбцами и пятью строчками.

Шаги 2 и 3: выберите и выполните действие

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

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

Теперь в игру вступает концепция разведки и эксплуатации. В данной статье подробнее.

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

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

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

В процессе исследования робот постепенно становится увереннее в оценке Q-значений.

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

k0IARc6DzE3NBl2ugpWkzwLkR9N4HRkpSpjw

Теперь мы можем обновить значение Q для того, чтобы быть в начале и двигаться вправо, используя уравнение Беллмана.

Шаги 4 и 5: оценка

Теперь мы выполнили действие и наблюдали за результатом и вознаграждением. Нам необходимо обновить функцию Q(s,a).

TnN7ys7VGKoDszzv3WDnr5H8txOj3KKQ0G8o

В случае работы, чтобы повторить структуру оценки/вознаграждения:

  • мощность = +1
  • Шахта = -100
  • конец = +100
EpQDzt7lCbmFyMVUzNGaPam3WCYNuD1-hVxu
xQtpQAhBocPC46-f0GRHDOK3ybrz4ZasaDo4

Мы будем повторять это снова и снова, пока обучение не будет остановлено. Таким образом, Q-Table будет обновлен.

Реализация Q-Learning на Python

Концепция и реализация кода разъясняются в моем видео.

Подпишитесь на мой канал YouTube, чтобы получить больше видео AI: ADL .

Наконец… давайте подытожим

  • Q-Learning — алгоритм обучения с подкреплением на основе ценностей, который используется для поиска оптимальной политики выбора действий с помощью функции Q.
  • Наша цель – максимизировать значение функции Q.
  • Таблица Q помогает нам найти лучшее действие для каждого состояния.
  • Это помогает максимизировать ожидаемое вознаграждение, выбирая наилучшее из всех возможных действий.
  • Q(состояние, действие) возвращает ожидаемое будущее вознаграждение за это действие в этом состоянии.
  • Эту функцию можно оценить с помощью Q-Learning, который итеративно обновляет Q(s,a) с помощью Уравнение Беллмана.
  • Сначала мы исследуем среду и обновляем Q-Table. Когда Q-Table будет готова, агент начнет использовать среду и начнет совершать лучшие действия.

В следующий раз мы поработаем над примером глубокого Q-learning.

До тех пор наслаждайтесь AI?

Важно: Как уже было сказано, эта статья является второй частью моей серии «Глубокое обучение с подкреплением». Полная серия будет доступна как в статьях Medium, так и в видео на моем канале YouTube.

Если вам понравилась моя статья, пожалуйста, нажмите кнопку ? тo помогите мне оставаться мотивированным писать статьи. Пожалуйста, следите за мной на Мedium и другие социальные сети:

Dxy5hJfhxEP5eWOBqW6QOqH0QgjIU04PD6rQ
d8UR8YDfmLtfDokKlQb32-prgyUUEWt3-glP
qPgqeEBS0ugejKsKGGHD3KpoyYyGEHytVENe

Если у вас возникли вопросы, пожалуйста, сообщите мне в комментарии ниже или на Twitter.

Подпишитесь на мой канал YouTube, чтобы получить больше технических видео.

Добавить комментарий

Ваш адрес email не будет опубликован.