В последней статье была представлена одномерная модель мира Сяо Мина, пространство состояний Q-обучения, пространство действий, функция вознаграждения, Q-таблица, формула обновления таблицы Q и формула для определения политики на основе значения Q. Наконец, приведен простейший пример Q-обучения одномерного мира позиций, начиная с настройки его пространства состояний, пространства действий, а также плотных и разреженных функций вознаграждения. Следующие будут продолжать углубляться, GO!
Одномерный мир скорости
В этом мире Сяо Мин может контролировать только свою собственную скорость и может выполнять только следующие три операции над скоростью: увеличить на 1, уменьшить на 1 или оставить без изменений. такпространство действияза:
В этот момент, в дополнение к информации о местоположении, Сяо Мин также имеет информацию о скорости, поэтому состояние является двухмерным.. в,для Сяо Минположение момента,для Сяо Минскорость времени. Здесь пространство скоростей Сяо Мина также дискретно, как и пространство его позиций. Без потери общности здесьскорость космосустановить как
Здесь следует отметить, что пространство состояний, которое мы определяем, включает информацию о текущей позиции и скорости. Давайте задумаемся об этом на мгновение, скорость и позиция важны для Сяо Мина в мире скорости. Я попробовал это, просто используя позицию как состояние, функция вознаграждения становится, действие Сяо Мина по-прежнему заключается в увеличении или уменьшении скорости на 1 или сохранении трех действий. Наконец, я дал ему большое количество тренировочных раз и обнаружил, что он все еще не может сходиться.Окончательная стратегия заключалась в том, что Сяомин шел от крайней левой точки к середине, продолжал идти сразу после средней точки, а затем шел к влево, когда он достиг крайнего правого, чтобы он пошел от крайнего левого к самому дальнему.Повторите простое гармоническое движение справа, от крайнего правого к крайнему левому, но оно не остановится на среднем камне. Поэтому для мира скорости собственная информация о скорости Сяо Мина очень важна и не может быть добавлена к состоянию. Другими словами, окончательное суждение Сяо Мина об успехе напрямую связано с позицией и скоростью — когда он достигает среднего камня, скорость также равна нулю. То же самое относится и к ускоренному миру в последнем разделе. Когда Сяомин достигает среднего камня, его ускорение и скорость равны нулю. Поэтому в следующем разделе мы будем использовать ускорение, скорость и положение Сяомина в качестве необходимой информации для штат. Это простой мир, и мы можем получить необходимую информацию Сяомину с помощью такого простого анализа. Затем, для очень сложного мира, такого как Сяо Мин, можно получить визуальную информацию, каждый пиксель изображения является частью информации. Однако не все пиксели имеют отношение к текущей задаче. Нам достаточно извлечь из этой слишком богатой информации небольшую часть информации, полезной для задачи в качестве состояния.Вкратце их три: (1) Какая доступная информация выбирается в качестве состояния, важна для эффективности обучения Q-learning и даже влияет на то, может ли оно успешно изучить соответствующую политику. (2) Чем больше информации включено в состояние, тем лучше, слишком много нерелевантной информации уничтожит полезную информацию, что сделает робота неспособным изучить стратегию, содержащуюся в данных. (3) Эффективность реального Q-обучения требует множества мелких хитростей, таких как извлечение признаков, уменьшение размерности, разработка функции вознаграждения и т. д.
В соответствии с комбинационным принципом состояние Сяо Мина имеет в общей сложностиКусок.государственное пространствоЧасть, как показано ниже:
Для ускорения сходимости плотныйфункция вознаграждения:, Когда Сяо Мин находится в среднем камне, а скорость равна нулю, награда самая большая.
В настоящее времязаматрица.
- тренироваться
import numpy as np
def model_update(x, v, a):
v = v+a
x = x+v
if v < -3: # 保证速度在区间内[-3, 3]
v = -3
if v> 3:
v = 3
if x < -10: #保证位置在区间内[-10, 10]
x = -10
if x > 10:
x = 10
return x, v
xt = np.random.randint(-9, 10) #随机初始状态
vt = np.random.randint(-2, 3)
Q_table = np.zeros((147, 3)) #初始Q table 中的值全为零
for i in range(50000):
a = np.random.randint(0,3)-1
xt1, vt1 = model_update(xt, vt, a)
r = -abs(xt1)-abs(vt1)
Q_table[(vt+3)*21+xt+10, a+1] = r+0.9*np.max(Q_table[(vt1+3)*21+xt1+10]) # 更新Q table
xt = xt1
vt = vt1
- стратегия использования
Начальное состояние самое левое и скорость наименьшая, т.е.
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
is_ipython = 'inline' in matplotlib.get_backend()
if is_ipython:
from IPython import display
plt.ion()
xt = -10
vt = -3
x = np.arange(-10, 11)
y = np.zeros(21)
for i in range(30):
a = np.argmax(Q_table[(vt+3)*21+xt+10])-1
xt1, vt1 = model_update(xt, vt, a)
# print(xt, vt, a, xt1, vt1)
xt = xt1
vt = vt1
plt.clf()
plt.plot(x, y, 'ob')
plt.plot(0.0, 0.0, 'or')
plt.plot(xt,[0], 'og')
plt.pause(1)
if is_ipython:
display.clear_output(wait=True)
display.display(plt.gcf())
steps. 1.(-10, -3, 1, -10, -2) 2.(-10, -2, 1, -10, -1) 3.(-10, -1, 1, -10, 0) 4.(-10, 0, 1, -9, 1) 5.(-9, 1, 1, -7, 2) 6.(-7, 2, 1, -4, 3) 7.(-4, 3, -1, -2, 2) 8.(-2, 2, -1, -1, 1) 9.(-1, 1, 0, 0, 1) 10.(0, 1, -1, 0, 0) 11.(0, 0, 0, 0, 0)
Динамический график - зеленые точки представляют Сяо Мин Мы обнаружили, что в процессе движения Сяомин от крайней левой точки к средней происходит процесс сначала ускорения, а затем замедления, прыжков через одну сетку, две сетки, три сетки, две сетки и одну сетку. Это показывает, что контроль скорости эффективен, ближе к реальному положению вещей, которое мы видим и любим, сначала ускоряемся и пробегаем мимо, а затем замедляемся. Однако иногда люди недостаточно преуспевают, чтобы остановиться.
Простое Q-обучение|Одномерный мир Сяо Мина (1) Простое Q-обучение|Одномерный мир Сяо Мина (3)