Простое Q-обучение|Одномерный мир Сяо Мина (2)

алгоритм
Простое Q-обучение|Одномерный мир Сяо Мина (2)

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

Одномерный мир скорости

В этом мире Сяо Мин может контролировать только свою собственную скорость и может выполнять только следующие три операции над скоростью: увеличить на 1, уменьшить на 1 или оставить без изменений. такпространство действияза:{a1=1,a2=0,a3=1}\{a_1=-1, a_2=0, a_3=1\}

В этот момент, в дополнение к информации о местоположении, Сяо Мин также имеет информацию о скорости, поэтому состояние является двухмерным.st=<xt,vt>s_t=<x_t,v_t>. в,xtx_tдля Сяо Минttположение момента,vtv_tдля Сяо Минttскорость времени. Здесь пространство скоростей Сяо Мина также дискретно, как и пространство его позиций. Без потери общности здесьскорость космосустановить как{v1=3,v2=2,v3=1,v4=0,v5=1,v6=2,v7=3}\{v_1=-3, v_2=-2, v_3=-1, v_4=0, v_5=1, v_6=2, v_7=3\}

Здесь следует отметить, что пространство состояний, которое мы определяем, включает информацию о текущей позиции и скорости. Давайте задумаемся об этом на мгновение, скорость и позиция важны для Сяо Мина в мире скорости. Я попробовал это, просто используя позицию как состояние, функция вознаграждения становитсяr(s)=xr(s)=-|x|, действие Сяо Мина по-прежнему заключается в увеличении или уменьшении скорости на 1 или сохранении трех действий. Наконец, я дал ему большое количество тренировочных раз и обнаружил, что он все еще не может сходиться.Окончательная стратегия заключалась в том, что Сяомин шел от крайней левой точки к середине, продолжал идти сразу после средней точки, а затем шел к влево, когда он достиг крайнего правого, чтобы он пошел от крайнего левого к самому дальнему.Повторите простое гармоническое движение справа, от крайнего правого к крайнему левому, но оно не остановится на среднем камне. Поэтому для мира скорости собственная информация о скорости Сяо Мина очень важна и не может быть добавлена ​​к состоянию. Другими словами, окончательное суждение Сяо Мина об успехе напрямую связано с позицией и скоростью — когда он достигает среднего камня, скорость также равна нулю. То же самое относится и к ускоренному миру в последнем разделе. Когда Сяомин достигает среднего камня, его ускорение и скорость равны нулю. Поэтому в следующем разделе мы будем использовать ускорение, скорость и положение Сяомина в качестве необходимой информации для штат. Это простой мир, и мы можем получить необходимую информацию Сяомину с помощью такого простого анализа. Затем, для очень сложного мира, такого как Сяо Мин, можно получить визуальную информацию, каждый пиксель изображения является частью информации. Однако не все пиксели имеют отношение к текущей задаче. Нам достаточно извлечь из этой слишком богатой информации небольшую часть информации, полезной для задачи в качестве состояния.Вкратце их три: (1) Какая доступная информация выбирается в качестве состояния, важна для эффективности обучения Q-learning и даже влияет на то, может ли оно успешно изучить соответствующую политику. (2) Чем больше информации включено в состояние, тем лучше, слишком много нерелевантной информации уничтожит полезную информацию, что сделает робота неспособным изучить стратегию, содержащуюся в данных. (3) Эффективность реального Q-обучения требует множества мелких хитростей, таких как извлечение признаков, уменьшение размерности, разработка функции вознаграждения и т. д.

В соответствии с комбинационным принципом состояние Сяо Мина имеет в общей сложности21×7=14721\times 7=147Кусок.государственное пространствоЧасть, как показано ниже:S={s1=<x1,v1>,s2=<x2,v1>,...,s147=<x21,v7>}S=\{s_1=<x_1, v_1>, s_2=<x_2, v_1>,...,s_{147}=<x_{21}, v_7>\}

Для ускорения сходимости плотныйфункция вознаграждения:r(s)=xvr(s)=-|x|-|v|, Когда Сяо Мин находится в среднем камне, а скорость равна нулю, награда самая большая.

В настоящее времяQtableQ_{table}за147×3147\times 3матрица.

  • тренироваться
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
  • стратегия использования

Начальное состояние самое левое и скорость наименьшая, т.е.s0=<10,3>s_0=<-10, -3>

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.(xt,vt,at,xt+1,vt+1)(x_t, v_t, a_t, x_{t+1}, v_{t+1}) 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)