Abandono em quais camadas do LSTM?

11

Usando uma camada múltipla LSTMcom desistência, é recomendável colocar desistência em todas as camadas ocultas e nas camadas densas de saída? No artigo de Hinton (que propôs o Dropout), ele apenas colocou o Dropout nas camadas densas, mas isso ocorreu porque as camadas internas ocultas eram convolucionais.

Obviamente, posso testar meu modelo específico, mas me perguntei se havia consenso sobre isso.

BigBadMe
fonte
3
alguma boa discussão sobre abandono em redes recorrentes neste artigo, se você estiver interessado: arxiv.org/abs/1512.05287 Gal, Yarin e Zoubin Ghahramani. "Uma aplicação teoricamente fundamentada de abandono em redes neurais recorrentes". Avanços nos sistemas de processamento de informações neurais. 2016.
redhqs 13/09/18
2
Parece confirmar o que @media disse abaixo
BigBadMe

Respostas:

12

Prefiro não adicionar abandono nas LSTMcélulas por um motivo específico e claro. LSTMssão bons a longo prazo, mas uma coisa importante sobre eles é que eles não estão muito bem em memorizar várias coisas simultaneamente. A lógica do abandono é adicionar ruído aos neurônios para não depender de nenhum neurônio específico. Ao adicionar o abandono às LSTMcélulas, há uma chance de esquecer algo que não deve ser esquecido. Consequentemente, como CNNseu sempre prefiro usar o dropout em camadas densas após as LSTMcamadas.

meios de comunicação
fonte
11
Entendo o que você está dizendo, e faz sentido, mas então, por que a implementação de células LSTM no Keras ou no Tensorflow fornece a capacidade de especificar desistências (e desistências recorrentes) se, de fato, prejudicam como um LSTM deve função?
BigBadMe 13/09/18
3
Em CNNsque é completamente aceitável para não usá-los em camadas conv devido ao pequeno número de camadas em pesos convolucionais. Por LSTMsoutro lado, o número de pesos não é pequeno. Como mencionei nas tarefas que existem inúmeras coisas que precisam ser memorizadas, tento não usar o abandono, mas isso ocorre como o tempo de verbos em que você não tem muitas dependências, acho que não é muito ruim. A propósito, foi a minha experiência. Pode haver outras respostas para diferentes domínios de aplicativo.
Mídia
11
Grande Explaination por ambas as respostas (+ 1)!
Aditya
5

Não há consenso que possa ser provado em todos os tipos de modelo.

Pensar no abandono como uma forma de regularização, quanto dele será aplicado (e onde) dependerá inerentemente do tipo e tamanho do conjunto de dados, bem como da complexidade do seu modelo construído (quão grande ele é).

n1k31t4
fonte