Проблема исчезающего градиента для недавних случайных рекуррентных нейронных сетей - PullRequest
4 голосов
/ 03 апреля 2019

Недавно я нашел несколько статей о порождающих рекуррентных моделях.Все они имеют подключенные подсети, такие как предыдущий / кодер / декодер / и т. Д.известной ячейке LSTM для составления совокупности ячеек RNN нового типа.

Мне просто любопытно, происходит ли исчезновение / взрыв градиента или нет с этими новыми ячейками RNN.Неужели нет проблем с такой комбинацией?

Ссылки:

Кажется, что все они имеют похожую схему, как указано выше.

Модель рекуррентных скрытых переменных для последовательных данных

Обучение стохастических рекуррентных сетей

Z-Forcing: Обучение стохастических рекуррентных сетей

Псевдокод

Ниже приведен псевдокод для рекуррентной архитектуры:

def new_rnncell_call(x, htm1):
    #prior_net/posterior_net/decoder_net is single layer or mlp each
    q_prior = prior_net(htm1) # prior step
    q = posterior_net([htm1, x]) # inference step
    z = sample_from(q) # reparameterization trick
    target_dist = decoder_net(z) # generation step
    ht = innerLSTM([z, x], htm1) # recurrent step
    return [q_prior, q, target_dist], ht

Что меня беспокоит, так это те голые веса за пределами известной ячейки LSTM (или GRU и т. Д.)во время обработки bptt без какой-либо логики стробирования для активаций в качестве весов внутри LSTM.Для меня это выглядит не так, как уложенные слои или дополнительные плотные слои только для выходных данных.

Разве у этого нет проблемы исчезновения / взрыва градиента?

...