keras_rl DQN agent - все политики select_action () возвращают значение 0 или 1 - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь настроить проект обучения с подкреплением, используя Gym & kears_rl.

Описание:

Учитывая числа в диапазоне (100, 200), я хочуагент, чтобы предупредить меня, когда число близко к пределам, скажем, между 0%-10% и 90%-100% квантилей.

Награда:

образец в квантиле(0, 0,1), вознаграждение составляет (+1)

выборка в квантиле (0,1, 0,9), вознаграждение составляет (-1)

образец в квантиле (0,9, 1), вознаграждение составляет(+1)

Агент должен изучить предельные значения 10% и 90%.

low = np.array([100])
high = np.array([200])
self.action_space = spaces.Box(low=low, high=high, dtype=np.intt32)
self.observation_space = spaces.Box(low=low, high=high, dtype=np.int32)

main.py info:

if __name__ == '__main__':
        env = Env(max_steps=100)

        nb_actions = env.action_space.shape[0]  # equal to 100

        model = Sequential()
        model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
        model.add(Dense(8, activation='relu'))
        model.add(Dense(8, activation='relu'))
        model.add(Dense(2, activation='softmax'))

        memory = SequentialMemory(limit=50000, window_length=1)
        policy = BoltzmannQPolicy()

        # Create DQN agent
        dqn = DQNAgent(model=env.model,
                       memory=memory,
                       policy=policy,
                       nb_actions=nb_actions,
                       nb_steps_warmup=10,
                       target_model_update=1e-2)

        # Compile the DQN agent
        dqn.compile(Adam(lr=1e-3), metrics=['mae'])

        # Okay, now it's time to learn something!
        dqn.fit(env, nb_steps=50000, visualize=False, verbose=1)

Вопросы \ проблемы:

В функции соответствия (rl / core.py: 169) действие I получается равным нулю.оно должно быть между [100, 200].Это почему?Я ожидаю, что действие будет внутри action_space, но я вижу, что все политики возвращают значение 0 или 1. Как я предполагаю использовать значение в функции env.step ()?

мой код основан наследующие примеры:

OpenAI-Gym cartpole.py

keras_rl dqn_cartpole.py

OpenAI-Gymhottercolder.py environment

Любая помощь очень ценится.

Спасибо.

...