Усиленное обучение: почему точность обучения падает после возобновления обучения? - PullRequest
0 голосов
/ 31 января 2019

Я разработал небольшое упражнение для обучения.Проблема в том, что после возобновления тренировки точность обучения сильно падает, чего я не очень понимаю.

Окружающая среда: - Я использую 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)

Я могу точно измерить точность модели, поэтому после каждых 10 тыс. Шагов я делаю измерение.В начале память пуста, а все веса равны нулю.Следующий график отображает точность в течение первых шагов 120 x 10k

enter image description here

Модель обучается до определенного уровня, и лучшие веса сохраняются.

Что я не понимаю, так это то, что когда я возобновляю тренировку после нескольких дней перерыва, я восстанавливаю веса, но память снова пуста, точность модели значительно падает,и вдобавок к этому, он даже не достигает точности, достигнутой ранее.См. Следующий рисунок и большое падение в начале: enter image description here

Я думал, что после восстановления веса результаты тренировки не будут значительно хуже, чем прежде, но это не такправда.Пустая SequentialMemory вызывает падение в обучении / обучении и не может привести к тому же уровню, что и раньше.

Любые подсказки?

Cheers, Ferenc

...