Sua pergunta é bastante ampla, mas aqui estão algumas dicas:
Para redes feedforward, consulte esta pergunta :
A resposta de @ doug funcionou para mim. Há uma regra geral adicional que ajuda a problemas de aprendizado supervisionado. O limite superior do número de neurônios ocultos que não resultará em excesso de ajuste é:
Nh= Ns( α ∗ ( NEu+ No) ))
NEu = número de neurónios de entrada. No = número de neurônios de saída.
Ns = número de amostras no conjunto de dados de treinamento. α = um fator de escala arbitrário geralmente 2-10.
Outros recomendam
a criaçãoa l p h a para um valor entre 5 e 10, mas eu encontrar um valor de 2, muitas vezes trabalho sem overfitting. Conforme explicado por esteexcelente texto NN Design, você deseja limitar o número de parâmetros livres em seu modelo (seu
grauNs∗ ( NEu+No)α
Para um procedimento automatizado, você inicia com um alfa de 2 (o dobro de graus de liberdade em seus dados de treinamento que o modelo) e sobe até 10 se o erro nos dados de treinamento for significativamente menor do que na validação cruzada conjunto de dados.
E especificamente nos LSTM, você pode querer verificar isso .
Mas o ponto principal: não há regra para a quantidade de nós ocultos que você deve usar, é algo que você precisa descobrir para cada caso por tentativa e erro .
Em geral, não há diretrizes sobre como determinar o número de camadas ou o número de células de memória em um LSTM.
O número de camadas e células necessárias em um LSTM pode depender de vários aspectos do problema:
A complexidade do conjunto de dados. A quantidade de recursos, número de pontos de dados etc.
O processo de geração de dados. A seguir, exemplo de como o processo de geração de dados pode desempenhar um papel significativo.
Ex - Previsão dos preços do petróleo em comparação com a previsão do PIB de uma economia bem compreendida. O último é muito mais fácil que o primeiro. Assim, a previsão dos preços do petróleo também pode precisar de mais número de células de memória LSTM para prever com a mesma precisão em comparação com o PIB.
Sigo estas etapas ao modelar usando LSTM:
Tente uma única camada oculta com 2 ou 3 células de memória. Veja como ele se comporta em relação a um benchmark. Se for um problema de série temporal, geralmente faço uma previsão a partir de técnicas clássicas de série temporal como referência.
Tente aumentar o número de células da memória. Se o desempenho não estiver aumentando muito, passe para o próximo passo.
Comece a aprofundar a rede, ou seja, adicione outra camada com um pequeno número de células de memória.
A parte, de lado :
Não há limite para a quantidade de trabalho que pode ser dedicada para atingir os mínimos globais da função de perda e ajustar os melhores hiperparâmetros. Portanto, focar no objetivo final da modelagem deve ser a estratégia, em vez de tentar aumentar a precisão o máximo possível.
A maioria dos problemas pode ser resolvida usando 2-3 camadas da rede.
fonte
Talvez você deva dar uma olhada nisto: https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf
Aqui eles mostram que 2 camadas são boas, 5 camadas são melhores e 7 camadas são muito difíceis de treinar.
fonte