Я пытался из PyBrains лабиринте примерPyBrains Q-Learning лабиринт пример. Государственные ценности и глобальная политика
моя установка:
envmatrix = [[...]]
env = Maze(envmatrix, (1, 8))
task = MDPMazeTask(env)
table = ActionValueTable(states_nr, actions_nr)
table.initialize(0.)
learner = Q()
agent = LearningAgent(table, learner)
experiment = Experiment(task, agent)
for i in range(1000):
experiment.doInteractions(N)
agent.learn()
agent.reset()
Теперь, я не уверен в результатах, которые я получаю
Нижний правый угол (1, 8) является поглощающим состоянием
Я назначил дополнительное наказание (1, 7) в mdp.py:
def getReward(self):
""" compute and return the current reward (i.e. corresponding to the last action performed) """
if self.env.goal == self.env.perseus:
self.env.reset()
reward = 1
elif self.env.perseus == (1,7):
reward = -1000
else:
reward = 0
return reward
Теперь, я не понимаю, как после 1000 трасс и 200 взаимодействия во время каждого запуска, агент считает, что наказание мое состояние хорошее состояние (вы можете увидеть квадрат белый)
Я хотел бы чтобы увидеть значения для каждого состояния и политики после окончательного прогона. Как мне это сделать? Я обнаружил, что эта строка table.params.reshape(81,4).max(1).reshape(9,9)
возвращает некоторые значения, но я не уверен, соответствуют ли они значениям функции значения