Python: архивирование данных openAI в тренажерном зале

Я пытаюсь создать индивидуальную среду для обучения с подкреплением с помощью тренажерного зала openAI. Мне нужно представить все возможные значения, которые среда будет видеть в переменной с именем observation_space. Агент может использовать 3 возможных действия под названием action_space

Чтобы быть более конкретным, observation_space - это датчик температуры, который будет видеть возможные диапазоны от 50 до 150 градусов, и я думаю, что могу представить все это следующим образом:

ИЗМЕНИТЬ, у меня был неправильный массив numpy action_space

import numpy as np
action_space = np.array([ 0,  1,  2])
observation_space = np.arange(50,150,1)

Есть ли лучший метод, который я мог бы использовать для observation_space, где я мог бы хранить данные? То есть сделать 20 ячеек 50-55, 55-60, 60-65 и т. Д.

Я думаю, что то, что у меня есть, будет работать, но кажется несколько громоздким ... И я уверен, что есть лучшая практика, поскольку в этом предмете с моей стороны не так много мудрости. Это распечатает таблицу Q:

action_size = action_space.shape[0]
state_size = observation_space.shape[0]

qtable = np.zeros((state_size, action_size))
print(qtable)

person HenryHub    schedule 10.12.2018    source источник


Ответы (1)


На самом деле это не связано с программированием, поэтому, возможно, на stats.stackexchange вы сможете получить более точные ответы. В любом случае, это просто зависит от того, какой точности вы хотите. Думаю, вы хотите изменить температуру (повысить, понизить, не менять) по показаниям датчика. Есть ли большая разница (с точки зрения оптимального действия) между 50 и 51? Если нет, то вы можете дискретизировать пространство состояний каждые 2 градуса. И так далее.

В более общем смысле, поступая так, вы используете то, что в RL называется «функциями». Дискретизация по интервалу пространства состояний называется тайловым кодированием и обычно работает. хорошо.

Если вы новичок в RL, я действительно советую прочитать эту книгу или по крайней мере, главы 1, 3, 4, которые связаны с тем, что вы делаете.

person Simon    schedule 12.12.2018
comment
Спасибо за ответ @simon ... Я прочитаю книгу и изучу кодирование плиток .. Если я перепостю это в обмен статистикой, будет ли сообщение подходящим для этого сайта? … Как вопрос, а также теги и т. Д. ?? Спасибо еще раз.. - person HenryHub; 13.12.2018
comment
Пожалуйста. Вопрос слишком общий, вы можете узнать больше по теме, а затем спросить о неясных вещах. Например, вы можете спросить, когда использовать определенные функции, примеры алгоритмов / задач ... И нет необходимости в коде и его тегах. - person Simon; 13.12.2018
comment
Привет, @simon, если ты не задашь еще один вопрос, и приношу свои извинения за то, что был sort newb .... Можете ли вы сказать мне, что на самом деле строит observation_space = observation_space = np.arange(50,150,1)? Я получаю сообщение об ошибке, что значение 118 выходит за пределы допустимого диапазона, поэтому я только что скорректировал _2 _..., чтобы, надеюсь, учесть эту проблему. Состоит ли таблица Q из одного гигантского массива или матрицы, почти как таблица поиска для действия после завершения обучения? - person HenryHub; 14.12.2018
comment
Np, но немного сложно понять вашу проблему. Отредактируйте вопрос, указав код и ошибку, потому что я не совсем понимаю (у np.arange(50,150,1) 118). - person Simon; 14.12.2018