Обучение с подкреплением Pybrain; измерение состояния

Я работаю над проектом по объединению обучения с подкреплением с симуляцией светофора с использованием пакета Pybrain. Я прочитал руководство и реализовал свои собственные подклассы Environment и Task. Я использую ActionValueNetwork в качестве контроллера, потому что я хочу, чтобы мое состояние было вектором с непрерывными значениями, чтобы он мог содержать информацию, например, о количестве автомобилей, ожидающих на каждой полосе, общем времени ожидания на полосу и многом другом.

Я установил входные размеры ActionValueNetwork на размеры моего вектора состояния, что наводит на мысль, что можно использовать векторы в качестве переменных состояния. Когда я использую Q-Learner или SARSA, код сначала работает нормально, но я получаю сообщение об ошибке, как только вызывается метод learn(). Эта функция содержит строку

state = int(state)

и сообщение об ошибке

TypeError: only length-1 arrays can be converted to Python scalars

что наводит на мысль, что можно использовать только состояния скалярной формы.

Поддерживает ли среда обучения с подкреплением pybrain состояния векторной формы? Если да, как я могу изменить свой код так, чтобы он работал с их реализациями Q-обучения или другими методами?


person Isabelle Tan    schedule 23.11.2016    source источник


Ответы (1)


Тем временем я нашел свою проблему. Я использовал Q() учащегося, но должен был использовать NFQ() учащийся, который реализует нейронный алгоритм Q-обучения. Теперь это работает.

person Isabelle Tan    schedule 29.11.2016