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

Что такое “Q”?

Значение “q” в q-обучении означает качество. Качество для данной ситуации говорит о том, насколько полезно данное мероприятие для увеличения некоторого вознаграждения в будущем.

Сделайте q-таблицу

В момент, когда выполняется q-обучение, мы делаем то, что называется q-таблицей или рамкой, которая преследует состояние [состояние, действие], и мы инстинируем наши качества до нуля. В этот момент мы обновляем и сохраняем наши q-значения после сцены. Эта q-таблица превращается в справочную таблицу, в которой наш специалист выбирает наилучшее действие, зависящее от q-оценки.

импорт numpy как np

# Введите качества q-таблицы в 0.

Q = np.zeros((state_size, action_size)))

Q-обучение и приготовление пищи

Последующий этап – только для того, чтобы специалист соединился с землей и обновил соответствие активности состояния в нашем q-таблице Q[состояние, действие].

Делать ход: Расследование или приключение

Оператор, связанный с землей 1 из 2 различных способов. Первый – использовать q-таблицу как источник перспективы и просматривать каждую отдельную воображаемую активность для данного состояния. Оператор в этот момент выбирает деятельность, зависящую от максимальной оценки этой деятельности. Это называется неправильным использованием, так как мы используем доступные нам данные, чтобы сделать выбор.

Последующий способ сделать шаг – действовать бессистемно. Это называется расследованием. Вместо того, чтобы выбирать виды деятельности, зависящие от максимального будущего вознаграждения, мы выбираем деятельность произвольно. Бессистемность действий имеет большое значение, поскольку позволяет специалисту провести расследование и найти новые выражения, которые, как правило, не могут быть выбраны в ходе процедуры ненадлежащего использования. Вы можете настроить расследование/неправомерное использование, используя epsilon (ε) и установив оценку того, насколько регулярно вам нужно расследовать, в сравнении со злоупотреблением. Вот неприятный код, который будет зависеть от того, как устроено состояние и пространство деятельности.

произвольный импорт

# Установите процент, который вам нужно расследовать

эпсилон = 0,2

в случае, если random.uniform(0, 1) <эпсилон:

“””

Расследуйте: выберите произвольную деятельность

“””

Иначе:

“””

Усилия: выбрать деятельность с максимальным уважением (будущее вознаграждение).

“””

Освежающий q-таблетку

Обновления происходят после каждой прогрессии или активности и закрываются по окончании сцены. Сделано для этой ситуации подразумевает прибытие в какую-либо конечную точку оператора. Терминальное состояние, например, может быть как угодно похоже на то, что он пришел на страницу оформления заказа, пришел к финишу какой-то игры, закончил какую-то идеальную цель и так далее. Специалист не будет много адаптировать после одиночной сцены, однако неизбежно при достаточном исследовании (шаги и сцены) она будет сочетать и знакомиться с идеальными q-квадратиками или q-звездой (Q*).

Вот 3 фундаментальных достижения:

Специалист начинает в состоянии (s1) делает ход (a1) и получает награду (r1)

Оператор выбирает активность, ссылаясь на Q-таблицу с наибольшей стоимостью (макс.) ИЛИ произвольно (эпсилон, ε).

Обновление q-значений

Вот основное правило обновления для q-обучения:

# Обновить q esteems

Q[состояние, действие] = Q[состояние, действие] + lr * (компенсация + гамма * np.max(Q[новое_состояние, :]) – Q[состояние, действие])

В приведенном выше обновлении есть два или три фактора, на которые на данный момент мы не ссылались. Происходит то, что мы изменяем наши q-значения в зависимости от различия между ограниченными новыми и старыми качествами. Мы возвращаем новые качества, используя гамму, и изменяем размер нашей прогрессии, используя скорость обучения (lr). Ниже приведены несколько ссылок.

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

Гамма: гамма или γ – это фактор уценки. Он используется для корректировки быстрых и будущих вознаграждений. Из нашего правила обновления выше видно, что мы применяем скидку к будущему вознаграждению. Обычно это значение может быть где-то в диапазоне от 0.8 до 0.99.

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

Max: np.max() использует библиотеку numpy и принимает лимит поступивших вознаграждений и применяет его к вознаграждению за текущее состояние. Это влияет на текущую активность, а также на возможную будущую награду. Это и есть великолепие q-