Usando uma camada múltipla LSTM
com 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.
neural-network
lstm
rnn
dropout
stacked-lstm
BigBadMe
fonte
fonte
Respostas:
Prefiro não adicionar abandono nas
LSTM
células por um motivo específico e claro.LSTMs
sã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 àsLSTM
células, há uma chance de esquecer algo que não deve ser esquecido. Consequentemente, comoCNNs
eu sempre prefiro usar o dropout em camadas densas após asLSTM
camadas.fonte
CNNs
que é completamente aceitável para não usá-los em camadas conv devido ao pequeno número de camadas em pesos convolucionais. PorLSTMs
outro 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.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 é).
fonte