mean_absolute_error увеличивается в примере с перевернутым маятником - PullRequest
0 голосов
/ 03 ноября 2019

В Keras-rl почему средняя абсолютная ошибка увеличивается во время тренировок?

Я запускаю выпущенный пример перевернутого маятника в Keras. Хотя модель учится держать маятник в вертикальном положении, но Мэй продолжает ухудшаться.

memory = SequentialMemory(limit=100000, window_length=1)
random_process = OrnsteinUhlenbeckProcess(size=nb_actions, theta=.15, mu=0., sigma=.3)
agent = DDPGAgent(nb_actions=nb_actions, actor=actor, critic=critic, critic_action_input=action_input,
                  memory=memory, nb_steps_warmup_critic=100, nb_steps_warmup_actor=100,
                  random_process=random_process, gamma=.99, target_model_update=1e-3)
agent.compile(Adam(lr=.001, clipnorm=1.), metrics=['mae'])

# Okay, now it's time to learn something! We visualize the training here for show, but this
# slows down training quite a lot. You can always safely abort the training prematurely using
# Ctrl + C.
agent.fit(env, nb_steps=50000, visualize=False, verbose=1, nb_max_episode_steps=200)

# After training is done, we save the final weights.
agent.save_weights('ddpg_{}_weights.h5f'.format(ENV_NAME), overwrite=True)

# Finally, evaluate our algorithm for 5 episodes.
agent.test(env, nb_episodes=5, visualize=True, nb_max_episode_steps=200)
Training for 50000 steps ...
Interval 1 (0 steps performed)
10000/10000 [==============================] - 38s - reward: -7.1058      
50 episodes - episode_reward: -1421.160 [-1888.115, -978.887] - loss: 3.058 - mean_absolute_error: 0.449 - mean_q: -33.503

Interval 2 (10000 steps performed)
10000/10000 [==============================] - 38s - reward: -3.5776     
50 episodes - episode_reward: -715.528 [-1495.695, -125.753] - loss: 15.585 - mean_absolute_error: 1.040 - mean_q: -76.986

Interval 3 (20000 steps performed)
10000/10000 [==============================] - 46s - reward: -1.7607     
50 episodes - episode_reward: -352.140 [-1393.487, -1.442] - loss: 21.978 - mean_absolute_error: 1.469 - mean_q: -81.111

Interval 4 (30000 steps performed)
10000/10000 [==============================] - 45s - reward: -0.8089     
50 episodes - episode_reward: -161.782 [-488.330, -4.457] - loss: 20.412 - mean_absolute_error: 1.662 - mean_q: -69.505

Interval 5 (40000 steps performed)
10000/10000 [==============================] - 41s - reward: -1.1314     
done, took 209.826 seconds

Я ожидал, что потери уменьшатся, но вместо этого они увеличатся. Я знаю, что функция подбора в Keras оптимизирует потери mse, но я ожидал, что mae будет вести себя аналогично.

...