Как хранить состояния в таблице Q при обучении с подкреплением Q-learning?
Для модели обучения с подкреплением есть таблица Q из n_states (число состояний) строк и n_action (число действий) столбцов. Как я поняла, выбор действия происходит следующим образом:
epsilon = 0.9 # шанс выбрать случайное действие
# Выбираем случайное действие, пока неопределенность велика (таблица мало заполнена)
if np.random.uniform(0, 1) < epsilon:
action = ... # случайное действие
else:
action = np.argmax(Q[state, :]) # лучшее действие, выбранное по таблице Q из строки текущего состояния
Если состояние представлено не числом, а вектором, нужно ли создать словарь состояний и их индексов и хранить в Q индекс состояния?
Например, состояние 1 : [0, 0, 1, 0.3] и в таблице Q строка под номером 1 соответствует этому состоянию. Аналогично с действиями.
Если состояний достаточно много (10^8), такой метод подойдет? Если нет, то как правильно это организовать?
Источник: Stack Overflow на русском