Генерация текста RNN: Как сбалансировать потерю обучения / теста с потерей проверки? - PullRequest
1 голос
/ 21 апреля 2020

Я работаю над коротким проектом, который включает в себя реализацию символьного RNN для генерации текста. В моей модели используется один слой LSTM с различными единицами измерения (от 50 до 500), выпадением со скоростью 0,2 и активацией softmax. Я использую RMSprop со скоростью обучения 0,01.

Моя проблема в том, что я не могу найти хороший способ охарактеризовать потерю проверки. Я использую разделение проверки на 0,3 и обнаруживаю, что потери проверки становятся постоянными только через несколько эпох (может быть, 2-5 или около того), в то время как потери от тренировок продолжают уменьшаться. Несут ли потери при проверке большой вес в такого рода проблемах? Цель модели - генерировать новые строки, поэтому количественная оценка потерь при проверке с помощью других строк кажется ... бессмысленной?

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

Это код для подбора модели для каждой эпохи. Обратный вызов - это пользовательский обратный вызов, который просто печатает несколько тестов. Теперь я понимаю, что history_callback.history ['loss'], вероятно, является потерей обучения, не так ли ...

for i in range(num_epochs):
    history_callback = model.fit(x, y,
          batch_size=128,
          epochs=1,
          callbacks=[print_callback],
          validation_split=0.3)
    loss_history.append(history_callback.history['loss'])
    validation_loss_history.append(history_callback.history['val_loss'])

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

...