强化学习:为什么重新开始训练后学习的准确性下降?

时间:2019-01-31 13:58:44

标签: deep-learning reinforcement-learning keras-rl

我开发了一个小型强化学习练习。问题是重新开始训练后,训练的准确性大大降低,我对此并不了解。

环境: -我使用了简单的神经元模型keras rl DQNAgent

from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam

from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory

model=createModel_SlotSel_drn_v2(None, env)
#Finally, we configure and compile our agent. You can use every built-in Keras optimizer and  even the metrics!
memory = SequentialMemory(limit=5000000, window_length=1)
policy = BoltzmannQPolicy()

dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=130,
               target_model_update=1e-3, policy=policy)
dqn.compile(Adam(lr=1e-4), metrics=['categorical_accuracy'])

...
h=dqn.fit(env, nb_steps=steps, visualize=False, verbose=1)

我可以精确测量模型的准确性,因此,每执行10k步骤,我都会进行一次测量。开始时,内存为空,权重全为零。下一张图显示了前120 x 10k步骤的准确性

enter image description here

模型学习到一定水平,并保存最佳权重。

现在我不明白的是,当我休息几天后重新开始训练时,我恢复了权重,但是内存又变空了,模型的准确性大大降低了,最重要的是这样,它甚至达不到以前达到的精度。请参见下图和开头的大跌幅:enter image description here

我认为,在恢复权重之后,训练的结果不会比以前显着变差,但这不是事实。空的SequentialMemory会导致学习/培训下降,并且可能不会达到以前的水平。

有任何提示吗?

干杯, 费伦茨

0 个答案:

没有答案