Потеря тренировок сначала уменьшается, а потом увеличивается - PullRequest
0 голосов
/ 11 сентября 2018

Я тренировал модель LSTM-MDN, используя Адама, потери на тренировку сначала уменьшились, но после нескольких сотен эпох она увеличилась и превысила Начальное значение.Затем я переобучился с того момента, когда потери были наименьшими, и снизил скорость обучения в 10 раз (с 1e-3 до 1e-4).

Сначала потери тренировок снизились, а позже увеличились. Сначала я думал, что некоторыеошибки в коде, но я не нашел никаких ошибок.Затем я заменил Адама на SGD (импульс = 0), потеря тренировки не увеличилась, но она приблизилась к относительно большой величине, которая была выше, чем потеря от Адама, поэтому я подумал, что в Адаме было что-то не так.

Я так и не нашел причину, надеюсь, кто-нибудь поможет мне найти причину.потеря (адам)

enter image description here

функция потерь

def mdn_loss_function(out_pi, out_sigma, out_mu, y):
    y = y.view(-1, SEQUENCE, 1, LATENT_VEC)
    result = Normal(loc=out_mu, scale=out_sigma)
    result = torch.exp(result.log_prob(y))
    result = torch.sum(result * out_pi, dim=2)
    result = -torch.log(EPSILON + result)
    return torch.mean(result)   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...